diff options
| author | Markus Lidel <Markus.Lidel@shadowconnect.com> | 2005-06-23 22:02:11 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-24 00:05:28 -0700 | 
| 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,  				      struct i2o_message __iomem *msg)  {  	struct i2o_exec_wait *wait, *tmp; -	static spinlock_t lock; +	static spinlock_t lock = SPIN_LOCK_UNLOCKED;  	int rc = 1;  	u32 context; -	spin_lock_init(&lock); -  	context = readl(&msg->u.s.tcntxt);  	/* @@ -381,8 +379,9 @@ static int i2o_exec_reply(struct i2o_controller *c, u32 m,   */  static void i2o_exec_event(struct i2o_event *evt)  { -	osm_info("Event received from device: %d\n", -		 evt->i2o_dev->lct_data.tid); +	if(likely(evt->i2o_dev)) +		osm_info("Event received from device: %d\n", +			 evt->i2o_dev->lct_data.tid);  	kfree(evt);  }; | 
