Commit 99975ad6 authored by Herve Codina's avatar Herve Codina Committed by David S. Miller

net: lan966x: remove debugfs directory in probe() error path

A debugfs directory entry is create early during probe(). This entry is
not removed on error path leading to some "already present" issues in
case of EPROBE_DEFER.

Create this entry later in the probe() code to avoid the need to change
many 'return' in 'goto' and add the removal in the already present error
path.

Fixes: 94281484 ("net: lan966x: Add VCAP debugFS support")
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarHerve Codina <herve.codina@bootlin.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 621cde16
...@@ -1087,8 +1087,6 @@ static int lan966x_probe(struct platform_device *pdev) ...@@ -1087,8 +1087,6 @@ static int lan966x_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, lan966x); platform_set_drvdata(pdev, lan966x);
lan966x->dev = &pdev->dev; lan966x->dev = &pdev->dev;
lan966x->debugfs_root = debugfs_create_dir("lan966x", NULL);
if (!device_get_mac_address(&pdev->dev, mac_addr)) { if (!device_get_mac_address(&pdev->dev, mac_addr)) {
ether_addr_copy(lan966x->base_mac, mac_addr); ether_addr_copy(lan966x->base_mac, mac_addr);
} else { } else {
...@@ -1179,6 +1177,8 @@ static int lan966x_probe(struct platform_device *pdev) ...@@ -1179,6 +1177,8 @@ static int lan966x_probe(struct platform_device *pdev)
return dev_err_probe(&pdev->dev, -ENODEV, return dev_err_probe(&pdev->dev, -ENODEV,
"no ethernet-ports child found\n"); "no ethernet-ports child found\n");
lan966x->debugfs_root = debugfs_create_dir("lan966x", NULL);
/* init switch */ /* init switch */
lan966x_init(lan966x); lan966x_init(lan966x);
lan966x_stats_init(lan966x); lan966x_stats_init(lan966x);
...@@ -1257,6 +1257,8 @@ static int lan966x_probe(struct platform_device *pdev) ...@@ -1257,6 +1257,8 @@ static int lan966x_probe(struct platform_device *pdev)
destroy_workqueue(lan966x->stats_queue); destroy_workqueue(lan966x->stats_queue);
mutex_destroy(&lan966x->stats_lock); mutex_destroy(&lan966x->stats_lock);
debugfs_remove_recursive(lan966x->debugfs_root);
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment