patch-2.2.19 linux/include/asm-s390/pgtable.h
Next file: linux/include/asm-s390/siginfo.h
Previous file: linux/include/asm-s390/page.h
Back to the patch index
Back to the overall index
- Lines: 43
- Date:
Sun Mar 25 11:37:39 2001
- Orig file:
v2.2.18/include/asm-s390/pgtable.h
- Orig date:
Sun Mar 25 11:28:37 2001
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/include/asm-s390/pgtable.h linux/include/asm-s390/pgtable.h
@@ -546,7 +546,7 @@
extern __inline__ pgd_t* get_pgd_slow(void)
{
int i;
- pgd_t *pgd,*ret = (pgd_t *)__get_free_pages(GFP_KERNEL,2);
+ pgd_t *pgd,*ret = (pgd_t *)__get_free_pages(GFP_KERNEL,1);
if (ret)
for (i=0,pgd=ret;i<USER_PTRS_PER_PGD;i++,pgd++)
pmd_clear(pmd_offset(pgd,i*PGDIR_SIZE));
@@ -560,17 +560,7 @@
if((ret = pgd_quicklist) != NULL) {
pgd_quicklist = (unsigned long *)(*ret);
ret[0] = ret[1];
- pgtable_cache_size--;
- /*
- * Need to flush tlb, since private page tables
- * are unique thru address of pgd and virtual address.
- * If we reuse pgd we need to be sure no tlb entry
- * with that pdg is left -> global flush
- *
- * Fixme: To avoid this global flush we should
- * use pdg_quicklist as fix lenght fifo list
- * and not as stack
- */
+ pgtable_cache_size -= 2;
} else
ret = (unsigned long *)get_pgd_slow();
return (pgd_t *)ret;
@@ -580,12 +570,12 @@
{
*(unsigned long *)pgd = (unsigned long) pgd_quicklist;
pgd_quicklist = (unsigned long *) pgd;
- pgtable_cache_size++;
+ pgtable_cache_size += 2;
}
extern __inline__ void free_pgd_slow(pgd_t *pgd)
{
- free_pages((unsigned long)pgd,2);
+ free_pages((unsigned long)pgd, 1);
}
extern pte_t *get_pte_slow(pmd_t *pmd, unsigned long address_preadjusted);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)