Re: [PATCH -next] x86/mm: fix an unused variable "tsk" warning

From: Eric W. Biederman
Date: Wed Jun 12 2019 - 14:24:06 EST


Borislav Petkov <bp@xxxxxxxxx> writes:

> On Fri, May 31, 2019 at 05:37:21PM -0400, Qian Cai wrote:
>> 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 <cai@xxxxxx>
>> ---
>> 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);
>> }
>>
>> --
>
> I was puzzled just like Dave because this code is not in tip.
>
> Turns out there's this in linux-next:
>
> commit 318759b4737c3b3789e2fd64d539f437d52386f5
> Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
> Date: Mon Jun 3 10:23:58 2019 -0500
>
> signal/x86: Move tsk inside of CONFIG_MEMORY_FAILURE in do_sigbus

Since I am removing the tsk parameter from all of the synchrnous signal
sending functions, on all of the architectures it was easier to go
through my own tree than -tip.

The removal of tsk from force_sig_fault is what caused the warning
in do_sigbus.

My apologies I was a little slow in getting that patch added and
generating work for other folks.

Eric