| Date | Fri, 24 Aug 2012 11:43:39 +0100 | From | Catalin Marinas <> | Subject | Re: [PATCH v2 21/31] arm64: 32-bit (compat) applications support |
| |
On Wed, Aug 15, 2012 at 03:34:04PM +0100, Arnd Bergmann wrote: > On Tuesday 14 August 2012, Catalin Marinas wrote: > > > +#ifdef CONFIG_AARCH32_EMULATION > > +#include <linux/compat.h> > > + > > +#define AARCH32_KERN_SIGRET_CODE_OFFSET 0x500 > > + > > +extern const compat_ulong_t aarch32_sigret_code[6]; > > + > > +int compat_setup_frame(int usig, struct k_sigaction *ka, sigset_t *set, > > + struct pt_regs *regs); > > +int compat_setup_rt_frame(int usig, struct k_sigaction *ka, siginfo_t *info, > > + sigset_t *set, struct pt_regs *regs); > > + > > +void compat_setup_restart_syscall(struct pt_regs *regs); > > +#else > > + > > +static inline int compat_setup_frame(int usid, struct k_sigaction *ka, > > + sigset_t *set, struct pt_regs *regs) > > +{ > > + BUG(); > > +} > > What good is the run-time BUG() here? Nothing should be calling these > when CONFIG_COMPAT is disabled, so I think you should just remove > the #ifdef around the declarations, and the entire #else case.
They are called from handle_signal(), so that's to avoid #ifdef inside functions. I can drop the BUG() (but keep the empty function) and change the checks to is_compat_task() so that the compiler optimises the condition out when !COMPAT.
-- Catalin
|