diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2011-04-17 20:32:19 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2011-04-20 18:46:56 +0200 |
commit | 9cf3b5fa6f7b246784d62a2a7637a871290c9ab9 (patch) | |
tree | e11c99e1af553d14619feba4f40d163df95fa09a | |
parent | mach-ux500: fix i2c0 device setup regression (diff) | |
download | linux-9cf3b5fa6f7b246784d62a2a7637a871290c9ab9.tar.xz linux-9cf3b5fa6f7b246784d62a2a7637a871290c9ab9.zip |
rtc: fix coh901331 startup crash
The rtc_device_register() call has changed semantics so that it
will immediately call out to rtc_read_alarm() and since the
callbacks require the drvdata to be set, we need to set it before
the registration call to avoid NULL dereference.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/rtc/rtc-coh901331.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-coh901331.c b/drivers/rtc/rtc-coh901331.c index 316f484999b5..80f9c88214c5 100644 --- a/drivers/rtc/rtc-coh901331.c +++ b/drivers/rtc/rtc-coh901331.c @@ -220,6 +220,7 @@ static int __init coh901331_probe(struct platform_device *pdev) } clk_disable(rtap->clk); + platform_set_drvdata(pdev, rtap); rtap->rtc = rtc_device_register("coh901331", &pdev->dev, &coh901331_ops, THIS_MODULE); if (IS_ERR(rtap->rtc)) { @@ -227,11 +228,10 @@ static int __init coh901331_probe(struct platform_device *pdev) goto out_no_rtc; } - platform_set_drvdata(pdev, rtap); - return 0; out_no_rtc: + platform_set_drvdata(pdev, NULL); out_no_clk_enable: clk_put(rtap->clk); out_no_clk: |