aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-test.c
diff options
context:
space:
mode:
authorAlessandro Zummo <a.zummo@towertech.it>2014-04-03 17:49:36 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-03 19:21:16 -0400
commit4071ea25cc08d41002746cca2d69ac700d67a2ac (patch)
tree43cf44f8265b885c8c1e4e81f0ced5c6babb53c7 /drivers/rtc/rtc-test.c
parenta68b31080912dae377bee4994716b357dc74286d (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.c9
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
119err:
120 return err;
121} 118}
122 119
123static int test_remove(struct platform_device *plat_dev) 120static int test_remove(struct platform_device *plat_dev)