mirror of
https://github.com/torvalds/linux.git
synced 2026-10-09 20:09:02 +02:00
net: stmmac: dwmac4: Use the correct bufzise when the len is exactly 8K
DMA bufsize selection isn't made on the MTU but the actual frame length,
so including the L2 header. On DWMAC4, if the len is exactly BUF_SIZE_8KiB,
the next larger size is incorrectly selected.
Lets fix the comparison and while at it, rename the parameter from len
to mtu.
Fixes: c3efed5ad1 ("net: stmmac: Enable dwmac4 jumbo frame more than 8KiB").
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Link: https://patch.msgid.link/20260917215339.2022523-6-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
960db6f657
commit
b42e701277
|
|
@ -474,11 +474,11 @@ static void dwmac4_set_sarc(struct dma_desc *p, u32 sarc_type)
|
|||
sarc_type));
|
||||
}
|
||||
|
||||
static int set_16kib_bfsize(int mtu)
|
||||
static int set_16kib_bfsize(int len)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (unlikely(mtu >= BUF_SIZE_8KiB))
|
||||
if (unlikely(len > BUF_SIZE_8KiB))
|
||||
ret = BUF_SIZE_16KiB;
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ struct stmmac_mode_ops {
|
|||
bool (*is_jumbo_frm)(unsigned int len, bool enh_desc);
|
||||
int (*jumbo_frm)(struct stmmac_tx_queue *tx_q, struct sk_buff *skb,
|
||||
int csum);
|
||||
int (*set_16kib_bfsize)(int mtu);
|
||||
int (*set_16kib_bfsize)(int len);
|
||||
void (*init_desc3)(struct dma_desc *p);
|
||||
void (*refill_desc3)(struct stmmac_rx_queue *rx_q, struct dma_desc *p);
|
||||
void (*clean_desc3)(struct stmmac_tx_queue *tx_q, struct dma_desc *p);
|
||||
|
|
|
|||
|
|
@ -124,10 +124,10 @@ static void clean_desc3(struct stmmac_tx_queue *tx_q, struct dma_desc *p)
|
|||
p->des3 = 0;
|
||||
}
|
||||
|
||||
static int set_16kib_bfsize(int mtu)
|
||||
static int set_16kib_bfsize(int len)
|
||||
{
|
||||
int ret = 0;
|
||||
if (unlikely(mtu > BUF_SIZE_8KiB))
|
||||
if (unlikely(len > BUF_SIZE_8KiB))
|
||||
ret = BUF_SIZE_16KiB;
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user