diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2006-10-11 09:31:26 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-10-11 09:31:26 -0400 |
commit | 9d0a57cbdb4976f382eb1c03baee338e467b6592 (patch) | |
tree | d224342e631bddc9ccd8b6e2aa89989a9c380182 /arch/s390/kernel | |
parent | 53a5fbdc2dff55161a206ed1a1385a8fa8055c34 (diff) |
[S390] irq change improvements.
Remove the last few places where a pointer to pt_regs gets passed.
Also make sure we call set_irq_regs() before irq_enter() and after
irq_exit(). This doesn't fix anything but makes sure s390 looks the
same like all other architectures.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/s390_ext.c | 4 | ||||
-rw-r--r-- | arch/s390/kernel/vtime.c | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/arch/s390/kernel/s390_ext.c b/arch/s390/kernel/s390_ext.c index c49ab8c784d2..4faf96f8a834 100644 --- a/arch/s390/kernel/s390_ext.c +++ b/arch/s390/kernel/s390_ext.c | |||
@@ -117,8 +117,8 @@ void do_extint(struct pt_regs *regs, unsigned short code) | |||
117 | int index; | 117 | int index; |
118 | struct pt_regs *old_regs; | 118 | struct pt_regs *old_regs; |
119 | 119 | ||
120 | irq_enter(); | ||
121 | old_regs = set_irq_regs(regs); | 120 | old_regs = set_irq_regs(regs); |
121 | irq_enter(); | ||
122 | asm volatile ("mc 0,0"); | 122 | asm volatile ("mc 0,0"); |
123 | if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer) | 123 | if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer) |
124 | /** | 124 | /** |
@@ -134,8 +134,8 @@ void do_extint(struct pt_regs *regs, unsigned short code) | |||
134 | p->handler(code); | 134 | p->handler(code); |
135 | } | 135 | } |
136 | } | 136 | } |
137 | set_irq_regs(old_regs); | ||
138 | irq_exit(); | 137 | irq_exit(); |
138 | set_irq_regs(old_regs); | ||
139 | } | 139 | } |
140 | 140 | ||
141 | EXPORT_SYMBOL(register_external_interrupt); | 141 | EXPORT_SYMBOL(register_external_interrupt); |
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 1d7d3938b2b1..21baaf5496d6 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -209,11 +209,11 @@ static void list_add_sorted(struct vtimer_list *timer, struct list_head *head) | |||
209 | * Do the callback functions of expired vtimer events. | 209 | * Do the callback functions of expired vtimer events. |
210 | * Called from within the interrupt handler. | 210 | * Called from within the interrupt handler. |
211 | */ | 211 | */ |
212 | static void do_callbacks(struct list_head *cb_list, struct pt_regs *regs) | 212 | static void do_callbacks(struct list_head *cb_list) |
213 | { | 213 | { |
214 | struct vtimer_queue *vt_list; | 214 | struct vtimer_queue *vt_list; |
215 | struct vtimer_list *event, *tmp; | 215 | struct vtimer_list *event, *tmp; |
216 | void (*fn)(unsigned long, struct pt_regs*); | 216 | void (*fn)(unsigned long); |
217 | unsigned long data; | 217 | unsigned long data; |
218 | 218 | ||
219 | if (list_empty(cb_list)) | 219 | if (list_empty(cb_list)) |
@@ -224,7 +224,7 @@ static void do_callbacks(struct list_head *cb_list, struct pt_regs *regs) | |||
224 | list_for_each_entry_safe(event, tmp, cb_list, entry) { | 224 | list_for_each_entry_safe(event, tmp, cb_list, entry) { |
225 | fn = event->function; | 225 | fn = event->function; |
226 | data = event->data; | 226 | data = event->data; |
227 | fn(data, regs); | 227 | fn(data); |
228 | 228 | ||
229 | if (!event->interval) | 229 | if (!event->interval) |
230 | /* delete one shot timer */ | 230 | /* delete one shot timer */ |
@@ -275,7 +275,7 @@ static void do_cpu_timer_interrupt(__u16 error_code) | |||
275 | list_move_tail(&event->entry, &cb_list); | 275 | list_move_tail(&event->entry, &cb_list); |
276 | } | 276 | } |
277 | spin_unlock(&vt_list->lock); | 277 | spin_unlock(&vt_list->lock); |
278 | do_callbacks(&cb_list, get_irq_regs()); | 278 | do_callbacks(&cb_list); |
279 | 279 | ||
280 | /* next event is first in list */ | 280 | /* next event is first in list */ |
281 | spin_lock(&vt_list->lock); | 281 | spin_lock(&vt_list->lock); |