From: Shiji Yang Date: Sat, 10 Feb 2024 12:35:46 +0000 (+0800) Subject: ramips: mtk_eth_soc: fix NULL pointer dereference for syncp X-Git-Tag: v24.10.0-rc1~3041 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F14592%2Fhead;p=thirdparty%2Fopenwrt.git ramips: mtk_eth_soc: fix NULL pointer dereference for syncp 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 --- diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c index 35a3113804e..dda9abee493 100644 --- a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c +++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c @@ -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) {