Re: [PATCH] fs/signalfd: fix build error for BUS_MCEERR_AR

From: Randy Dunlap
Date: Mon Feb 12 2018 - 21:19:48 EST


On 02/12/2018 06:18 PM, Eric W. Biederman wrote:
> Randy Dunlap <rdunlap@xxxxxxxxxxxxx> writes:
>
>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>
>> Fix build error in fs/signalfd.c by using same method that is used in
>> kernel/signal.c: separate blocks for different signal si_code values.
>>
>> ./fs/signalfd.c: error: 'BUS_MCEERR_AR' undeclared (first use in this function)
>>
>> Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>> Cc: Eric Biederman <ebiederm@xxxxxxxxxxxx>
>> Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
>
> Acked-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
>
> Do you want to me to pick this one up? Or does it have another path
> into mainline?
>

Just via you or Al. You might as well take it.

Thanks.

>
>> ---
>> fs/signalfd.c | 15 ++++++++++++---
>> 1 file changed, 12 insertions(+), 3 deletions(-)
>>
>> Applies to mainline 4.16-rc1.
>>
>> --- linux-next-20180212.orig/fs/signalfd.c
>> +++ linux-next-20180212/fs/signalfd.c
>> @@ -118,13 +118,22 @@ static int signalfd_copyinfo(struct sign
>> err |= __put_user(kinfo->si_trapno, &uinfo->ssi_trapno);
>> #endif
>> #ifdef BUS_MCEERR_AO
>> - /*
>> + /*
>> * Other callers might not initialize the si_lsb field,
>> * so check explicitly for the right codes here.
>> */
>> if (kinfo->si_signo == SIGBUS &&
>> - (kinfo->si_code == BUS_MCEERR_AR ||
>> - kinfo->si_code == BUS_MCEERR_AO))
>> + kinfo->si_code == BUS_MCEERR_AO)
>> + err |= __put_user((short) kinfo->si_addr_lsb,
>> + &uinfo->ssi_addr_lsb);
>> +#endif
>> +#ifdef BUS_MCEERR_AR
>> + /*
>> + * Other callers might not initialize the si_lsb field,
>> + * so check explicitly for the right codes here.
>> + */
>> + if (kinfo->si_signo == SIGBUS &&
>> + kinfo->si_code == BUS_MCEERR_AR)
>> err |= __put_user((short) kinfo->si_addr_lsb,
>> &uinfo->ssi_addr_lsb);
>> #endif


--
~Randy