Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fs/signalfd: fix build error for BUS_MCEERR_AR

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@linux-m68k.org>
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>

authored by

Randy Dunlap and committed by
Eric W. Biederman
9026e820 7928b2cb

+12 -3
+12 -3
fs/signalfd.c
··· 118 118 err |= __put_user(kinfo->si_trapno, &uinfo->ssi_trapno); 119 119 #endif 120 120 #ifdef BUS_MCEERR_AO 121 - /* 121 + /* 122 122 * Other callers might not initialize the si_lsb field, 123 123 * so check explicitly for the right codes here. 124 124 */ 125 125 if (kinfo->si_signo == SIGBUS && 126 - (kinfo->si_code == BUS_MCEERR_AR || 127 - kinfo->si_code == BUS_MCEERR_AO)) 126 + kinfo->si_code == BUS_MCEERR_AO) 127 + err |= __put_user((short) kinfo->si_addr_lsb, 128 + &uinfo->ssi_addr_lsb); 129 + #endif 130 + #ifdef BUS_MCEERR_AR 131 + /* 132 + * Other callers might not initialize the si_lsb field, 133 + * so check explicitly for the right codes here. 134 + */ 135 + if (kinfo->si_signo == SIGBUS && 136 + kinfo->si_code == BUS_MCEERR_AR) 128 137 err |= __put_user((short) kinfo->si_addr_lsb, 129 138 &uinfo->ssi_addr_lsb); 130 139 #endif