Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 11337
b: refs/heads/master
c: 4d6ddfa
h: refs/heads/master
i:
  11335: e76d7ab
v: v3
  • Loading branch information
Hugh Dickins authored and Linus Torvalds committed Oct 30, 2005
1 parent 5c23df5 commit f726f2c
Show file tree
Hide file tree
Showing 8 changed files with 9 additions and 38 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 15a23ffa2fc91cebdac44d4aee994f59d5c28dc0
refs/heads/master: 4d6ddfa9242bc3d27fb0f7248f6fdee0299c731f
4 changes: 2 additions & 2 deletions trunk/arch/sparc64/mm/tlb.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t

no_cache_flush:

if (mp->tlb_frozen)
if (mp->fullmm)
return;

nr = mp->tlb_nr;
Expand All @@ -97,7 +97,7 @@ void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long
unsigned long nr = mp->tlb_nr;
long s = start, e = end, vpte_base;

if (mp->tlb_frozen)
if (mp->fullmm)
return;

/* If start is greater than end, that is a real problem. */
Expand Down
5 changes: 0 additions & 5 deletions trunk/include/asm-arm/tlb.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,6 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
put_cpu_var(mmu_gathers);
}

static inline unsigned int tlb_is_full_mm(struct mmu_gather *tlb)
{
return tlb->fullmm;
}

#define tlb_remove_tlb_entry(tlb,ptep,address) do { } while (0)

/*
Expand Down
7 changes: 0 additions & 7 deletions trunk/include/asm-arm26/tlb.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,6 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
put_cpu_var(mmu_gathers);
}


static inline unsigned int
tlb_is_full_mm(struct mmu_gather *tlb)
{
return tlb->fullmm;
}

#define tlb_remove_tlb_entry(tlb,ptep,address) do { } while (0)
//#define tlb_start_vma(tlb,vma) do { } while (0)
//FIXME - ARM32 uses this now that things changed in the kernel. seems like it may be pointless on arm26, however to get things compiling...
Expand Down
6 changes: 0 additions & 6 deletions trunk/include/asm-generic/tlb.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,6 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
put_cpu_var(mmu_gathers);
}

static inline unsigned int
tlb_is_full_mm(struct mmu_gather *tlb)
{
return tlb->fullmm;
}

/* tlb_remove_page
* Must perform the equivalent to __free_pte(pte_get_and_clear(ptep)), while
* handling the additional races in SMP caused by other CPUs caching valid
Expand Down
6 changes: 0 additions & 6 deletions trunk/include/asm-ia64/tlb.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,12 +178,6 @@ tlb_finish_mmu (struct mmu_gather *tlb, unsigned long start, unsigned long end)
put_cpu_var(mmu_gathers);
}

static inline unsigned int
tlb_is_full_mm(struct mmu_gather *tlb)
{
return tlb->fullmm;
}

/*
* Logically, this routine frees PAGE. On MP machines, the actual freeing of the page
* must be delayed until after the TLB has been flushed (see comments at the beginning of
Expand Down
13 changes: 4 additions & 9 deletions trunk/include/asm-sparc64/tlb.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ struct mmu_gather {
struct mm_struct *mm;
unsigned int pages_nr;
unsigned int need_flush;
unsigned int tlb_frozen;
unsigned int fullmm;
unsigned int tlb_nr;
unsigned long freed;
unsigned long vaddrs[TLB_BATCH_NR];
Expand All @@ -50,7 +50,7 @@ static inline struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned i

mp->mm = mm;
mp->pages_nr = num_online_cpus() > 1 ? 0U : ~0U;
mp->tlb_frozen = full_mm_flush;
mp->fullmm = full_mm_flush;
mp->freed = 0;

return mp;
Expand Down Expand Up @@ -88,10 +88,10 @@ static inline void tlb_finish_mmu(struct mmu_gather *mp, unsigned long start, un

tlb_flush_mmu(mp);

if (mp->tlb_frozen) {
if (mp->fullmm) {
if (CTX_VALID(mm->context))
do_flush_tlb_mm(mm);
mp->tlb_frozen = 0;
mp->fullmm = 0;
} else
flush_tlb_pending();

Expand All @@ -101,11 +101,6 @@ static inline void tlb_finish_mmu(struct mmu_gather *mp, unsigned long start, un
put_cpu_var(mmu_gathers);
}

static inline unsigned int tlb_is_full_mm(struct mmu_gather *mp)
{
return mp->tlb_frozen;
}

static inline void tlb_remove_page(struct mmu_gather *mp, struct page *page)
{
mp->need_flush = 1;
Expand Down
4 changes: 2 additions & 2 deletions trunk/mm/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ void free_pgd_range(struct mmu_gather **tlb,
free_pud_range(*tlb, pgd, addr, next, floor, ceiling);
} while (pgd++, addr = next, addr != end);

if (!tlb_is_full_mm(*tlb))
if (!(*tlb)->fullmm)
flush_tlb_pgtables((*tlb)->mm, start, end);
}

Expand Down Expand Up @@ -698,7 +698,7 @@ unsigned long unmap_vmas(struct mmu_gather **tlbp, struct mm_struct *mm,
int tlb_start_valid = 0;
unsigned long start = start_addr;
spinlock_t *i_mmap_lock = details? details->i_mmap_lock: NULL;
int fullmm = tlb_is_full_mm(*tlbp);
int fullmm = (*tlbp)->fullmm;

for ( ; vma && vma->vm_start < end_addr; vma = vma->vm_next) {
unsigned long end;
Expand Down

0 comments on commit f726f2c

Please sign in to comment.