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

Configure Feed

Select the types of activity you want to include in your feed.

parisc: Fix signal code to depend on CONFIG_COMPAT instead of CONFIG_64BIT

The signal handler code used CONFIG_64BIT to decide if compat handling
code should be compiled in. Fix it to use CONFIG_COMPAT instead.
This allows to disable CONFIG_COMPAT even when running a 64-bit kernel.

Signed-off-by: Helge Deller <deller@gmx.de>

+9 -9
+9 -9
arch/parisc/kernel/signal.c
··· 80 80 sigset_t set; 81 81 unsigned long usp = (regs->gr[30] & ~(0x01UL)); 82 82 unsigned long sigframe_size = PARISC_RT_SIGFRAME_SIZE; 83 - #ifdef CONFIG_64BIT 83 + #ifdef CONFIG_COMPAT 84 84 struct compat_rt_sigframe __user * compat_frame; 85 85 86 86 if (is_compat_task()) ··· 96 96 97 97 regs->orig_r28 = 1; /* no restarts for sigreturn */ 98 98 99 - #ifdef CONFIG_64BIT 99 + #ifdef CONFIG_COMPAT 100 100 compat_frame = (struct compat_rt_sigframe __user *)frame; 101 101 102 102 if (is_compat_task()) { ··· 112 112 set_current_blocked(&set); 113 113 114 114 /* Good thing we saved the old gr[30], eh? */ 115 - #ifdef CONFIG_64BIT 115 + #ifdef CONFIG_COMPAT 116 116 if (is_compat_task()) { 117 117 DBG(1, "%s: compat_frame->uc.uc_mcontext 0x%p\n", 118 118 __func__, &compat_frame->uc.uc_mcontext); ··· 218 218 unsigned long haddr, sigframe_size; 219 219 unsigned long start; 220 220 int err = 0; 221 - #ifdef CONFIG_64BIT 221 + #ifdef CONFIG_COMPAT 222 222 struct compat_rt_sigframe __user * compat_frame; 223 223 #endif 224 - 224 + 225 225 usp = (regs->gr[30] & ~(0x01UL)); 226 226 sigframe_size = PARISC_RT_SIGFRAME_SIZE; 227 - #ifdef CONFIG_64BIT 227 + #ifdef CONFIG_COMPAT 228 228 if (is_compat_task()) { 229 229 /* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */ 230 230 usp = (compat_uint_t)usp; ··· 239 239 if (start >= TASK_SIZE_MAX - sigframe_size) 240 240 return -EFAULT; 241 241 242 - #ifdef CONFIG_64BIT 242 + #ifdef CONFIG_COMPAT 243 243 244 244 compat_frame = (struct compat_rt_sigframe __user *)frame; 245 245 ··· 349 349 350 350 regs->gr[2] = rp; /* userland return pointer */ 351 351 regs->gr[26] = ksig->sig; /* signal number */ 352 - 353 - #ifdef CONFIG_64BIT 352 + 353 + #ifdef CONFIG_COMPAT 354 354 if (is_compat_task()) { 355 355 regs->gr[25] = A(&compat_frame->info); /* siginfo pointer */ 356 356 regs->gr[24] = A(&compat_frame->uc); /* ucontext pointer */