diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 13:14:29 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 13:14:29 -0500 |
commit | d7f786e06538081dd10c97931a89418699fe609d (patch) | |
tree | 750c6b313711c9df5d6a12197587e0372764df13 /arch/mips/kernel | |
parent | e5717c48ed52feebd59756578debd34eaeb9d262 (diff) | |
parent | f00a3ec4d47b51c5995fe10f8252a90aca331e62 (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.c | 13 | ||||
-rw-r--r-- | arch/mips/kernel/signal32.c | 9 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 2 |
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 | ||
31 | static int i8259A_auto_eoi; | 31 | static int i8259A_auto_eoi = -1; |
32 | DEFINE_SPINLOCK(i8259A_lock); | 32 | DEFINE_SPINLOCK(i8259A_lock); |
33 | /* some platforms call this... */ | 33 | /* some platforms call this... */ |
34 | void mask_and_ack_8259A(unsigned int); | 34 | void mask_and_ack_8259A(unsigned int); |
@@ -216,7 +216,8 @@ spurious_8259A_irq: | |||
216 | 216 | ||
217 | static int i8259A_resume(struct sys_device *dev) | 217 | static 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 | ||
253 | device_initcall(i8259A_init_sysfs); | 256 | device_initcall(i8259A_init_sysfs); |
254 | 257 | ||
255 | void __init init_8259A(int auto_eoi) | 258 | void 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 | |||
114 | typedef struct { | ||
115 | unsigned int sig[_NSIG_WORDS32]; | ||
116 | } sigset_t32; | ||
117 | |||
118 | typedef unsigned int __sighandler32_t; | 111 | typedef unsigned int __sighandler32_t; |
119 | typedef void (*vfptr_t)(void); | 112 | typedef 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 | ||
708 | out_sigsegv: | 709 | out_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 | ||
751 | out_sigsegv: | 753 | out_sigsegv: |
752 | force_sig(SIGSEGV, current); | 754 | force_sig(SIGSEGV, current); |