Re: [PATCH net 02/12] net: systemport: Fix invalid dev_id argument in bcm_sysport_poll_controller()
From: Nicolai Buchwitz
Date: Tue Sep 22 2026 - 04:39:37 EST
On 22.9.2026 01:12, Florian Fainelli wrote:
Both bcm_sysport_rx_isr() and bcm_sysport_tx_isr() expect their second
argument (dev_id) to be a 'struct net_device *dev', as they call
netdev_priv(dev) to retrieve the private data structure.
bcm_sysport_poll_controller() was passing 'priv' instead of 'dev',
causing netdev_priv() inside the ISRs to treat 'priv' as a net_device,
leading to out-of-bounds pointer calculations and crashes when netconsole
or netpoll is triggered.
Fix this by passing 'dev' instead of 'priv' to the ISRs.
Fixes: 6cec4f5e00a3 ("net: systemport: Add netconsole support")
Assisted-by: LLM
Signed-off-by: Florian Fainelli <florian.fainelli@xxxxxxxxxxxx>
---
drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index db627cd15fb7..8328fe824d15 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -1198,12 +1198,12 @@ static void bcm_sysport_poll_controller(struct net_device *dev)
struct bcm_sysport_priv *priv = netdev_priv(dev);
disable_irq(priv->irq0);
- bcm_sysport_rx_isr(priv->irq0, priv);
+ bcm_sysport_rx_isr(priv->irq0, dev);
enable_irq(priv->irq0);
if (!priv->is_lite) {
disable_irq(priv->irq1);
- bcm_sysport_tx_isr(priv->irq1, priv);
+ bcm_sysport_tx_isr(priv->irq1, dev);
enable_irq(priv->irq1);
}
}
Reviewed-by: Nicolai Buchwitz <nb@xxxxxxxxxxx>
Thanks,
Nicolai