Subject: Re: Who's allowed to set a skb destructor?

From: Divy Le Ray <[email-masked]>
Date: Thu, 05 Jul 2007 04:07:07 -0700

Andi Kleen wrote:
> Brice Goglin <[email-masked]> writes:
>
>   
>> I am trying to understand whether I can setup a skb destructor in my
>> code (which is basically a protocol above dev_queue_xmit() and co). From
>> what I see in many parts in the current kernel code, the "protocol" (I
>> mean, the one who actually creates the skb) may setup a destructor.
>>     
>
> The socket layer generally needs it for its own accounting.
> Unless you never pass it up you can't use it.
>
>   
>> However, I also see some places where some low-level drivers might be
>> using a destructor too , without apparently checking whether an upper
>> layer already uses one. For instance, write_ofld_wr() in cxgb3/sge.c.
>>     
>
> Likely a bug. Normally that should not slip past code review.
>   

Andi,

The destructor method is set and used for skbs originating from the RDMA 
driver sitting above cxgb3.

The patch introducing this code was discussed at the time.
http://marc.info/?l=linux-netdev&m=117029329230969&w=2

Cheers,
Divy