drivers/rtc/rtc-test.c: avoid calling platform_device_put() twice
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Tue, 18 Dec 2012 00:02:27 +0000 (16:02 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 18 Dec 2012 01:15:20 +0000 (17:15 -0800)
In case of error, test_init() needs to call platform_device_del() instead
of platform_device_unregister().  Otherwise, we may call
platform_device_put() twice.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

[akpm@linux-foundation.org: improve label naming]
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-test.c

index 7e96254bd365eae1f73b5fc296f7e705b58e05ee..974b9ae252ab5f116d9fa6faa21d587029a3f18a 100644 (file)
@@ -152,24 +152,24 @@ static int __init test_init(void)
 
        if ((test1 = platform_device_alloc("rtc-test", 1)) == NULL) {
                err = -ENOMEM;
-               goto exit_free_test0;
+               goto exit_put_test0;
        }
 
        if ((err = platform_device_add(test0)))
-               goto exit_free_test1;
+               goto exit_put_test1;
 
        if ((err = platform_device_add(test1)))
-               goto exit_device_unregister;
+               goto exit_del_test0;
 
        return 0;
 
-exit_device_unregister:
-       platform_device_unregister(test0);
+exit_del_test0:
+       platform_device_del(test0);
 
-exit_free_test1:
+exit_put_test1:
        platform_device_put(test1);
 
-exit_free_test0:
+exit_put_test0:
        platform_device_put(test0);
 
 exit_driver_unregister: