mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
net: stmmac: dwmac4: fix RX FIFO fill statistics
In dwmac4_debug(), the wrong shift is used with the RXFSTS mask:
#define MTL_DEBUG_RXFSTS_MASK GENMASK(5, 4)
#define MTL_DEBUG_RXFSTS_SHIFT 4
#define MTL_DEBUG_RRCSTS_SHIFT 1
u32 rxfsts = (value & MTL_DEBUG_RXFSTS_MASK)
>> MTL_DEBUG_RRCSTS_SHIFT;
where rxfsts is tested against small integers 1 .. 3. This results in
the tests always failing, causing the "mtl_rx_fifo__fill_level_empty"
statistic counter to always be incremented no matter what the fill
level actually is.
Fix this by using FIELD_GET() and remove the unnecessary
MTL_DEBUG_RXFSTS_SHIFT definition as FIELD_GET() will shift according
to the least siginificant set bit in the supplied field mask.
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1vdtvi-00000002GtP-1Os1@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
1fd3b57371
commit
65b21a7d4d
|
|
@ -460,7 +460,6 @@ static inline u32 mtl_low_credx_base_addr(const struct dwmac4_addrs *addrs,
|
|||
|
||||
/* MAC debug: GMII or MII Transmit Protocol Engine Status */
|
||||
#define MTL_DEBUG_RXFSTS_MASK GENMASK(5, 4)
|
||||
#define MTL_DEBUG_RXFSTS_SHIFT 4
|
||||
#define MTL_DEBUG_RXFSTS_EMPTY 0
|
||||
#define MTL_DEBUG_RXFSTS_BT 1
|
||||
#define MTL_DEBUG_RXFSTS_AT 2
|
||||
|
|
|
|||
|
|
@ -700,8 +700,7 @@ static void dwmac4_debug(struct stmmac_priv *priv, void __iomem *ioaddr,
|
|||
value = readl(ioaddr + MTL_CHAN_RX_DEBUG(dwmac4_addrs, queue));
|
||||
|
||||
if (value & MTL_DEBUG_RXFSTS_MASK) {
|
||||
u32 rxfsts = (value & MTL_DEBUG_RXFSTS_MASK)
|
||||
>> MTL_DEBUG_RRCSTS_SHIFT;
|
||||
u32 rxfsts = FIELD_GET(MTL_DEBUG_RXFSTS_MASK, value);
|
||||
|
||||
if (rxfsts == MTL_DEBUG_RXFSTS_FULL)
|
||||
x->mtl_rx_fifo_fill_level_full++;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user