]> www.infradead.org Git - users/dwmw2/linux.git/commit
skbuff: allow 2-4-argument skb_frag_dma_map()
authorAlexander Lobakin <aleksander.lobakin@intel.com>
Wed, 11 Dec 2024 17:26:47 +0000 (18:26 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 13 Dec 2024 02:23:08 +0000 (18:23 -0800)
commit0dffdb3b3366c932fb7d210f5032476c552f7000
tree79b88b54d57625f545f2cdd3351e553d5aa4478a
parent207ff83cecaeaacf0d47c8ccbe927c8354ac1280
skbuff: allow 2-4-argument skb_frag_dma_map()

skb_frag_dma_map(dev, frag, 0, skb_frag_size(frag), DMA_TO_DEVICE)
is repeated across dozens of drivers and really wants a shorthand.
Add a macro which will count args and handle all possible number
from 2 to 5. Semantics:

skb_frag_dma_map(dev, frag) ->
__skb_frag_dma_map(dev, frag, 0, skb_frag_size(frag), DMA_TO_DEVICE)

skb_frag_dma_map(dev, frag, offset) ->
__skb_frag_dma_map(dev, frag, offset, skb_frag_size(frag) - offset,
   DMA_TO_DEVICE)

skb_frag_dma_map(dev, frag, offset, size) ->
__skb_frag_dma_map(dev, frag, offset, size, DMA_TO_DEVICE)

skb_frag_dma_map(dev, frag, offset, size, dir) ->
__skb_frag_dma_map(dev, frag, offset, size, dir)

No object code size changes for the existing callers. Users passing
less arguments also won't have bigger size comparing to the full
equivalent call.

Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Link: https://patch.msgid.link/20241211172649.761483-11-aleksander.lobakin@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h