Преглед на файлове

hwmon: (nct6683) Fix probe unwind paths to properly unregister platform devices

Call platform_device_unregister() rather than platform_device_put() to
unregister successfully registered platform devices.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Axel Lin преди 11 години
родител
ревизия
30190c3c61
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      drivers/hwmon/nct6683.c

+ 5 - 3
drivers/hwmon/nct6683.c

@@ -1389,7 +1389,7 @@ static int __init sensors_nct6683_init(void)
 		pdev[i] = platform_device_alloc(DRVNAME, address);
 		pdev[i] = platform_device_alloc(DRVNAME, address);
 		if (!pdev[i]) {
 		if (!pdev[i]) {
 			err = -ENOMEM;
 			err = -ENOMEM;
-			goto exit_device_put;
+			goto exit_device_unregister;
 		}
 		}
 
 
 		err = platform_device_add_data(pdev[i], &sio_data,
 		err = platform_device_add_data(pdev[i], &sio_data,
@@ -1427,9 +1427,11 @@ static int __init sensors_nct6683_init(void)
 	return 0;
 	return 0;
 
 
 exit_device_put:
 exit_device_put:
-	for (i = 0; i < ARRAY_SIZE(pdev); i++) {
+	platform_device_put(pdev[i]);
+exit_device_unregister:
+	while (--i >= 0) {
 		if (pdev[i])
 		if (pdev[i])
-			platform_device_put(pdev[i]);
+			platform_device_unregister(pdev[i]);
 	}
 	}
 exit_unregister:
 exit_unregister:
 	platform_driver_unregister(&nct6683_driver);
 	platform_driver_unregister(&nct6683_driver);