ramips: mtk_eth_soc: fix NULL pointer dereference for syncp
authorShiji Yang <yangshiji66@qq.com>
Sat, 10 Feb 2024 12:35:46 +0000 (20:35 +0800)
committerNick Hainke <vincent@systemli.org>
Sun, 11 Feb 2024 11:21:41 +0000 (12:21 +0100)
u64_stats_init() has been unable to handle NULL pointer since
6.1 kernel. This patch fixes kernel oops on mt76x8 and rt305x
sub-target.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c

index 35a3113804e74c452d1ea6611e268430b52d3340..dda9abee493d47fdd67cd98ab2f06236e82c3e84 100644 (file)
@@ -1601,6 +1601,7 @@ static int fe_probe(struct platform_device *pdev)
                        goto err_free_dev;
                }
                spin_lock_init(&priv->hw_stats->stats_lock);
+               u64_stats_init(&priv->hw_stats->syncp);
        }
 
        sysclk = devm_clk_get(&pdev->dev, NULL);
@@ -1628,7 +1629,6 @@ static int fe_probe(struct platform_device *pdev)
        priv->tx_ring.tx_ring_size = NUM_DMA_DESC;
        priv->rx_ring.rx_ring_size = NUM_DMA_DESC;
        INIT_WORK(&priv->pending_work, fe_pending_work);
-       u64_stats_init(&priv->hw_stats->syncp);
 
        napi_weight = 16;
        if (priv->flags & FE_FLAG_NAPI_WEIGHT) {