* [S390] irq change improvements.
@ 2006-10-11 13:34 Martin Schwidefsky
0 siblings, 0 replies; only message in thread
From: Martin Schwidefsky @ 2006-10-11 13:34 UTC (permalink / raw)
To: linux-kernel, heiko.carstens
From: Heiko Carstens <heiko.carstens@de.ibm.com>
[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>
---
arch/s390/appldata/appldata_base.c | 2 +-
arch/s390/kernel/s390_ext.c | 4 ++--
arch/s390/kernel/vtime.c | 8 ++++----
drivers/s390/cio/cio.c | 4 ++--
include/asm-s390/timer.h | 2 +-
5 files changed, 10 insertions(+), 10 deletions(-)
diff -urpN linux-2.6/arch/s390/appldata/appldata_base.c linux-2.6-patched/arch/s390/appldata/appldata_base.c
--- linux-2.6/arch/s390/appldata/appldata_base.c 2006-10-11 15:23:16.000000000 +0200
+++ linux-2.6-patched/arch/s390/appldata/appldata_base.c 2006-10-11 15:23:34.000000000 +0200
@@ -109,7 +109,7 @@ static LIST_HEAD(appldata_ops_list);
*
* schedule work and reschedule timer
*/
-static void appldata_timer_function(unsigned long data, struct pt_regs *regs)
+static void appldata_timer_function(unsigned long data)
{
P_DEBUG(" -= Timer =-\n");
P_DEBUG("CPU: %i, expire_count: %i\n", smp_processor_id(),
diff -urpN linux-2.6/arch/s390/kernel/s390_ext.c linux-2.6-patched/arch/s390/kernel/s390_ext.c
--- linux-2.6/arch/s390/kernel/s390_ext.c 2006-10-11 15:23:16.000000000 +0200
+++ linux-2.6-patched/arch/s390/kernel/s390_ext.c 2006-10-11 15:23:34.000000000 +0200
@@ -117,8 +117,8 @@ void do_extint(struct pt_regs *regs, uns
int index;
struct pt_regs *old_regs;
- irq_enter();
old_regs = set_irq_regs(regs);
+ irq_enter();
asm volatile ("mc 0,0");
if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer)
/**
@@ -134,8 +134,8 @@ void do_extint(struct pt_regs *regs, uns
p->handler(code);
}
}
- set_irq_regs(old_regs);
irq_exit();
+ set_irq_regs(old_regs);
}
EXPORT_SYMBOL(register_external_interrupt);
diff -urpN linux-2.6/arch/s390/kernel/vtime.c linux-2.6-patched/arch/s390/kernel/vtime.c
--- linux-2.6/arch/s390/kernel/vtime.c 2006-10-11 15:23:16.000000000 +0200
+++ linux-2.6-patched/arch/s390/kernel/vtime.c 2006-10-11 15:23:34.000000000 +0200
@@ -209,11 +209,11 @@ static void list_add_sorted(struct vtime
* Do the callback functions of expired vtimer events.
* Called from within the interrupt handler.
*/
-static void do_callbacks(struct list_head *cb_list, struct pt_regs *regs)
+static void do_callbacks(struct list_head *cb_list)
{
struct vtimer_queue *vt_list;
struct vtimer_list *event, *tmp;
- void (*fn)(unsigned long, struct pt_regs*);
+ void (*fn)(unsigned long);
unsigned long data;
if (list_empty(cb_list))
@@ -224,7 +224,7 @@ static void do_callbacks(struct list_hea
list_for_each_entry_safe(event, tmp, cb_list, entry) {
fn = event->function;
data = event->data;
- fn(data, regs);
+ fn(data);
if (!event->interval)
/* delete one shot timer */
@@ -275,7 +275,7 @@ static void do_cpu_timer_interrupt(__u16
list_move_tail(&event->entry, &cb_list);
}
spin_unlock(&vt_list->lock);
- do_callbacks(&cb_list, get_irq_regs());
+ do_callbacks(&cb_list);
/* next event is first in list */
spin_lock(&vt_list->lock);
diff -urpN linux-2.6/drivers/s390/cio/cio.c linux-2.6-patched/drivers/s390/cio/cio.c
--- linux-2.6/drivers/s390/cio/cio.c 2006-10-11 15:23:22.000000000 +0200
+++ linux-2.6-patched/drivers/s390/cio/cio.c 2006-10-11 15:23:34.000000000 +0200
@@ -609,8 +609,8 @@ do_IRQ (struct pt_regs *regs)
struct irb *irb;
struct pt_regs *old_regs;
- irq_enter ();
old_regs = set_irq_regs(regs);
+ irq_enter();
asm volatile ("mc 0,0");
if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer)
/**
@@ -655,8 +655,8 @@ do_IRQ (struct pt_regs *regs)
* out of the sie which costs more cycles than it saves.
*/
} while (!MACHINE_IS_VM && tpi (NULL) != 0);
+ irq_exit();
set_irq_regs(old_regs);
- irq_exit ();
}
#ifdef CONFIG_CCW_CONSOLE
diff -urpN linux-2.6/include/asm-s390/timer.h linux-2.6-patched/include/asm-s390/timer.h
--- linux-2.6/include/asm-s390/timer.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6-patched/include/asm-s390/timer.h 2006-10-11 15:23:34.000000000 +0200
@@ -26,7 +26,7 @@ struct vtimer_list {
spinlock_t lock;
unsigned long magic;
- void (*function)(unsigned long, struct pt_regs*);
+ void (*function)(unsigned long);
unsigned long data;
};
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-10-11 13:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-11 13:34 [S390] irq change improvements Martin Schwidefsky
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.