On 10/12/2021 8:48 AM, Lukas Wunner wrote:
On Mon, Oct 11, 2021 at 10:24:29PM +0200, Lukas Wunner wrote:
On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
Debugfs APIs returns encoded error on failure so use
debugfs_lookup() instead of checking for NULL.
[...]
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
{
/* already initialised */
- if (priv->debugfs_root)
+ if (debugfs_lookup("vgaswitcheroo", NULL))
return;
priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
If debugfs_create_dir() returns an error code, it does make sense to
retry the call when another vga_switcheroo client registers later.
I like that.
However I'd prefer simply changing this to explicitly check for NULL, i.e.:
- if (priv->debugfs_root)
+ if (priv->debugfs_root == NULL)
Apologies, I meant:
- if (priv->debugfs_root)
+ if (priv->debugfs_root && !IS_ERR(priv->debugfs_root))
Thanks for the suggestion, Lukas. I will update that and resend.
Nirmoy
Thanks,
Lukas
It's just as clear as calling debugfs_lookup() and it has way less
overhead. Granted, this isn't a hot path, but it's called on boot,
and the less code we execute, the faster the machine boots.