|
@@ -73,6 +73,10 @@ static int __init init(void)
|
|
|
cleanup:
|
|
|
list_for_each_entry_safe(udc_dev, udc_dev2, &vudc_devices, dev_entry) {
|
|
|
list_del(&udc_dev->dev_entry);
|
|
|
+ /*
|
|
|
+ * Just do platform_device_del() here, put_vudc_device()
|
|
|
+ * calls the platform_device_put()
|
|
|
+ */
|
|
|
platform_device_del(udc_dev->pdev);
|
|
|
put_vudc_device(udc_dev);
|
|
|
}
|
|
@@ -89,7 +93,11 @@ static void __exit cleanup(void)
|
|
|
|
|
|
list_for_each_entry_safe(udc_dev, udc_dev2, &vudc_devices, dev_entry) {
|
|
|
list_del(&udc_dev->dev_entry);
|
|
|
- platform_device_unregister(udc_dev->pdev);
|
|
|
+ /*
|
|
|
+ * Just do platform_device_del() here, put_vudc_device()
|
|
|
+ * calls the platform_device_put()
|
|
|
+ */
|
|
|
+ platform_device_del(udc_dev->pdev);
|
|
|
put_vudc_device(udc_dev);
|
|
|
}
|
|
|
platform_driver_unregister(&vudc_driver);
|