diff options
Diffstat (limited to 'arch/arm26')
-rw-r--r-- | arch/arm26/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm26/kernel/fiq.c | 32 | ||||
-rw-r--r-- | arch/arm26/kernel/signal.c | 3 |
3 files changed, 22 insertions, 19 deletions
diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index 274e07019b46..dee23d87fc5a 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig | |||
@@ -53,14 +53,14 @@ config GENERIC_ISA_DMA | |||
53 | 53 | ||
54 | config ARCH_MAY_HAVE_PC_FDC | 54 | config ARCH_MAY_HAVE_PC_FDC |
55 | bool | 55 | bool |
56 | default y | ||
57 | 56 | ||
58 | source "init/Kconfig" | 57 | source "init/Kconfig" |
59 | 58 | ||
60 | 59 | ||
61 | menu "System Type" | 60 | menu "System Type" |
62 | 61 | ||
63 | comment "Archimedes/A5000 Implementations (select only ONE)" | 62 | choice |
63 | prompt "Archimedes/A5000 Implementations" | ||
64 | 64 | ||
65 | config ARCH_ARC | 65 | config ARCH_ARC |
66 | bool "Archimedes" | 66 | bool "Archimedes" |
@@ -73,6 +73,7 @@ config ARCH_ARC | |||
73 | 73 | ||
74 | config ARCH_A5K | 74 | config ARCH_A5K |
75 | bool "A5000" | 75 | bool "A5000" |
76 | select ARCH_MAY_HAVE_PC_FDC | ||
76 | help | 77 | help |
77 | Say Y here to to support the Acorn A5000. | 78 | Say Y here to to support the Acorn A5000. |
78 | 79 | ||
@@ -87,6 +88,7 @@ config PAGESIZE_16 | |||
87 | Say Y here if your Archimedes or A5000 system has only 2MB of | 88 | Say Y here if your Archimedes or A5000 system has only 2MB of |
88 | memory, otherwise say N. The resulting kernel will not run on a | 89 | memory, otherwise say N. The resulting kernel will not run on a |
89 | machine with 4MB of memory. | 90 | machine with 4MB of memory. |
91 | endchoice | ||
90 | endmenu | 92 | endmenu |
91 | 93 | ||
92 | config ISA_DMA_API | 94 | config ISA_DMA_API |
diff --git a/arch/arm26/kernel/fiq.c b/arch/arm26/kernel/fiq.c index 08a97c9498ff..a24272b61f30 100644 --- a/arch/arm26/kernel/fiq.c +++ b/arch/arm26/kernel/fiq.c | |||
@@ -104,14 +104,14 @@ void set_fiq_regs(struct pt_regs *regs) | |||
104 | { | 104 | { |
105 | register unsigned long tmp, tmp2; | 105 | register unsigned long tmp, tmp2; |
106 | __asm__ volatile ( | 106 | __asm__ volatile ( |
107 | "mov %0, pc | 107 | "mov %0, pc \n" |
108 | bic %1, %0, #0x3 | 108 | "bic %1, %0, #0x3 \n" |
109 | orr %1, %1, %3 | 109 | "orr %1, %1, %3 \n" |
110 | teqp %1, #0 @ select FIQ mode | 110 | "teqp %1, #0 @ select FIQ mode \n" |
111 | mov r0, r0 | 111 | "mov r0, r0 \n" |
112 | ldmia %2, {r8 - r14} | 112 | "ldmia %2, {r8 - r14} \n" |
113 | teqp %0, #0 @ return to SVC mode | 113 | "teqp %0, #0 @ return to SVC mode \n" |
114 | mov r0, r0" | 114 | "mov r0, r0 " |
115 | : "=&r" (tmp), "=&r" (tmp2) | 115 | : "=&r" (tmp), "=&r" (tmp2) |
116 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | MODE_FIQ26) | 116 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | MODE_FIQ26) |
117 | /* These registers aren't modified by the above code in a way | 117 | /* These registers aren't modified by the above code in a way |
@@ -125,14 +125,14 @@ void get_fiq_regs(struct pt_regs *regs) | |||
125 | { | 125 | { |
126 | register unsigned long tmp, tmp2; | 126 | register unsigned long tmp, tmp2; |
127 | __asm__ volatile ( | 127 | __asm__ volatile ( |
128 | "mov %0, pc | 128 | "mov %0, pc \n" |
129 | bic %1, %0, #0x3 | 129 | "bic %1, %0, #0x3 \n" |
130 | orr %1, %1, %3 | 130 | "orr %1, %1, %3 \n" |
131 | teqp %1, #0 @ select FIQ mode | 131 | "teqp %1, #0 @ select FIQ mode \n" |
132 | mov r0, r0 | 132 | "mov r0, r0 \n" |
133 | stmia %2, {r8 - r14} | 133 | "stmia %2, {r8 - r14} \n" |
134 | teqp %0, #0 @ return to SVC mode | 134 | "teqp %0, #0 @ return to SVC mode \n" |
135 | mov r0, r0" | 135 | "mov r0, r0 " |
136 | : "=&r" (tmp), "=&r" (tmp2) | 136 | : "=&r" (tmp), "=&r" (tmp2) |
137 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | MODE_FIQ26) | 137 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | MODE_FIQ26) |
138 | /* These registers aren't modified by the above code in a way | 138 | /* These registers aren't modified by the above code in a way |
diff --git a/arch/arm26/kernel/signal.c b/arch/arm26/kernel/signal.c index ce2055bdc9ee..2a48c12100c0 100644 --- a/arch/arm26/kernel/signal.c +++ b/arch/arm26/kernel/signal.c | |||
@@ -480,6 +480,7 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall) | |||
480 | { | 480 | { |
481 | siginfo_t info; | 481 | siginfo_t info; |
482 | int signr; | 482 | int signr; |
483 | struct k_sigaction ka; | ||
483 | 484 | ||
484 | /* | 485 | /* |
485 | * We want the common case to go fast, which | 486 | * We want the common case to go fast, which |
@@ -493,7 +494,7 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall) | |||
493 | if (current->ptrace & PT_SINGLESTEP) | 494 | if (current->ptrace & PT_SINGLESTEP) |
494 | ptrace_cancel_bpt(current); | 495 | ptrace_cancel_bpt(current); |
495 | 496 | ||
496 | signr = get_signal_to_deliver(&info, regs, NULL); | 497 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); |
497 | if (signr > 0) { | 498 | if (signr > 0) { |
498 | handle_signal(signr, &info, oldset, regs, syscall); | 499 | handle_signal(signr, &info, oldset, regs, syscall); |
499 | if (current->ptrace & PT_SINGLESTEP) | 500 | if (current->ptrace & PT_SINGLESTEP) |