mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
net: stmmac: improve ndev->max_mtu setup readability
Improve the readibility of the code setting ndev->max_mtu. This depends on the hardware specific maximum defined by the MAC core, and also a platform provided maximum. The code was originally checking that the platform specific maximum was between ndev->min_mtu..MAC core maximum before reducing ndev->max_mtu, otherwise if the platform specific maximum was less than ndev->min_mtu, issuing a warning. Re-order the code to handle the case where the platform specific max is below ndev->min_mtu, which then means that the subsequent test is simply reducing ndev->max_mtu. Update the comment, and add a few blank lines to separate the blocks of code. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vImWA-0000000DrIl-1HZY@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
1479493c91
commit
7e975caa0f
@@ -1392,9 +1392,9 @@ static unsigned int stmmac_rx_offset(struct stmmac_priv *priv)
|
||||
return NET_SKB_PAD;
|
||||
}
|
||||
|
||||
static int stmmac_set_bfsize(int mtu, int bufsize)
|
||||
static int stmmac_set_bfsize(int mtu)
|
||||
{
|
||||
int ret = bufsize;
|
||||
int ret;
|
||||
|
||||
if (mtu >= BUF_SIZE_8KiB)
|
||||
ret = BUF_SIZE_16KiB;
|
||||
@@ -3958,12 +3958,13 @@ stmmac_setup_dma_desc(struct stmmac_priv *priv, unsigned int mtu)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
/* Returns 0 or BUF_SIZE_16KiB if mtu > 8KiB and dwmac4 or ring mode */
|
||||
bfsize = stmmac_set_16kib_bfsize(priv, mtu);
|
||||
if (bfsize < 0)
|
||||
bfsize = 0;
|
||||
|
||||
if (bfsize < BUF_SIZE_16KiB)
|
||||
bfsize = stmmac_set_bfsize(mtu, 0);
|
||||
bfsize = stmmac_set_bfsize(mtu);
|
||||
|
||||
dma_conf->dma_buf_sz = bfsize;
|
||||
/* Chose the tx/rx size from the already defined one in the
|
||||
@@ -7773,22 +7774,23 @@ int stmmac_dvr_probe(struct device *device,
|
||||
|
||||
/* MTU range: 46 - hw-specific max */
|
||||
ndev->min_mtu = ETH_ZLEN - ETH_HLEN;
|
||||
|
||||
if (priv->plat->core_type == DWMAC_CORE_XGMAC)
|
||||
ndev->max_mtu = XGMAC_JUMBO_LEN;
|
||||
else if ((priv->plat->enh_desc) || (priv->synopsys_id >= DWMAC_CORE_4_00))
|
||||
else if (priv->plat->enh_desc || priv->synopsys_id >= DWMAC_CORE_4_00)
|
||||
ndev->max_mtu = JUMBO_LEN;
|
||||
else
|
||||
ndev->max_mtu = SKB_MAX_HEAD(NET_SKB_PAD + NET_IP_ALIGN);
|
||||
/* Will not overwrite ndev->max_mtu if plat->maxmtu > ndev->max_mtu
|
||||
* as well as plat->maxmtu < ndev->min_mtu which is a invalid range.
|
||||
|
||||
/* Warn if the platform's maxmtu is smaller than the minimum MTU,
|
||||
* otherwise clamp the maximum MTU above to the platform's maxmtu.
|
||||
*/
|
||||
if ((priv->plat->maxmtu < ndev->max_mtu) &&
|
||||
(priv->plat->maxmtu >= ndev->min_mtu))
|
||||
ndev->max_mtu = priv->plat->maxmtu;
|
||||
else if (priv->plat->maxmtu < ndev->min_mtu)
|
||||
if (priv->plat->maxmtu < ndev->min_mtu)
|
||||
dev_warn(priv->device,
|
||||
"%s: warning: maxmtu having invalid value (%d)\n",
|
||||
__func__, priv->plat->maxmtu);
|
||||
else if (priv->plat->maxmtu < ndev->max_mtu)
|
||||
ndev->max_mtu = priv->plat->maxmtu;
|
||||
|
||||
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user