Re: [PATCH net 02/12] net: systemport: Fix invalid dev_id argument in bcm_sysport_poll_controller()
flat view
From: Nicolai Buchwitz <nb@tipi-net.de>
Date: 2026-09-22 08:37:34
Also in:
lkml
On 22.9.2026 01:12, Florian Fainelli wrote:
quoted hunk ↗ jump to hunk
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@broadcom.com> --- 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@tipi-net.de> Thanks, Nicolai