diff options
author | Alessandro Zummo <a.zummo@towertech.it> | 2014-04-03 17:49:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-03 19:21:16 -0400 |
commit | 4071ea25cc08d41002746cca2d69ac700d67a2ac (patch) | |
tree | 43cf44f8265b885c8c1e4e81f0ced5c6babb53c7 /drivers/rtc/rtc-test.c | |
parent | a68b31080912dae377bee4994716b357dc74286d (diff) |
rtc: fix potential race condition
RTC drivers must not return an error after device registration.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Reported-by: Ales Novak <alnovak@suse.cz>
Cc: Alexander Shiyan <shc_work@mail.ru>
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Srikanth Srinivasan <srikanth.srinivasan@freescale.com>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rtc/rtc-test.c')
-rw-r--r-- | drivers/rtc/rtc-test.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c index 7746e65b93f2..6599c20bc454 100644 --- a/drivers/rtc/rtc-test.c +++ b/drivers/rtc/rtc-test.c | |||
@@ -104,20 +104,17 @@ static int test_probe(struct platform_device *plat_dev) | |||
104 | rtc = devm_rtc_device_register(&plat_dev->dev, "test", | 104 | rtc = devm_rtc_device_register(&plat_dev->dev, "test", |
105 | &test_rtc_ops, THIS_MODULE); | 105 | &test_rtc_ops, THIS_MODULE); |
106 | if (IS_ERR(rtc)) { | 106 | if (IS_ERR(rtc)) { |
107 | err = PTR_ERR(rtc); | 107 | return PTR_ERR(rtc); |
108 | return err; | ||
109 | } | 108 | } |
110 | 109 | ||
111 | err = device_create_file(&plat_dev->dev, &dev_attr_irq); | 110 | err = device_create_file(&plat_dev->dev, &dev_attr_irq); |
112 | if (err) | 111 | if (err) |
113 | goto err; | 112 | dev_err(&plat_dev->dev, "Unable to create sysfs entry: %s\n", |
113 | dev_attr_irq.attr.name); | ||
114 | 114 | ||
115 | platform_set_drvdata(plat_dev, rtc); | 115 | platform_set_drvdata(plat_dev, rtc); |
116 | 116 | ||
117 | return 0; | 117 | return 0; |
118 | |||
119 | err: | ||
120 | return err; | ||
121 | } | 118 | } |
122 | 119 | ||
123 | static int test_remove(struct platform_device *plat_dev) | 120 | static int test_remove(struct platform_device *plat_dev) |