memset(timeout, 0, sizeof *timeout + sizeof (struct ib_mad_hdr));  timeout->length = sizeof (struct ib_mad_hdr); timeout->mad.hdr.id = packet->mad.hdr.id; 
timeout->length 	= IB_MGMT_MAD_HDR; timeout->mad.hdr.id 	= packet->mad.hdr.id; 
static void send_handler(struct ib_mad_agent *agent,			 struct ib_mad_send_wc *send_wc){	struct ib_umad_file *file = agent->context;	struct ib_umad_packet *timeout;	struct ib_umad_packet *packet = send_wc->send_buf->context[0];	ib_destroy_ah(packet->msg->ah);	ib_free_send_mad(packet->msg);	if (send_wc->status == IB_WC_RESP_TIMEOUT_ERR) {		timeout = kmalloc(sizeof *timeout + sizeof (struct ib_mad_hdr),				  GFP_KERNEL);		if (!timeout)			goto out;		memset(timeout, 0, sizeof *timeout + sizeof (struct ib_mad_hdr));		timeout->length = sizeof (struct ib_mad_hdr);		timeout->mad.hdr.id = packet->mad.hdr.id;		timeout->mad.hdr.status = ETIMEDOUT;		memcpy(timeout->mad.data, packet->mad.data,		       sizeof (struct ib_mad_hdr));		if (!queue_packet(file, agent, timeout))				return;	}out:	kfree(packet);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/cb0f0910f4b41772a6771bdb4fb2d419b27bcd77/user_mad.c/clean/drivers/infiniband/core/user_mad.c