aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/drivers
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-10-08 17:49:34 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-08 19:34:08 -0400
commit7bea96fd22a8fd19f90817405b4abe032317a0e3 (patch)
tree518bbc228f61f8ff393e4f9a57eeaab8aa2ea2df /arch/um/drivers
parente24bb60e11e3fe9858b71874a4ac59333adbc4fc (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.c7
-rw-r--r--arch/um/drivers/mconsole_kern.c8
-rw-r--r--arch/um/drivers/net_kern.c2
-rw-r--r--arch/um/drivers/port_kern.c4
-rw-r--r--arch/um/drivers/ubd_kern.c2
-rw-r--r--arch/um/drivers/xterm_kern.c2
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
23static irqreturn_t line_interrupt(int irq, void *data, struct pt_regs *unused) 23static 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
367static irqreturn_t line_write_interrupt(int irq, void *data, 367static 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
715static irqreturn_t winch_interrupt(int irq, void *data, struct pt_regs *unused) 714static 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
75static DECLARE_WORK(mconsole_work, mc_work_proc, NULL); 75static DECLARE_WORK(mconsole_work, mc_work_proc, NULL);
76 76
77static irqreturn_t mconsole_interrupt(int irq, void *dev_id, 77static 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 *),
674static void sysrq_proc(void *arg) 673static 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(&current->thread.regs);
678 handle_sysrq(*op, &current->thread.regs, NULL); 677 handle_sysrq(*op, NULL);
678 set_irq_regs(old_regs);
679} 679}
680 680
681void mconsole_sysrq(struct mc_request *req) 681void 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
80irqreturn_t uml_net_interrupt(int irq, void *dev_id, struct pt_regs *regs) 80irqreturn_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
50static irqreturn_t pipe_interrupt(int irq, void *data, struct pt_regs *regs) 50static 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
153DECLARE_WORK(port_work, port_work_proc, NULL); 153DECLARE_WORK(port_work, port_work_proc, NULL);
154 154
155static irqreturn_t port_interrupt(int irq, void *data, struct pt_regs *regs) 155static 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
527static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused) 527static 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
24static irqreturn_t xterm_interrupt(int irq, void *data, struct pt_regs *regs) 24static 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;