aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-20 13:14:29 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-20 13:14:29 -0500
commitd7f786e06538081dd10c97931a89418699fe609d (patch)
tree750c6b313711c9df5d6a12197587e0372764df13 /arch/mips/kernel
parente5717c48ed52feebd59756578debd34eaeb9d262 (diff)
parentf00a3ec4d47b51c5995fe10f8252a90aca331e62 (diff)
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [NET] Eliminate user-selectable CONFIG_MV643XX_ETH_[012] [MIPS] Drop __init from init_8259A() [MIPS] Fix Kconfig typo bug [MIPS] Fix double signal on trap and break instruction [MIPS] sigset_32 has been made redundand by compat_sigset_t. [MIPS] emma2rh: Remove needless <asm/i8259.h> inclusion. [MIPS] Add MTD device support for Cobalt
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/i8259.c13
-rw-r--r--arch/mips/kernel/signal32.c9
-rw-r--r--arch/mips/kernel/traps.c2
3 files changed, 11 insertions, 13 deletions
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
index b33ba6cd7f5b..9c79703979b2 100644
--- a/arch/mips/kernel/i8259.c
+++ b/arch/mips/kernel/i8259.c
@@ -28,7 +28,7 @@
28 * moves to arch independent land 28 * moves to arch independent land
29 */ 29 */
30 30
31static int i8259A_auto_eoi; 31static int i8259A_auto_eoi = -1;
32DEFINE_SPINLOCK(i8259A_lock); 32DEFINE_SPINLOCK(i8259A_lock);
33/* some platforms call this... */ 33/* some platforms call this... */
34void mask_and_ack_8259A(unsigned int); 34void mask_and_ack_8259A(unsigned int);
@@ -216,7 +216,8 @@ spurious_8259A_irq:
216 216
217static int i8259A_resume(struct sys_device *dev) 217static int i8259A_resume(struct sys_device *dev)
218{ 218{
219 init_8259A(i8259A_auto_eoi); 219 if (i8259A_auto_eoi >= 0)
220 init_8259A(i8259A_auto_eoi);
220 return 0; 221 return 0;
221} 222}
222 223
@@ -226,8 +227,10 @@ static int i8259A_shutdown(struct sys_device *dev)
226 * the kernel initialization code can get it 227 * the kernel initialization code can get it
227 * out of. 228 * out of.
228 */ 229 */
229 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ 230 if (i8259A_auto_eoi >= 0) {
230 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-1 */ 231 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
232 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-1 */
233 }
231 return 0; 234 return 0;
232} 235}
233 236
@@ -252,7 +255,7 @@ static int __init i8259A_init_sysfs(void)
252 255
253device_initcall(i8259A_init_sysfs); 256device_initcall(i8259A_init_sysfs);
254 257
255void __init init_8259A(int auto_eoi) 258void init_8259A(int auto_eoi)
256{ 259{
257 unsigned long flags; 260 unsigned long flags;
258 261
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index 02062fc59f77..19bbef001959 100644
--- a/arch/mips/kernel/signal32.c
+++ b/arch/mips/kernel/signal32.c
@@ -108,13 +108,6 @@ typedef struct compat_siginfo {
108 108
109/* 32-bit compatibility types */ 109/* 32-bit compatibility types */
110 110
111#define _NSIG_BPW32 32
112#define _NSIG_WORDS32 (_NSIG / _NSIG_BPW32)
113
114typedef struct {
115 unsigned int sig[_NSIG_WORDS32];
116} sigset_t32;
117
118typedef unsigned int __sighandler32_t; 111typedef unsigned int __sighandler32_t;
119typedef void (*vfptr_t)(void); 112typedef void (*vfptr_t)(void);
120 113
@@ -136,7 +129,7 @@ struct ucontext32 {
136 s32 uc_link; 129 s32 uc_link;
137 stack32_t uc_stack; 130 stack32_t uc_stack;
138 struct sigcontext32 uc_mcontext; 131 struct sigcontext32 uc_mcontext;
139 sigset_t32 uc_sigmask; /* mask last for extensibility */ 132 compat_sigset_t uc_sigmask; /* mask last for extensibility */
140}; 133};
141 134
142/* 135/*
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index f663c63d5dd3..2aa208b99da8 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -704,6 +704,7 @@ asmlinkage void do_bp(struct pt_regs *regs)
704 die_if_kernel("Break instruction in kernel code", regs); 704 die_if_kernel("Break instruction in kernel code", regs);
705 force_sig(SIGTRAP, current); 705 force_sig(SIGTRAP, current);
706 } 706 }
707 return;
707 708
708out_sigsegv: 709out_sigsegv:
709 force_sig(SIGSEGV, current); 710 force_sig(SIGSEGV, current);
@@ -747,6 +748,7 @@ asmlinkage void do_tr(struct pt_regs *regs)
747 die_if_kernel("Trap instruction in kernel code", regs); 748 die_if_kernel("Trap instruction in kernel code", regs);
748 force_sig(SIGTRAP, current); 749 force_sig(SIGTRAP, current);
749 } 750 }
751 return;
750 752
751out_sigsegv: 753out_sigsegv:
752 force_sig(SIGSEGV, current); 754 force_sig(SIGSEGV, current);