Re: [PATCH] staging: unisys: Properly test debugfs_create_dir() return values

From: Greg Kroah-Hartman
Date: Tue Mar 22 2022 - 05:04:31 EST


On Tue, Mar 22, 2022 at 09:38:58AM +0100, Fabio M. De Francesco wrote:
> debugfs_create_dir() returns a pointers to a dentry objects. On failures
> it returns errors. Currently the values returned to visornic_probe()
> seem to be tested for being equal to NULL in case of failures.
>
> Properly test with "if (IS_ERR())" and then assign the correct error
> value to the "err" variable.
>
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx>
> ---
> drivers/staging/unisys/visornic/visornic_main.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c
> index 643432458105..58d03f3d3173 100644
> --- a/drivers/staging/unisys/visornic/visornic_main.c
> +++ b/drivers/staging/unisys/visornic/visornic_main.c
> @@ -1922,11 +1922,11 @@ static int visornic_probe(struct visor_device *dev)
> /* create debug/sysfs directories */
> devdata->eth_debugfs_dir = debugfs_create_dir(netdev->name,
> visornic_debugfs_dir);
> - if (!devdata->eth_debugfs_dir) {
> + if (IS_ERR(devdata->eth_debugfs_dir)) {

We really shouldn't be checking this value at all. There's no reason to
check the return value of a debugfs_* call. Can you fix up the code to
do that instead?

thanks,

greg k-h