[PATCH] uml pt_regs fixes
[pandora-kernel.git] / arch / um / kernel / irq.c
index 7c41dab..3c01c2b 100644 (file)
@@ -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;