Thread (5 messages) 5 messages, 4 authors, 2015-02-11

[PATCH] arm/mm: fix compiler warning in pmdp_invalidate() (in -next)

From: akpm@linux-foundation.org (Andrew Morton)
Date: 2015-02-11 22:06:20
Also in: lkml

On Fri, 30 Jan 2015 16:40:15 +0000 Russell King - ARM Linux [off-list ref] wrote:
On Fri, Jan 30, 2015 at 04:37:32PM +0000, Andre Przywara wrote:
quoted
Commit ff61d185f4e7 ("mm: convert p[te|md]_mknonnuma and remaining
page table manipulations") removed a check in
mm/pgtable-generic.c:pmdp_invalidate(), which leaves the
pmd_mknotpresent macro the only user of the entry variable.
For ARM/LPAE we use a constant 0 without referencing the argument to
mark this condition, so the entry variable is no longer used here:

mm/pgtable-generic.c: In function 'pmdp_invalidate':
mm/pgtable-generic.c:195:8: warning: unused variable 'entry' [-Wunused-variable]
  pmd_t entry = *pmdp;
        ^

Replace the ARM macro implementation with a static inline function to
get rid of this warning.
 
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
Hi Andrew,

Mel mentioned that I should send that simple fix below to you to
merge it with his original mmotm patch:
mm-convert-p_mknonnuma-and-remaining-page-table-manipulations.patch
The commit message above contains the mmotm-reference to this patch,
which will break when it hits mainline.

Can you consider this? Given that's only a warning fix I am also
happy with resending it after -rc1, if you reckon that this arch/arm
change should not go via mmotm.
This isn't correct though.
quoted
 /* represent a notpresent pmd by zero, this is used by pmdp_invalidate */
-#define pmd_mknotpresent(pmd)	(__pmd(0))
+static inline pmd_t pmd_mknotpresent(pmd_t pmd)
+{
+	return 0;
+}
typedef struct { pmdval_t pmd; } pmd_t;

typedef u32 pmdval_t;

"0" is not compatible with pmd_t when STRICT_MM_TYPECHECKS is enabled.
This?
--- a/arch/arm/include/asm/pgtable-3level.h~mm-convert-p_mknonnuma-and-remaining-page-table-manipulations-fix-fix
+++ a/arch/arm/include/asm/pgtable-3level.h
@@ -259,7 +259,7 @@ PMD_BIT_FUNC(mkyoung,   |= PMD_SECT_AF);
 /* represent a notpresent pmd by zero, this is used by pmdp_invalidate */
 static inline pmd_t pmd_mknotpresent(pmd_t pmd)
 {
-	return 0;
+	return __pmd(0);
 }
 
 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help