summaryrefslogtreecommitdiff
path: root/arch/um/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/kernel')
-rw-r--r--arch/um/kernel/irq.c15
-rw-r--r--arch/um/kernel/sigio.c2
-rw-r--r--arch/um/kernel/time.c2
3 files changed, 10 insertions, 9 deletions
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c
index 7c41dab..3c01c2b 100644
--- a/arch/um/kernel/irq.c
+++ b/arch/um/kernel/irq.c
@@ -355,14 +355,16 @@ void forward_interrupts(int pid)
*/
unsigned int do_IRQ(int irq, union uml_pt_regs *regs)
{
- irq_enter();
- __do_IRQ(irq);
- irq_exit();
- return 1;
+ struct pt_regs *old_regs = set_irq_regs((struct pt_regs *)regs);
+ irq_enter();
+ __do_IRQ(irq);
+ irq_exit();
+ set_irq_regs(old_regs);
+ return 1;
}
int um_request_irq(unsigned int irq, int fd, int type,
- irqreturn_t (*handler)(int, void *, struct pt_regs *),
+ irqreturn_t (*handler)(int, void *),
unsigned long irqflags, const char * devname,
void *dev_id)
{
@@ -423,8 +425,7 @@ void __init init_IRQ(void)
}
}
-int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *,
- struct pt_regs *))
+int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *))
{
int fds[2], err;
diff --git a/arch/um/kernel/sigio.c b/arch/um/kernel/sigio.c
index 0ad755c..2b0ab43 100644
--- a/arch/um/kernel/sigio.c
+++ b/arch/um/kernel/sigio.c
@@ -17,7 +17,7 @@
/* Protected by sigio_lock() called from write_sigio_workaround */
static int sigio_irq_fd = -1;
-static irqreturn_t sigio_interrupt(int irq, void *data, struct pt_regs *unused)
+static irqreturn_t sigio_interrupt(int irq, void *data)
{
char c;
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
index a92965f..2e354b3 100644
--- a/arch/um/kernel/time.c
+++ b/arch/um/kernel/time.c
@@ -86,7 +86,7 @@ static inline unsigned long long get_time(void)
return nsecs;
}
-irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs)
+irqreturn_t um_timer(int irq, void *dev)
{
unsigned long long nsecs;
unsigned long flags;