From ec3b42620e192deedc5576ea2e84d7dcb56b8a81 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 7 Dec 2006 02:14:09 +0100 Subject: [PATCH] --- yaml --- r: 43087 b: refs/heads/master c: b0bfece40b1988aa8e3d910938691dce7859d82d h: refs/heads/master i: 43085: d8179affe4c1b4def40d3acec558f2df6af5881c 43083: d8686e7a1b3c66d59d0efaaf279700e1bcb402ba 43079: 9aaff870754b89dd9959717149a072b147c4fe44 43071: bfe9453dd20d189a3dfe30adfff1a957f30ef73f v: v3 --- [refs] | 2 +- trunk/arch/i386/mm/pgtable.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 21dc075ff100..8f6cce3f0a2c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a457324229db34d3bcb0b67360130c287289401 +refs/heads/master: b0bfece40b1988aa8e3d910938691dce7859d82d diff --git a/trunk/arch/i386/mm/pgtable.c b/trunk/arch/i386/mm/pgtable.c index 10126e3f8174..65b5c0959033 100644 --- a/trunk/arch/i386/mm/pgtable.c +++ b/trunk/arch/i386/mm/pgtable.c @@ -95,8 +95,11 @@ static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags) return; } pte = pte_offset_kernel(pmd, vaddr); - /* stored as-is, to permit clearing entries */ - set_pte(pte, pfn_pte(pfn, flags)); + if (pgprot_val(flags)) + /* stored as-is, to permit clearing entries */ + set_pte(pte, pfn_pte(pfn, flags)); + else + pte_clear(&init_mm, vaddr, pte); /* * It's enough to flush this one mapping.