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

From: Eric W. Biederman
Date: Mon Feb 12 2018 - 21:18:29 EST


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?

Eric

> ---
> 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