lkml.org 
[lkml]   [2003]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
Subjectnetwork driver that uses skb destructor
I would like to write a network driver that uses DMA and manages it's 
own memory.

The most common approach (in RX) seem to be to allocate the memory for
DMA transfer using dev_alloc_skb(), get the HW DMA engine to transfer
the packet into this skb buffer and later free it using dev_kfree_skb().

For various reasons (mainly to support legacy source code) I would like
to allocate and free the buffer using my own functions. Theoretically, I
could get away by using skb->destructor.

When I receive a packet I could allocate a zero length skb, point
skb->data to my (already allocated) buffer which contains the packet and
register the skb->destructor callback. Later, when this skb would be
freed my destructor callback would be called and it would return the
buffer to driver's pool.

It seems to me that it should work, but I'm a little bit cautions
because I could not find a single network driver (in 2.4 kernel) that
uses such an approach and I'm not extremely eager to be the first one to
try.

Anybody tried to implement similar approach ?
Any thoughts why this would (or would not) work ?

Thanks a lot.

--
Alexander Sirotkin
SW Engineer

Texas Instruments
Broadband Communications Israel (BCIL)
Tel: +972-9-9706587
________________________________________________________________________
"Those who do not understand Unix are condemned to reinvent it, poorly."
-- Henry Spencer

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:59    [W:0.082 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site