浏览代码

kernel: ar8327/ar8337: disable ARL access code to avoid lockups (FS#384)

Running ar8327_get_arl_entry() early after boot leads to MDIO related system
lockups on several devices using this driver.

Since dumping the ARL table contens is an optional, uncritical feature, simply
disable the code for now.

Signed-off-by: Jo-Philipp Wich <[email protected]>
Jo-Philipp Wich 8 年之前
父节点
当前提交
ec1a695daa
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      target/linux/generic/files/drivers/net/phy/ar8327.c

+ 6 - 0
target/linux/generic/files/drivers/net/phy/ar8327.c

@@ -1040,6 +1040,7 @@ ar8327_wait_atu_ready(struct ar8xxx_priv *priv, u16 r2, u16 r1)
 		pr_err("ar8327: timeout waiting for atu to become ready\n");
 		pr_err("ar8327: timeout waiting for atu to become ready\n");
 }
 }
 
 
+#if 0
 static void ar8327_get_arl_entry(struct ar8xxx_priv *priv,
 static void ar8327_get_arl_entry(struct ar8xxx_priv *priv,
 				 struct arl_entry *a, u32 *status, enum arl_op op)
 				 struct arl_entry *a, u32 *status, enum arl_op op)
 {
 {
@@ -1099,6 +1100,7 @@ static void ar8327_get_arl_entry(struct ar8xxx_priv *priv,
 		break;
 		break;
 	}
 	}
 }
 }
+#endif
 
 
 static int
 static int
 ar8327_sw_hw_apply(struct switch_dev *dev)
 ar8327_sw_hw_apply(struct switch_dev *dev)
@@ -1399,7 +1401,9 @@ const struct ar8xxx_chip ar8327_chip = {
 	.vtu_load_vlan = ar8327_vtu_load_vlan,
 	.vtu_load_vlan = ar8327_vtu_load_vlan,
 	.phy_fixup = ar8327_phy_fixup,
 	.phy_fixup = ar8327_phy_fixup,
 	.set_mirror_regs = ar8327_set_mirror_regs,
 	.set_mirror_regs = ar8327_set_mirror_regs,
+#if 0
 	.get_arl_entry = ar8327_get_arl_entry,
 	.get_arl_entry = ar8327_get_arl_entry,
+#endif
 	.sw_hw_apply = ar8327_sw_hw_apply,
 	.sw_hw_apply = ar8327_sw_hw_apply,
 
 
 	.num_mibs = ARRAY_SIZE(ar8236_mibs),
 	.num_mibs = ARRAY_SIZE(ar8236_mibs),
@@ -1434,7 +1438,9 @@ const struct ar8xxx_chip ar8337_chip = {
 	.vtu_load_vlan = ar8327_vtu_load_vlan,
 	.vtu_load_vlan = ar8327_vtu_load_vlan,
 	.phy_fixup = ar8327_phy_fixup,
 	.phy_fixup = ar8327_phy_fixup,
 	.set_mirror_regs = ar8327_set_mirror_regs,
 	.set_mirror_regs = ar8327_set_mirror_regs,
+#if 0
 	.get_arl_entry = ar8327_get_arl_entry,
 	.get_arl_entry = ar8327_get_arl_entry,
+#endif
 	.sw_hw_apply = ar8327_sw_hw_apply,
 	.sw_hw_apply = ar8327_sw_hw_apply,
 
 
 	.num_mibs = ARRAY_SIZE(ar8236_mibs),
 	.num_mibs = ARRAY_SIZE(ar8236_mibs),