diff options
author | Daniel Golle <daniel@makrotopia.org> | 2023-04-23 18:46:02 +0100 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2023-04-24 03:16:26 +0100 |
commit | 6d33afd2b6b0b94c406141884410fee3dc4e08c3 (patch) | |
tree | e8b5f458785994c0e76c291c710ab79aaa8dc3b0 /target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch | |
parent | 0601f7134d5f86f75997453eb30590b0f578cbfb (diff) | |
download | upstream-6d33afd2b6b0b94c406141884410fee3dc4e08c3.tar.gz upstream-6d33afd2b6b0b94c406141884410fee3dc4e08c3.tar.bz2 upstream-6d33afd2b6b0b94c406141884410fee3dc4e08c3.zip |
kernel: net: phy: realtek: fix NULL pointer dereference
The previous attempt to replace an open coded paged read in the RealTek
Ethernet PHY driver was too naive and resulted in breaking the r8169
PCIe Ethernet driver which also makes use of the RealTek Ethernet PHY
driver.
Fix this by instead of using the (not yet populated) paged operations
rather use rtl821x_write_page and protect the whole paged read operation
using the MDIO bus mutex.
Fixes: 998b973157 ("kernel: net: phy: realtek: improve RealTek 2.5G PHY driver")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch')
-rw-r--r-- | target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch b/target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch index 4496d6cedf..87102d3818 100644 --- a/target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch +++ b/target/linux/generic/pending-5.15/729-net-phy-realtek-introduce-rtl822x_probe.patch @@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> #define RTL8366RB_POWER_SAVE 0x15 #define RTL8366RB_POWER_SAVE_ON BIT(12) -@@ -736,6 +740,25 @@ static int rtl8226_match_phy_device(stru +@@ -740,6 +744,25 @@ static int rtl8226_match_phy_device(stru rtlgen_supports_2_5gbps(phydev); } @@ -50,7 +50,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> static int rtlgen_resume(struct phy_device *phydev) { int ret = genphy_resume(phydev); -@@ -1009,6 +1032,7 @@ static struct phy_driver realtek_drvs[] +@@ -1013,6 +1036,7 @@ static struct phy_driver realtek_drvs[] .match_phy_device = rtl8226_match_phy_device, .get_features = rtl822x_get_features, .config_aneg = rtl822x_config_aneg, @@ -58,7 +58,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> .read_status = rtl822x_read_status, .suspend = genphy_suspend, .resume = rtlgen_resume, -@@ -1022,6 +1046,7 @@ static struct phy_driver realtek_drvs[] +@@ -1026,6 +1050,7 @@ static struct phy_driver realtek_drvs[] .name = "RTL8226B_RTL8221B 2.5Gbps PHY", .get_features = rtl822x_get_features, .config_aneg = rtl822x_config_aneg, @@ -66,7 +66,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> .read_status = rtl822x_read_status, .suspend = genphy_suspend, .resume = rtlgen_resume, -@@ -1035,6 +1060,7 @@ static struct phy_driver realtek_drvs[] +@@ -1039,6 +1064,7 @@ static struct phy_driver realtek_drvs[] .name = "RTL8226-CG 2.5Gbps PHY", .get_features = rtl822x_get_features, .config_aneg = rtl822x_config_aneg, @@ -74,7 +74,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> .read_status = rtl822x_read_status, .suspend = genphy_suspend, .resume = rtlgen_resume, -@@ -1046,6 +1072,7 @@ static struct phy_driver realtek_drvs[] +@@ -1050,6 +1076,7 @@ static struct phy_driver realtek_drvs[] .name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY", .get_features = rtl822x_get_features, .config_aneg = rtl822x_config_aneg, @@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> .read_status = rtl822x_read_status, .suspend = genphy_suspend, .resume = rtlgen_resume, -@@ -1058,6 +1085,7 @@ static struct phy_driver realtek_drvs[] +@@ -1062,6 +1089,7 @@ static struct phy_driver realtek_drvs[] .get_features = rtl822x_get_features, .config_init = rtl8221b_config_init, .config_aneg = rtl822x_config_aneg, @@ -90,7 +90,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> .read_status = rtl822x_read_status, .suspend = genphy_suspend, .resume = rtlgen_resume, -@@ -1070,6 +1098,7 @@ static struct phy_driver realtek_drvs[] +@@ -1074,6 +1102,7 @@ static struct phy_driver realtek_drvs[] .get_features = rtl822x_get_features, .config_aneg = rtl822x_config_aneg, .config_init = rtl8221b_config_init, |