On Tue, 2004-11-02 at 23:00, Shirley Ma wrote:
> Here is the patch. Please review it.

Yes, these are memory leaks in agent_mad_send but it would be better to
fix them with the deallocation being done at the function level where
the allocation is done. Hence rather than agent_send_mad returning void,
it should return int, etc. I will post a patch for this shortly.

-- Hal

> 
> diff -urN access/agent.c access.patch5/agent.c
> --- access/agent.c    2004-11-02 17:40:06.000000000 -0800
> +++ access.patch5/agent.c     2004-11-02 18:43:47.534608536 -0800
> @@ -357,12 +357,16 @@
>       if (!port_priv) {
>               printk(KERN_ERR SPFX "agent_mad_send: no matching MAD agent %p\n",
>                      mad_agent);
> +             kfree(mad);
>               return;
>       }
>  
>       agent_send_wr = kmalloc(sizeof(*agent_send_wr), GFP_KERNEL);
> -     if (!agent_send_wr)
> +     if (!agent_send_wr) {
> +             printk(KERN_ERR SPFX "No memory for agent work request\n");
> +             kfree(mad);
>               return;
> +     }
>       agent_send_wr->mad = mad;
>  
>       /* PCI mapping */
> @@ -407,6 +411,7 @@
>       if (IS_ERR(agent_send_wr->ah)) {
>               printk(KERN_ERR SPFX "No memory for address handle\n");
>               kfree(mad);
> +             kfree(agent_send_wr);
>               return;
>       }
>                                                                                  
> @@ -432,6 +437,8 @@
>                                sizeof(struct ib_mad),
>                                PCI_DMA_TODEVICE);
>               ib_destroy_ah(agent_send_wr->ah);
> +             kfree(mad);
> +             kfree(agent_send_wr);
>       } else {
>               list_add_tail(&agent_send_wr->send_list,
>                             &port_priv->send_posted_list);
> 
> 

_______________________________________________
openib-general mailing list
[EMAIL PROTECTED]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to