mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	Backport upstream code split patch for qca8k needed for ipq40xx target to correctly implement a DSA driver. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 057bcf15db8e625276ddf02b2b7c668a3cb43f81 Mon Sep 17 00:00:00 2001
 | 
						|
From: Christian Marangi <ansuelsmth@gmail.com>
 | 
						|
Date: Sun, 4 Sep 2022 23:46:24 +0200
 | 
						|
Subject: [net PATCH] net: dsa: qca8k: fix NULL pointer dereference for
 | 
						|
 of_device_get_match_data
 | 
						|
 | 
						|
of_device_get_match_data is called on priv->dev before priv->dev is
 | 
						|
actually set. Move of_device_get_match_data after priv->dev is correctly
 | 
						|
set to fix this kernel panic.
 | 
						|
 | 
						|
Fixes: 3bb0844e7bcd ("net: dsa: qca8k: cache match data to speed up access")
 | 
						|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 | 
						|
---
 | 
						|
 drivers/net/dsa/qca/qca8k-8xxx.c | 2 +-
 | 
						|
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
						|
 | 
						|
--- a/drivers/net/dsa/qca/qca8k-8xxx.c
 | 
						|
+++ b/drivers/net/dsa/qca/qca8k-8xxx.c
 | 
						|
@@ -1835,9 +1835,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
 | 
						|
 	if (!priv)
 | 
						|
 		return -ENOMEM;
 | 
						|
 
 | 
						|
-	priv->info = of_device_get_match_data(priv->dev);
 | 
						|
 	priv->bus = mdiodev->bus;
 | 
						|
 	priv->dev = &mdiodev->dev;
 | 
						|
+	priv->info = of_device_get_match_data(priv->dev);
 | 
						|
 
 | 
						|
 	priv->reset_gpio = devm_gpiod_get_optional(priv->dev, "reset",
 | 
						|
 						   GPIOD_ASIS);
 |