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.