if (!found) { /* Special handling for NULL users. */ if (!recv_msg->user && intf->null_user_handler){ intf->null_user_handler(intf, msg); spin_lock_irqsave(&intf->counter_lock, flags); intf->handled_local_responses++; spin_unlock_irqrestore(&intf->counter_lock, flags); }else{ /* The user for the message went away, so give up. */ spin_lock_irqsave(&intf->counter_lock, flags); intf->unhandled_local_responses++; spin_unlock_irqrestore(&intf->counter_lock, flags); } 
if ((! found) && recv_msg->user) { /* The user for the message went away, so give up. */ spin_lock_irqsave(&intf->counter_lock, flags); intf->unhandled_local_responses++; spin_unlock_irqrestore(&intf->counter_lock, flags); 
static int handle_bmc_rsp(ipmi_smi_t          intf,			  struct ipmi_smi_msg *msg){	struct ipmi_recv_msg *recv_msg;	int                  found = 0;	struct ipmi_user     *user;	unsigned long        flags;	recv_msg = (struct ipmi_recv_msg *) msg->user_data;	/* Make sure the user still exists. */	list_for_each_entry(user, &(intf->users), link) {		if (user == recv_msg->user) {			/* Found it, so we can deliver it */			found = 1;			break;		}	}	if (!found) {		/* Special handling for NULL users. */		if (!recv_msg->user && intf->null_user_handler){			intf->null_user_handler(intf, msg);			spin_lock_irqsave(&intf->counter_lock, flags);			intf->handled_local_responses++;			spin_unlock_irqrestore(&intf->counter_lock, flags);		}else{			/* The user for the message went away, so give up. */			spin_lock_irqsave(&intf->counter_lock, flags);			intf->unhandled_local_responses++;			spin_unlock_irqrestore(&intf->counter_lock, flags);		}		ipmi_free_recv_msg(recv_msg);	} else {		struct ipmi_system_interface_addr *smi_addr;		spin_lock_irqsave(&intf->counter_lock, flags);		intf->handled_local_responses++;		spin_unlock_irqrestore(&intf->counter_lock, flags);		recv_msg->recv_type = IPMI_RESPONSE_RECV_TYPE;		recv_msg->msgid = msg->msgid;		smi_addr = ((struct ipmi_system_interface_addr *)			    &(recv_msg->addr));		smi_addr->addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;		smi_addr->channel = IPMI_BMC_CHANNEL;		smi_addr->lun = msg->rsp[0] & 3;		recv_msg->msg.netfn = msg->rsp[0] >> 2;		recv_msg->msg.cmd = msg->rsp[1];		memcpy(recv_msg->msg_data,		       &(msg->rsp[2]),		       msg->rsp_size - 2);		recv_msg->msg.data = recv_msg->msg_data;		recv_msg->msg.data_len = msg->rsp_size - 2;		deliver_response(recv_msg);	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/56a55ec64806fb56e0cd43b0f726020b74c6689b/ipmi_msghandler.c/clean/drivers/char/ipmi/ipmi_msghandler.c