Since the commit "signal: Remove the task parameter from
force_sig_fault", "tsk" is only used when MEMORY_FAILURE=y and generates
a compilation warning without it.

arch/x86/mm/fault.c: In function 'do_sigbus':
arch/x86/mm/fault.c:1017:22: warning: unused variable 'tsk'
[-Wunused-variable]

Also, change to use IS_ENABLED() instead.

Signed-off-by: Qian Cai <c...@lca.pw>
---
 arch/x86/mm/fault.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 46ac96aa7c81..40d70bd3fa84 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1014,8 +1014,6 @@ static inline bool bad_area_access_from_pkeys(unsigned 
long error_code,
 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long 
address,
          vm_fault_t fault)
 {
-       struct task_struct *tsk = current;
-
        /* Kernel mode? Handle exceptions or die: */
        if (!(error_code & X86_PF_USER)) {
                no_context(regs, error_code, address, SIGBUS, BUS_ADRERR);
@@ -1028,9 +1026,10 @@ static inline bool bad_area_access_from_pkeys(unsigned 
long error_code,
 
        set_signal_archinfo(address, error_code);
 
-#ifdef CONFIG_MEMORY_FAILURE
-       if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
+       if (IS_ENABLED(CONFIG_MEMORY_FAILURE) &&
+           (fault & (VM_FAULT_HWPOISON | VM_FAULT_HWPOISON_LARGE))) {
                unsigned lsb = 0;
+               struct task_struct *tsk = current;
 
                pr_err(
        "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
@@ -1042,7 +1041,6 @@ static inline bool bad_area_access_from_pkeys(unsigned 
long error_code,
                force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb);
                return;
        }
-#endif
        force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address);
 }
 
-- 
1.8.3.1

Reply via email to