diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2007-05-23 13:58:05 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-23 20:14:14 -0700 |
commit | e578e9a1cc8a5983d87126d5877e305d3189f1b9 (patch) | |
tree | f4e2903bc010ac88a392dd714cb9986cbfaa4c12 /drivers/message/i2o | |
parent | b3762bfc8d046342db664d855f8f875e8a4c2ca1 (diff) | |
download | linux-e578e9a1cc8a5983d87126d5877e305d3189f1b9.tar.gz linux-e578e9a1cc8a5983d87126d5877e305d3189f1b9.tar.bz2 linux-e578e9a1cc8a5983d87126d5877e305d3189f1b9.zip |
i2o: destroy event queue only when drv->event is set
i2o_driver_register() initalizes event queue for driver only when
drv->event is set. So similarly the event queue should be destroyed only
when drv->event is set in the error path. Otherwise destroy_workqueue()
will called with NULL.
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/message/i2o')
-rw-r--r-- | drivers/message/i2o/driver.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/message/i2o/driver.c b/drivers/message/i2o/driver.c index d3235f213c89..d330e4eb86ac 100644 --- a/drivers/message/i2o/driver.c +++ b/drivers/message/i2o/driver.c @@ -123,8 +123,12 @@ int i2o_driver_register(struct i2o_driver *drv) } rc = driver_register(&drv->driver); - if (rc) - destroy_workqueue(drv->event_queue); + if (rc) { + if (drv->event) { + destroy_workqueue(drv->event_queue); + drv->event_queue = NULL; + } + } return rc; }; |