Commit a6aa8d0c authored by Zhengchao Shao's avatar Zhengchao Shao Committed by Jakub Kicinski
Browse files

netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir failed



Remove dir in nsim_dev_debugfs_init() when creating ports dir failed.
Otherwise, the netdevsim device will not be created next time. Kernel
reports an error: debugfs: Directory 'netdevsim1' with parent 'netdevsim'
already present!

Fixes: ab1d0cc0 ("netdevsim: change debugfs tree topology")
Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 6b1da9f7
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -309,8 +309,10 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
	if (IS_ERR(nsim_dev->ddir))
		return PTR_ERR(nsim_dev->ddir);
	nsim_dev->ports_ddir = debugfs_create_dir("ports", nsim_dev->ddir);
	if (IS_ERR(nsim_dev->ports_ddir))
		return PTR_ERR(nsim_dev->ports_ddir);
	if (IS_ERR(nsim_dev->ports_ddir)) {
		err = PTR_ERR(nsim_dev->ports_ddir);
		goto err_ddir;
	}
	debugfs_create_bool("fw_update_status", 0600, nsim_dev->ddir,
			    &nsim_dev->fw_update_status);
	debugfs_create_u32("fw_update_overwrite_mask", 0600, nsim_dev->ddir,
@@ -346,7 +348,7 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
	nsim_dev->nodes_ddir = debugfs_create_dir("rate_nodes", nsim_dev->ddir);
	if (IS_ERR(nsim_dev->nodes_ddir)) {
		err = PTR_ERR(nsim_dev->nodes_ddir);
		goto err_out;
		goto err_ports_ddir;
	}
	debugfs_create_bool("fail_trap_drop_counter_get", 0600,
			    nsim_dev->ddir,
@@ -354,8 +356,9 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
	nsim_udp_tunnels_debugfs_create(nsim_dev);
	return 0;

err_out:
err_ports_ddir:
	debugfs_remove_recursive(nsim_dev->ports_ddir);
err_ddir:
	debugfs_remove_recursive(nsim_dev->ddir);
	return err;
}