mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
net: stmmac: add stmmac_tso_header_size()
We will need to compute the size of the protocol headers in two places, so move this into a separate function. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1w7ptJ-0000000Eat5-2ZlA@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
e32820264c
commit
f799b5dab9
|
|
@ -4373,6 +4373,18 @@ static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue)
|
|||
stmmac_set_queue_tx_tail_ptr(priv, tx_q, queue, tx_q->cur_tx);
|
||||
}
|
||||
|
||||
static size_t stmmac_tso_header_size(struct sk_buff *skb)
|
||||
{
|
||||
size_t size;
|
||||
|
||||
if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
|
||||
size = skb_transport_offset(skb) + sizeof(struct udphdr);
|
||||
else
|
||||
size = skb_tcp_all_headers(skb);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/**
|
||||
* stmmac_tso_xmit - Tx entry point of the driver for oversized frames (TSO)
|
||||
* @skb : the socket buffer
|
||||
|
|
@ -4444,13 +4456,11 @@ static netdev_tx_t stmmac_tso_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
first_tx = tx_q->cur_tx;
|
||||
|
||||
/* Compute header lengths */
|
||||
if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) {
|
||||
proto_hdr_len = skb_transport_offset(skb) + sizeof(struct udphdr);
|
||||
proto_hdr_len = stmmac_tso_header_size(skb);
|
||||
if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
|
||||
hdr = sizeof(struct udphdr);
|
||||
} else {
|
||||
proto_hdr_len = skb_tcp_all_headers(skb);
|
||||
else
|
||||
hdr = tcp_hdrlen(skb);
|
||||
}
|
||||
|
||||
/* Desc availability based on threshold should be enough safe */
|
||||
if (unlikely(stmmac_tx_avail(priv, queue) <
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user