[openib-general] [PATCH] ib_mad: Implement ib_free_recv_mad routine

Sean Hefty mshefty at ichips.intel.com
Wed Sep 15 10:57:00 PDT 2004


On Wed, 15 Sep 2004 12:38:24 -0400
Hal Rosenstock <halr at voltaire.com> wrote:

> ib_mad: Implement ib_free_recv_mad routine
> ===================================================================
> +void ib_free_recv_mad(struct ib_mad_recv_wc *mad_recv_wc)
> +{
> +	kfree(mad_recv_wc); /* RMPP !!! */
> +}
> +EXPORT_SYMBOL(ib_free_recv_mad);
> +
>  static inline u8 convert_mgmt_class(u8 mgmt_class)
>  {
>  	/* Alias IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE to 0 */
> @@ -669,7 +679,6 @@
>  static void ib_mad_recv_done_handler(struct ib_mad_port_private
> *port_priv,
>  				     struct ib_wc *wc)
>  {
> -	struct ib_mad_recv_wc recv_wc;
>  	struct ib_mad_private *recv;
>  	unsigned long flags;
>  	u32 qp_num;
> @@ -707,9 +716,9 @@
>  			 PCI_DMA_FROMDEVICE);
>  
>  	/* Setup MAD receive work completion from "normal" work completion */
> -	recv_wc.wc = wc;
> -	recv_wc.mad_len = sizeof(struct ib_mad); /* Should this be based on
> wc->byte_len ? Also, RMPP !!! */
> -	recv_wc.recv_buf = &recv->header.recv_buf;
> +	recv->header.recv_wc.wc = wc;
> +	recv->header.recv_wc.mad_len = sizeof(struct ib_mad); /* Should this
> be based on wc->byte_len ? Also, RMPP !!! */
> +	recv->header.recv_wc.recv_buf = &recv->header.recv_buf;
>  

Would it make more sense for ib_mad_recv_wc to have an embedded recv_buf, rather than a a pointer to a recv_buf?  Seems like a minor optimization/simplification.



More information about the general mailing list