diff options
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 | ||