diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2006-10-08 17:49:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-08 19:34:08 -0400 |
commit | 7bea96fd22a8fd19f90817405b4abe032317a0e3 (patch) | |
tree | 518bbc228f61f8ff393e4f9a57eeaab8aa2ea2df /arch/um/drivers | |
parent | e24bb60e11e3fe9858b71874a4ac59333adbc4fc (diff) |
[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>
Diffstat (limited to 'arch/um/drivers')
-rw-r--r-- | arch/um/drivers/line.c | 7 | ||||
-rw-r--r-- | arch/um/drivers/mconsole_kern.c | 8 | ||||
-rw-r--r-- | arch/um/drivers/net_kern.c | 2 | ||||
-rw-r--r-- | arch/um/drivers/port_kern.c | 4 | ||||
-rw-r--r-- | arch/um/drivers/ubd_kern.c | 2 | ||||
-rw-r--r-- | arch/um/drivers/xterm_kern.c | 2 |
6 files changed, 12 insertions, 13 deletions
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index cfd9f01fd464..426633e5d6e3 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -20,7 +20,7 @@ | |||
20 | 20 | ||
21 | #define LINE_BUFSIZE 4096 | 21 | #define LINE_BUFSIZE 4096 |
22 | 22 | ||
23 | static irqreturn_t line_interrupt(int irq, void *data, struct pt_regs *unused) | 23 | static irqreturn_t line_interrupt(int irq, void *data) |
24 | { | 24 | { |
25 | struct chan *chan = data; | 25 | struct chan *chan = data; |
26 | struct line *line = chan->line; | 26 | struct line *line = chan->line; |
@@ -364,8 +364,7 @@ void line_unthrottle(struct tty_struct *tty) | |||
364 | reactivate_chan(&line->chan_list, line->driver->read_irq); | 364 | reactivate_chan(&line->chan_list, line->driver->read_irq); |
365 | } | 365 | } |
366 | 366 | ||
367 | static irqreturn_t line_write_interrupt(int irq, void *data, | 367 | static irqreturn_t line_write_interrupt(int irq, void *data) |
368 | struct pt_regs *unused) | ||
369 | { | 368 | { |
370 | struct chan *chan = data; | 369 | struct chan *chan = data; |
371 | struct line *line = chan->line; | 370 | struct line *line = chan->line; |
@@ -712,7 +711,7 @@ struct winch { | |||
712 | struct tty_struct *tty; | 711 | struct tty_struct *tty; |
713 | }; | 712 | }; |
714 | 713 | ||
715 | static irqreturn_t winch_interrupt(int irq, void *data, struct pt_regs *unused) | 714 | static irqreturn_t winch_interrupt(int irq, void *data) |
716 | { | 715 | { |
717 | struct winch *winch = data; | 716 | struct winch *winch = data; |
718 | struct tty_struct *tty; | 717 | struct tty_struct *tty; |
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c index a67dcbd78de4..d08bd036ccb8 100644 --- a/arch/um/drivers/mconsole_kern.c +++ b/arch/um/drivers/mconsole_kern.c | |||
@@ -74,8 +74,7 @@ static void mc_work_proc(void *unused) | |||
74 | 74 | ||
75 | static DECLARE_WORK(mconsole_work, mc_work_proc, NULL); | 75 | static DECLARE_WORK(mconsole_work, mc_work_proc, NULL); |
76 | 76 | ||
77 | static irqreturn_t mconsole_interrupt(int irq, void *dev_id, | 77 | static irqreturn_t mconsole_interrupt(int irq, void *dev_id) |
78 | struct pt_regs *regs) | ||
79 | { | 78 | { |
80 | /* long to avoid size mismatch warnings from gcc */ | 79 | /* long to avoid size mismatch warnings from gcc */ |
81 | long fd; | 80 | long fd; |
@@ -674,8 +673,9 @@ static void with_console(struct mc_request *req, void (*proc)(void *), | |||
674 | static void sysrq_proc(void *arg) | 673 | static void sysrq_proc(void *arg) |
675 | { | 674 | { |
676 | char *op = arg; | 675 | char *op = arg; |
677 | 676 | struct pt_regs *old_regs = set_irq_regs(¤t->thread.regs); | |
678 | handle_sysrq(*op, ¤t->thread.regs, NULL); | 677 | handle_sysrq(*op, NULL); |
678 | set_irq_regs(old_regs); | ||
679 | } | 679 | } |
680 | 680 | ||
681 | void mconsole_sysrq(struct mc_request *req) | 681 | void mconsole_sysrq(struct mc_request *req) |
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index c1c5604752fb..ec9eb8bd9432 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c | |||
@@ -77,7 +77,7 @@ static void uml_dev_close(void* dev) | |||
77 | dev_close( (struct net_device *) dev); | 77 | dev_close( (struct net_device *) dev); |
78 | } | 78 | } |
79 | 79 | ||
80 | irqreturn_t uml_net_interrupt(int irq, void *dev_id, struct pt_regs *regs) | 80 | irqreturn_t uml_net_interrupt(int irq, void *dev_id) |
81 | { | 81 | { |
82 | struct net_device *dev = dev_id; | 82 | struct net_device *dev = dev_id; |
83 | struct uml_net_private *lp = dev->priv; | 83 | struct uml_net_private *lp = dev->priv; |
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c index 73755f37a8a8..ce9f3733f73e 100644 --- a/arch/um/drivers/port_kern.c +++ b/arch/um/drivers/port_kern.c | |||
@@ -47,7 +47,7 @@ struct connection { | |||
47 | struct port_list *port; | 47 | struct port_list *port; |
48 | }; | 48 | }; |
49 | 49 | ||
50 | static irqreturn_t pipe_interrupt(int irq, void *data, struct pt_regs *regs) | 50 | static irqreturn_t pipe_interrupt(int irq, void *data) |
51 | { | 51 | { |
52 | struct connection *conn = data; | 52 | struct connection *conn = data; |
53 | int fd; | 53 | int fd; |
@@ -152,7 +152,7 @@ void port_work_proc(void *unused) | |||
152 | 152 | ||
153 | DECLARE_WORK(port_work, port_work_proc, NULL); | 153 | DECLARE_WORK(port_work, port_work_proc, NULL); |
154 | 154 | ||
155 | static irqreturn_t port_interrupt(int irq, void *data, struct pt_regs *regs) | 155 | static irqreturn_t port_interrupt(int irq, void *data) |
156 | { | 156 | { |
157 | struct port_list *port = data; | 157 | struct port_list *port = data; |
158 | 158 | ||
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index f0b0668458b7..bc458f57921b 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -524,7 +524,7 @@ static void ubd_handler(void) | |||
524 | do_ubd_request(ubd_queue); | 524 | do_ubd_request(ubd_queue); |
525 | } | 525 | } |
526 | 526 | ||
527 | static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused) | 527 | static irqreturn_t ubd_intr(int irq, void *dev) |
528 | { | 528 | { |
529 | ubd_handler(); | 529 | ubd_handler(); |
530 | return(IRQ_HANDLED); | 530 | return(IRQ_HANDLED); |
diff --git a/arch/um/drivers/xterm_kern.c b/arch/um/drivers/xterm_kern.c index 6036ec85895a..a4ce7058e10e 100644 --- a/arch/um/drivers/xterm_kern.c +++ b/arch/um/drivers/xterm_kern.c | |||
@@ -21,7 +21,7 @@ struct xterm_wait { | |||
21 | int new_fd; | 21 | int new_fd; |
22 | }; | 22 | }; |
23 | 23 | ||
24 | static irqreturn_t xterm_interrupt(int irq, void *data, struct pt_regs *regs) | 24 | static irqreturn_t xterm_interrupt(int irq, void *data) |
25 | { | 25 | { |
26 | struct xterm_wait *xterm = data; | 26 | struct xterm_wait *xterm = data; |
27 | int fd; | 27 | int fd; |