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

Commit 91c3325d authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Greg Kroah-Hartman
Browse files

regulator: core: Streamline debugfs operations



[ Upstream commit 08880713ceec023dd94d634f1e8902728c385939 ]

If CONFIG_DEBUG_FS is not set:

    regulator: Failed to create debugfs directory
    ...
    regulator-dummy: Failed to create debugfs directory

As per the comments for debugfs_create_dir(), errors returned by this
function should be expected, and ignored:

 * If debugfs is not enabled in the kernel, the value -%ENODEV will be
 * returned.
 *
 * NOTE: it's expected that most callers should _ignore_ the errors returned
 * by this function. Other debugfs functions handle the fact that the "dentry"
 * passed to them could be an error and they don't crash in that case.
 * Drivers should generally work fine even if debugfs fails to init anyway.

Adhere to the debugfs spirit, and streamline all operations by:
  1. Demoting the importance of the printed error messages to debug
     level, like is already done in create_regulator(),
  2. Further ignoring any returned errors, as by design, all debugfs
     functions are no-ops when passed an error pointer.

Fixes: 2bf1c45be3b8f3a3 ("regulator: Fix error checking for debugfs_create_dir")
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/2f8bb6e113359ddfab7b59e4d4274bd4c06d6d0a.1685013051.git.geert+renesas@glider.be


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 1bb38ef6
Loading
Loading
Loading
Loading
+13 −17
Original line number Diff line number Diff line
@@ -1710,19 +1710,17 @@ static struct regulator *create_regulator(struct regulator_dev *rdev,

	if (err != -EEXIST)
		regulator->debugfs = debugfs_create_dir(supply_name, rdev->debugfs);
	if (IS_ERR(regulator->debugfs)) {
	if (IS_ERR(regulator->debugfs))
		rdev_dbg(rdev, "Failed to create debugfs directory\n");
	} else {

	debugfs_create_u32("uA_load", 0444, regulator->debugfs,
			   &regulator->uA_load);
	debugfs_create_u32("min_uV", 0444, regulator->debugfs,
			   &regulator->voltage[PM_SUSPEND_ON].min_uV);
	debugfs_create_u32("max_uV", 0444, regulator->debugfs,
			   &regulator->voltage[PM_SUSPEND_ON].max_uV);
		debugfs_create_file("constraint_flags", 0444,
				    regulator->debugfs, regulator,
				    &constraint_flags_fops);
	}
	debugfs_create_file("constraint_flags", 0444, regulator->debugfs,
			    regulator, &constraint_flags_fops);

	/*
	 * Check now if the regulator is an always on regulator - if
@@ -4906,10 +4904,8 @@ static void rdev_init_debugfs(struct regulator_dev *rdev)
	}

	rdev->debugfs = debugfs_create_dir(rname, debugfs_root);
	if (IS_ERR(rdev->debugfs)) {
		rdev_warn(rdev, "Failed to create debugfs directory\n");
		return;
	}
	if (IS_ERR(rdev->debugfs))
		rdev_dbg(rdev, "Failed to create debugfs directory\n");

	debugfs_create_u32("use_count", 0444, rdev->debugfs,
			   &rdev->use_count);
@@ -5797,7 +5793,7 @@ static int __init regulator_init(void)

	debugfs_root = debugfs_create_dir("regulator", NULL);
	if (IS_ERR(debugfs_root))
		pr_warn("regulator: Failed to create debugfs directory\n");
		pr_debug("regulator: Failed to create debugfs directory\n");

#ifdef CONFIG_DEBUG_FS
	debugfs_create_file("supply_map", 0444, debugfs_root, NULL,