Skip to content

Commit

Permalink
drivers/rtc/rtc-test.c: avoid calling platform_device_put() twice
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Wei Yongjun authored and Linus Torvalds committed Dec 18, 2012
1 parent 0d7ecb8 commit 942bfb3
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions drivers/rtc/rtc-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 942bfb3

Please sign in to comment.