diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2006-12-06 13:41:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-06 14:09:08 -0500 |
commit | 3e577a80ea85e2557831fd44064f809646f260b4 (patch) | |
tree | 11e5198b33075effb33f70693bc3a189091eb1c3 /drivers/char/stallion.c | |
parent | 7a87b6c228b8d0cc54b9faa159732fcb2a6c9d0c (diff) |
[PATCH] drivers/{char|isdn}: work_struct-induced breakage
part 1 of fsck-knows-how-many
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/stallion.c')
-rw-r--r-- | drivers/char/stallion.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index 522e88e395cc..5e2de62bce70 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c | |||
@@ -500,7 +500,7 @@ static int stl_echatintr(stlbrd_t *brdp); | |||
500 | static int stl_echmcaintr(stlbrd_t *brdp); | 500 | static int stl_echmcaintr(stlbrd_t *brdp); |
501 | static int stl_echpciintr(stlbrd_t *brdp); | 501 | static int stl_echpciintr(stlbrd_t *brdp); |
502 | static int stl_echpci64intr(stlbrd_t *brdp); | 502 | static int stl_echpci64intr(stlbrd_t *brdp); |
503 | static void stl_offintr(void *private); | 503 | static void stl_offintr(struct work_struct *); |
504 | static stlbrd_t *stl_allocbrd(void); | 504 | static stlbrd_t *stl_allocbrd(void); |
505 | static stlport_t *stl_getport(int brdnr, int panelnr, int portnr); | 505 | static stlport_t *stl_getport(int brdnr, int panelnr, int portnr); |
506 | 506 | ||
@@ -2081,14 +2081,12 @@ static int stl_echpci64intr(stlbrd_t *brdp) | |||
2081 | /* | 2081 | /* |
2082 | * Service an off-level request for some channel. | 2082 | * Service an off-level request for some channel. |
2083 | */ | 2083 | */ |
2084 | static void stl_offintr(void *private) | 2084 | static void stl_offintr(struct work_struct *work) |
2085 | { | 2085 | { |
2086 | stlport_t *portp; | 2086 | stlport_t *portp = container_of(work, stlport_t, tqueue); |
2087 | struct tty_struct *tty; | 2087 | struct tty_struct *tty; |
2088 | unsigned int oldsigs; | 2088 | unsigned int oldsigs; |
2089 | 2089 | ||
2090 | portp = private; | ||
2091 | |||
2092 | #ifdef DEBUG | 2090 | #ifdef DEBUG |
2093 | printk("stl_offintr(portp=%x)\n", (int) portp); | 2091 | printk("stl_offintr(portp=%x)\n", (int) portp); |
2094 | #endif | 2092 | #endif |
@@ -2156,7 +2154,7 @@ static int __init stl_initports(stlbrd_t *brdp, stlpanel_t *panelp) | |||
2156 | portp->baud_base = STL_BAUDBASE; | 2154 | portp->baud_base = STL_BAUDBASE; |
2157 | portp->close_delay = STL_CLOSEDELAY; | 2155 | portp->close_delay = STL_CLOSEDELAY; |
2158 | portp->closing_wait = 30 * HZ; | 2156 | portp->closing_wait = 30 * HZ; |
2159 | INIT_WORK(&portp->tqueue, stl_offintr, portp); | 2157 | INIT_WORK(&portp->tqueue, stl_offintr); |
2160 | init_waitqueue_head(&portp->open_wait); | 2158 | init_waitqueue_head(&portp->open_wait); |
2161 | init_waitqueue_head(&portp->close_wait); | 2159 | init_waitqueue_head(&portp->close_wait); |
2162 | portp->stats.brd = portp->brdnr; | 2160 | portp->stats.brd = portp->brdnr; |