arm64: mm: remove broken &= operator from pmd_mknotpresent
authorWill Deacon <will.deacon@arm.com>
Wed, 18 Jun 2014 13:06:27 +0000 (14:06 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 24 Oct 2014 12:19:48 +0000 (13:19 +0100)
This should be a plain old '&' and could easily lead to undefined
behaviour if the target of a pmd_mknotpresent invocation was the same
as the parameter.

Fixes: 9c7e535fcc17 (arm64: mm: Route pmd thp functions through pte equivalents)
Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: <stable@vger.kernel.org> # v3.15
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit e3a920afc3482e954834a4ed95908c4bc5e4c000)
Signed-off-by: Mark Brown <broonie@kernel.org>
arch/arm64/include/asm/pgtable.h

index fb4b26509276d8f519a50701bb7956408d398ebb..7099e3b84778974999710a786ef7da154f5b61d1 100644 (file)
@@ -257,7 +257,7 @@ static inline pmd_t pte_pmd(pte_t pte)
 #define pmd_mkwrite(pmd)       pte_pmd(pte_mkwrite(pmd_pte(pmd)))
 #define pmd_mkdirty(pmd)       pte_pmd(pte_mkdirty(pmd_pte(pmd)))
 #define pmd_mkyoung(pmd)       pte_pmd(pte_mkyoung(pmd_pte(pmd)))
-#define pmd_mknotpresent(pmd)  (__pmd(pmd_val(pmd) &= ~PMD_TYPE_MASK))
+#define pmd_mknotpresent(pmd)  (__pmd(pmd_val(pmd) & ~PMD_TYPE_MASK))
 
 #define __HAVE_ARCH_PMD_WRITE
 #define pmd_write(pmd)         pte_write(pmd_pte(pmd))