[PATCH] uml pt_regs fixes

Real fix for UML pt_regs stuff.  Note set_irq_regs() logics in there...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Al Viro
2006-10-08 22:49:34 +01:00
committed by Linus Torvalds
parent e24bb60e11
commit 7bea96fd22
10 changed files with 24 additions and 25 deletions

View 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;