[PATCH] HWPOISON: define VM_FAULT_HWPOISON to 0 when feature isdisabled

From: Wu Fengguang
Date: Tue Jun 09 2009 - 08:35:22 EST


On Tue, Jun 09, 2009 at 05:54:23PM +0800, Nick Piggin wrote:
> On Wed, Jun 03, 2009 at 08:46:40PM +0200, Andi Kleen wrote:

> > - force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk);
> > +#ifdef CONFIG_MEMORY_FAILURE
> > + if (fault & VM_FAULT_HWPOISON) {
> > + printk(KERN_ERR
> > + "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
> > + tsk->comm, tsk->pid, address);
> > + code = BUS_MCEERR_AR;
> > + }
> > +#endif
>
> If you make VM_FAULT_HWPOISON 0 when !CONFIG_MEMORY_FAILURE, then
> you can remove this ifdef, can't you?

Sure we can. Here is the incremental patch.

---
HWPOISON: define VM_FAULT_HWPOISON to 0 when feature is disabled

So as to eliminate one #ifdef in the c source.

Proposed by Nick Piggin.

CC: Nick Piggin <npiggin@xxxxxxx>
Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
---
arch/x86/mm/fault.c | 3 +--
include/linux/mm.h | 7 ++++++-
2 files changed, 7 insertions(+), 3 deletions(-)

--- sound-2.6.orig/arch/x86/mm/fault.c
+++ sound-2.6/arch/x86/mm/fault.c
@@ -819,14 +819,13 @@ do_sigbus(struct pt_regs *regs, unsigned
tsk->thread.error_code = error_code;
tsk->thread.trap_no = 14;

-#ifdef CONFIG_MEMORY_FAILURE
if (fault & VM_FAULT_HWPOISON) {
printk(KERN_ERR
"MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
tsk->comm, tsk->pid, address);
code = BUS_MCEERR_AR;
}
-#endif
+
force_sig_info_fault(SIGBUS, code, address, tsk);
}

--- sound-2.6.orig/include/linux/mm.h
+++ sound-2.6/include/linux/mm.h
@@ -702,11 +702,16 @@ static inline int page_mapped(struct pag
#define VM_FAULT_SIGBUS 0x0002
#define VM_FAULT_MAJOR 0x0004
#define VM_FAULT_WRITE 0x0008 /* Special case for get_user_pages */
-#define VM_FAULT_HWPOISON 0x0010 /* Hit poisoned page */

#define VM_FAULT_NOPAGE 0x0100 /* ->fault installed the pte, not return page */
#define VM_FAULT_LOCKED 0x0200 /* ->fault locked the returned page */

+#ifdef CONFIG_MEMORY_FAILURE
+#define VM_FAULT_HWPOISON 0x0010 /* Hit poisoned page */
+#else
+#define VM_FAULT_HWPOISON 0
+#endif
+
#define VM_FAULT_ERROR (VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_HWPOISON)

/*
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/