usb: cdnsp: Useless condition has been removed
authorPawel Laszczak <pawell@cadence.com>
Wed, 5 May 2021 05:58:54 +0000 (07:58 +0200)
committerPeter Chen <peter.chen@kernel.org>
Tue, 11 May 2021 06:12:54 +0000 (14:12 +0800)
This code generates a Smatch warning:

drivers/usb/cdns3/cdnsp-mem.c:1085 cdnsp_mem_cleanup()
warn: variable dereferenced before check 'pdev->dcbaa' (see line 1067)

The unchecked dereference happens inside the function when we call:

cdnsp_free_priv_device(pdev);

But fortunately, the "pdev->dcbaa" pointer can never be NULL so it
does not lead to a runtime issue. We can just remove the NULL check
which silences the warning and makes the code consistent.

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Link: https://lore.kernel.org/r/20210505055854.40240-1-pawell@gli-login.cadence.com
Signed-off-by: Peter Chen <peter.chen@kernel.org>
drivers/usb/cdns3/cdnsp-mem.c

index 5d4c4bfe15b705d258494db45cb577d14c3cf813..a47948a1623fd49ee8fe7c612d80053f6b45571c 100644 (file)
@@ -1082,9 +1082,8 @@ void cdnsp_mem_cleanup(struct cdnsp_device *pdev)
        dma_pool_destroy(pdev->device_pool);
        pdev->device_pool = NULL;
 
-       if (pdev->dcbaa)
-               dma_free_coherent(dev, sizeof(*pdev->dcbaa),
-                                 pdev->dcbaa, pdev->dcbaa->dma);
+       dma_free_coherent(dev, sizeof(*pdev->dcbaa),
+                         pdev->dcbaa, pdev->dcbaa->dma);
 
        pdev->dcbaa = NULL;