diff options
author | Markus Lidel <Markus.Lidel@shadowconnect.com> | 2005-06-24 01:02:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-24 03:05:28 -0400 |
commit | 61fbfa8129c1771061a0e9f47747854293081c5b (patch) | |
tree | 03fe14c41e2a49d3841ae6820a2dd43a91fddee9 /drivers/message/i2o/exec-osm.c | |
parent | 34d6e07570ef74b965131452a862b13dfa779188 (diff) |
[PATCH] I2O: bugfixes and compability enhancements
Changes:
- Fixed sysfs bug where user and parent links where added to the I2O
device itself
- Fixed bug when calculating TID for the event handler and cleaned up the
workflow of i2o_driver_dispatch()
- Fixed oops when no I2O device could be found for an event delivered to
Exec-OSM
- Fixed initialization of spinlock in Exec-OSM
- Fixed memory leak in i2o_cfg_passthru() and i2o_cfg_passthru()
- Removed MTRR support
- Added PCI ID of Promise SX6000 with firmware >= 1.20.x.x
- Turn of caching for ioremapped memory of in_queue
- Added initialization sequence for Promise controllers
- Moved definition of u8 / u16 / u32 for raidutils before first use
Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/message/i2o/exec-osm.c')
-rw-r--r-- | drivers/message/i2o/exec-osm.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/message/i2o/exec-osm.c b/drivers/message/i2o/exec-osm.c index 79c1cbfb8f44..1e28e886f1ca 100644 --- a/drivers/message/i2o/exec-osm.c +++ b/drivers/message/i2o/exec-osm.c | |||
@@ -204,12 +204,10 @@ static int i2o_msg_post_wait_complete(struct i2o_controller *c, u32 m, | |||
204 | struct i2o_message __iomem *msg) | 204 | struct i2o_message __iomem *msg) |
205 | { | 205 | { |
206 | struct i2o_exec_wait *wait, *tmp; | 206 | struct i2o_exec_wait *wait, *tmp; |
207 | static spinlock_t lock; | 207 | static spinlock_t lock = SPIN_LOCK_UNLOCKED; |
208 | int rc = 1; | 208 | int rc = 1; |
209 | u32 context; | 209 | u32 context; |
210 | 210 | ||
211 | spin_lock_init(&lock); | ||
212 | |||
213 | context = readl(&msg->u.s.tcntxt); | 211 | context = readl(&msg->u.s.tcntxt); |
214 | 212 | ||
215 | /* | 213 | /* |
@@ -381,8 +379,9 @@ static int i2o_exec_reply(struct i2o_controller *c, u32 m, | |||
381 | */ | 379 | */ |
382 | static void i2o_exec_event(struct i2o_event *evt) | 380 | static void i2o_exec_event(struct i2o_event *evt) |
383 | { | 381 | { |
384 | osm_info("Event received from device: %d\n", | 382 | if(likely(evt->i2o_dev)) |
385 | evt->i2o_dev->lct_data.tid); | 383 | osm_info("Event received from device: %d\n", |
384 | evt->i2o_dev->lct_data.tid); | ||
386 | kfree(evt); | 385 | kfree(evt); |
387 | }; | 386 | }; |
388 | 387 | ||