diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-12-07 16:35:17 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-12-07 16:35:17 -0500 |
commit | 21b4e736922f546e0f1aa7b9d6c442f309a2444a (patch) | |
tree | e1be8645297f8ebe87445251743ebcc52081a20d /arch/i386/mm/pgtable.c | |
parent | 34161db6b14d984fb9b06c735b7b42f8803f6851 (diff) | |
parent | 68380b581383c028830f79ec2670f4a193854aa6 (diff) |
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ into merge_linus
Diffstat (limited to 'arch/i386/mm/pgtable.c')
-rw-r--r-- | arch/i386/mm/pgtable.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/i386/mm/pgtable.c b/arch/i386/mm/pgtable.c index 10126e3f8174..f349eaf450b0 100644 --- a/arch/i386/mm/pgtable.c +++ b/arch/i386/mm/pgtable.c | |||
@@ -95,8 +95,11 @@ static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags) | |||
95 | return; | 95 | return; |
96 | } | 96 | } |
97 | pte = pte_offset_kernel(pmd, vaddr); | 97 | pte = pte_offset_kernel(pmd, vaddr); |
98 | /* <pfn,flags> stored as-is, to permit clearing entries */ | 98 | if (pgprot_val(flags)) |
99 | set_pte(pte, pfn_pte(pfn, flags)); | 99 | /* <pfn,flags> stored as-is, to permit clearing entries */ |
100 | set_pte(pte, pfn_pte(pfn, flags)); | ||
101 | else | ||
102 | pte_clear(&init_mm, vaddr, pte); | ||
100 | 103 | ||
101 | /* | 104 | /* |
102 | * It's enough to flush this one mapping. | 105 | * It's enough to flush this one mapping. |
@@ -193,7 +196,7 @@ struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | |||
193 | return pte; | 196 | return pte; |
194 | } | 197 | } |
195 | 198 | ||
196 | void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags) | 199 | void pmd_ctor(void *pmd, struct kmem_cache *cache, unsigned long flags) |
197 | { | 200 | { |
198 | memset(pmd, 0, PTRS_PER_PMD*sizeof(pmd_t)); | 201 | memset(pmd, 0, PTRS_PER_PMD*sizeof(pmd_t)); |
199 | } | 202 | } |
@@ -233,7 +236,7 @@ static inline void pgd_list_del(pgd_t *pgd) | |||
233 | set_page_private(next, (unsigned long)pprev); | 236 | set_page_private(next, (unsigned long)pprev); |
234 | } | 237 | } |
235 | 238 | ||
236 | void pgd_ctor(void *pgd, kmem_cache_t *cache, unsigned long unused) | 239 | void pgd_ctor(void *pgd, struct kmem_cache *cache, unsigned long unused) |
237 | { | 240 | { |
238 | unsigned long flags; | 241 | unsigned long flags; |
239 | 242 | ||
@@ -253,7 +256,7 @@ void pgd_ctor(void *pgd, kmem_cache_t *cache, unsigned long unused) | |||
253 | } | 256 | } |
254 | 257 | ||
255 | /* never called when PTRS_PER_PMD > 1 */ | 258 | /* never called when PTRS_PER_PMD > 1 */ |
256 | void pgd_dtor(void *pgd, kmem_cache_t *cache, unsigned long unused) | 259 | void pgd_dtor(void *pgd, struct kmem_cache *cache, unsigned long unused) |
257 | { | 260 | { |
258 | unsigned long flags; /* can be called from interrupt context */ | 261 | unsigned long flags; /* can be called from interrupt context */ |
259 | 262 | ||