Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45ddea8a authored by Sukadev Bhattiprolu's avatar Sukadev Bhattiprolu Committed by Michael Ellerman
Browse files

powerpc/vas: Fix cleanup when VAS is not configured



When VAS is not configured, unregister the platform driver. Also simplify
cleanup by delaying vas debugfs init until we know VAS is configured.

Signed-off-by: default avatarSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 720c8404
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -179,6 +179,7 @@ void vas_instance_init_dbgdir(struct vas_instance *vinst)
{
	struct dentry *d;

	vas_init_dbgdir();
	if (!vas_debugfs)
		return;

@@ -201,8 +202,18 @@ void vas_instance_init_dbgdir(struct vas_instance *vinst)
	vinst->dbgdir = NULL;
}

/*
 * Set up the "root" VAS debugfs dir. Return if we already set it up
 * (or failed to) in an earlier instance of VAS.
 */
void vas_init_dbgdir(void)
{
	static bool first_time = true;

	if (!first_time)
		return;

	first_time = false;
	vas_debugfs = debugfs_create_dir("vas", NULL);
	if (IS_ERR(vas_debugfs))
		vas_debugfs = NULL;
+3 −3
Original line number Diff line number Diff line
@@ -160,8 +160,6 @@ static int __init vas_init(void)
	int found = 0;
	struct device_node *dn;

	vas_init_dbgdir();

	platform_driver_register(&vas_driver);

	for_each_compatible_node(dn, NULL, "ibm,vas") {
@@ -169,8 +167,10 @@ static int __init vas_init(void)
		found++;
	}

	if (!found)
	if (!found) {
		platform_driver_unregister(&vas_driver);
		return -ENODEV;
	}

	pr_devel("Found %d instances\n", found);