ASoC: cs-amp-lib: Fix missing dput() after debugfs_lookup()

Rewrite cs_amp_create_debugfs() so that dput() will be called on
a valid dentry returned from debugfs_lookup().

The pointer returned from debugfs_lookup() must be released by dput().
The pointer returned from debugfs_create_dir() does not need to be
passed to dput().

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: cdd27fa329 ("ASoC: cs-amp-lib: Add helpers for factory calibration")
Link: https://patch.msgid.link/20260521122511.987322-3-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Richard Fitzgerald 2026-05-21 13:25:10 +01:00 committed by Mark Brown
parent 67a52d3ebb
commit ba28a07a9a
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -833,11 +833,18 @@ EXPORT_SYMBOL_NS_GPL(cs_amp_devm_get_vendor_specific_variant_id, "SND_SOC_CS_AMP
*/
struct dentry *cs_amp_create_debugfs(struct device *dev)
{
struct dentry *dir;
struct dentry *dir, *created;
/* debugfs_lookup() can return NULL or ERR_PTR on error */
dir = debugfs_lookup("cirrus_logic", NULL);
if (!dir)
dir = debugfs_create_dir("cirrus_logic", NULL);
if (!IS_ERR_OR_NULL(dir)) {
created = debugfs_create_dir(dev_name(dev), dir);
dput(dir);
return created;
}
dir = debugfs_create_dir("cirrus_logic", NULL);
return debugfs_create_dir(dev_name(dev), dir);
}