On 04/28/2016 09:21 PM, Dan Carpenter wrote:
> Hello Igor Kotrasinski,
>
> The patch 80fd9cd52de6: "usbip: vudc: Add VUDC main file" from Mar 8,
> 2016, leads to the following static checker warning:
>
> drivers/usb/usbip/vudc_main.c:88 init()
> warn: perhaps platform_device_put() was intended here?
>
> drivers/usb/usbip/vudc_main.c
> 56 retval = platform_driver_register(&vudc_driver);
> 57 if (retval < 0)
> 58 goto out;
> 59
> 60 for (i = 0; i < vudc_number; i++) {
> 61 udc_dev = alloc_vudc_device(i);
> 62 if (!udc_dev) {
> 63 retval = -ENOMEM;
> 64 goto cleanup;
> 65 }
> 66
> 67 retval = platform_device_add(udc_dev->pdev);
> 68 if (retval < 0) {
> 69 put_vudc_device(udc_dev);
> 70 goto cleanup;
> 71 }
> 72
> 73 list_add_tail(&udc_dev->dev_entry, &vudc_devices);
> 74 if (!platform_get_drvdata(udc_dev->pdev)) {
> 75 /*
> 76 * The udc was added successfully but its
> probe
> 77 * function failed for some reason.
> 78 */
> 79 retval = -EINVAL;
> 80 goto cleanup;
> 81 }
> 82 }
> 83 goto out;
> 84
> 85 cleanup:
> 86 list_for_each_entry_safe(udc_dev, udc_dev2, &vudc_devices,
> dev_entry) {
> 87 list_del(&udc_dev->dev_entry);
> 88 platform_device_del(udc_dev->pdev);
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> I had to look through my git log to find why Smatch generates this
> warning. Apparently the check was inspired by e9a1c5129de1caf
> "wm8350-regulator: fix wm8350_register_regulator error handling". I
> wrote it in 2010 and this is the first time this warning has ever been
> triggered. I'm very excited! But I have no idea if it's a false
> positive or a real bug.
I'm sorry to tell you this but unfortunately this is a false positive:(
Just please take a look one line below;)
>
> 89 put_vudc_device(udc_dev);
and what this function does is simply:
void put_vudc_device(struct vudc_device *udc_dev)
{
platform_device_put(udc_dev->pdev);
kfree(udc_dev);
}
Cheers,
--
Krzysztof Opasiak
Samsung R&D Institute Poland
Samsung Electronics
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html