pm = readl(&msg->body[3]); 
pm = le32_to_cpu(msg->body[3]); 
static int i2o_exec_reply(struct i2o_controller *c, u32 m,			  struct i2o_message __iomem *msg){	u32 context;	if (readl(&msg->u.head[0]) & MSG_FAIL) {		/*		 * If Fail bit is set we must take the transaction context of		 * the preserved message to find the right request again.		 */		struct i2o_message __iomem *pmsg;		u32 pm;		pm = readl(&msg->body[3]);		pmsg = i2o_msg_in_to_virt(c, pm);		i2o_report_status(KERN_INFO, "i2o_core", msg);		context = readl(&pmsg->u.s.tcntxt);		/* Release the preserved msg */		i2o_msg_nop(c, pm);	} else		context = readl(&msg->u.s.tcntxt);	if (context & 0x80000000)		return i2o_msg_post_wait_complete(c, m, msg, context);	if ((readl(&msg->u.head[1]) >> 24) == I2O_CMD_LCT_NOTIFY) {		struct work_struct *work;		pr_debug("%s: LCT notify received\n", c->name);		work = kmalloc(sizeof(*work), GFP_ATOMIC);		if (!work)			return -ENOMEM;		INIT_WORK(work, (void (*)(void *))i2o_exec_lct_modified, c);		queue_work(i2o_exec_driver.event_queue, work);		return 1;	}	/*	 * If this happens, we want to dump the message to the syslog so	 * it can be sent back to the card manufacturer by the end user	 * to aid in debugging.	 *	 */	printk(KERN_WARNING "%s: Unsolicited message reply sent to core!"	       "Message dumped to syslog\n", c->name);	i2o_dump_message(msg);	return -EFAULT;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9e87545f06930c1d294423a8091d1077e7444a47/exec-osm.c/buggy/drivers/message/i2o/exec-osm.c