struct ib_mad_recv_buf *entry; 
struct ib_mad_recv_buf *mad_recv_buf, *temp_recv_buf; 
void ib_free_recv_mad(struct ib_mad_recv_wc *mad_recv_wc){	struct ib_mad_recv_buf *entry;	struct ib_mad_private_header *mad_priv_hdr;	struct ib_mad_private *priv;	mad_priv_hdr = container_of(mad_recv_wc,				    struct ib_mad_private_header,				    recv_wc);	priv = container_of(mad_priv_hdr, struct ib_mad_private, header);	/*	 * Walk receive buffer list associated with this WC	 * No need to remove them from list of receive buffers	 */	list_for_each_entry(entry, &mad_recv_wc->recv_buf.list, list) {		/* Free previous receive buffer */		kmem_cache_free(ib_mad_cache, priv);		mad_priv_hdr = container_of(mad_recv_wc,					    struct ib_mad_private_header,					    recv_wc);		priv = container_of(mad_priv_hdr, struct ib_mad_private,				    header);	}	/* Free last buffer */	kmem_cache_free(ib_mad_cache, priv);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fa619a77046bef30478697aba0553991033afb8e/mad.c/clean/drivers/infiniband/core/mad.c