mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-18 21:28:02 +00:00
ipq40xx: ipqess: do not free ipqess_init
If this function is marked as __init, kernel will splat when driver is (re)bind echo "c080000.ethernet">/sys/bus/platform/drivers/ipqess-edma/unbind echo "c080000.ethernet">/sys/bus/platform/drivers/ipqess-edma/bind Example with additional print messages, functions at boot: [ 2.039468] ipqess-edma c080000.ethernet: ipqess_axi_probe pre register_netdev [ 2.039530] ipqess-edma c080000.ethernet: *netdev: c27d2000 [ 2.045609] ipqess-edma c080000.ethernet: &ipqess_init: c0d1e28c [ 2.051122] ipqess_init [ 2.057338] netdev: c27d2000 [ 2.059492] ess = netdev_priv: c27d2500 [ 2.062615] ess->pdev: c2138c00 [ 2.066174] ess->pdev->dev: c2138c10 [ 2.069314] ess->pdev->dev.of_node: ef6f6368 [ 2.073120] ess->pdev->dev.of_node: /soc/ethernet@c080000 fails (bind) after unbind: [ 34.987948] ipqess-edma c080000.ethernet: ipqess_axi_probe pre register_netdev [ 34.988012] ipqess-edma c080000.ethernet: *netdev: c27d6000 [ 34.994088] ipqess-edma c080000.ethernet: &ipqess_init: c0d1e28c [ 34.999652] 8<--- cut here --- [ 35.005802] Unable to handle kernel paging request at virtual address c0d1e28c when execute [ 35.008676] [c0d1e28c] *pgd=80c1941e(bad) [ 35.016918] Internal error: Oops: 8000000d [#1] SMP ARM Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au> Link: https://github.com/openwrt/openwrt/pull/15831 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
parent
69d0ff5803
commit
515ad3ce8a
@ -655,7 +655,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __init ipqess_init(struct net_device *netdev)
|
||||
+static int ipqess_init(struct net_device *netdev)
|
||||
+{
|
||||
+ struct ipqess *ess = netdev_priv(netdev);
|
||||
+ struct device_node *of_node = ess->pdev->dev.of_node;
|
||||
|
Loading…
Reference in New Issue
Block a user