Re: [PATCH] memory: tegra: Fix an error handling path in 'tegra186_emc_probe()'
From: Dan Carpenter
Date:  Fri May 08 2020 - 04:51:54 EST
On Wed, May 06, 2020 at 10:09:07PM +0200, Christophe JAILLET wrote:
> @@ -237,7 +239,7 @@ static int tegra186_emc_probe(struct platform_device *pdev)
>  			"failed to set rate range [%lu-%lu] for %pC\n",
>  			emc->debugfs.min_rate, emc->debugfs.max_rate,
>  			emc->clk);
> -		return err;
> +		goto err_put_bpmp;
>  	}
>  
>  	emc->debugfs.root = debugfs_create_dir("emc", NULL);
Not really related to this patch but the error handling on this
debugfs_create_dir() call is wrong.  It never returns NULL.  The error
should just be ignored.  It shouldn't try print a message when debugfs
is deliberately disabled.
As in the correct code looks like:
 
        emc->debugfs.root = debugfs_create_dir("emc", NULL);
-       if (!emc->debugfs.root) {
-               dev_err(&pdev->dev, "failed to create debugfs directory\n");
-               return 0;
-       }
-
        debugfs_create_file("available_rates", S_IRUGO, emc->debugfs.root,
                            emc, &tegra186_emc_debug_available_rates_fops);
        debugfs_create_file("min_rate", S_IRUGO | S_IWUSR, emc->debugfs.root,
debugfs_create_file() will return an error pointer if debugfs_create_dir()
fails or if debugfs is disabled.  (It is a no-op).
regards,
dan carpenter