All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] rtc: rtc-mrst: follow on to the change of rtc_device_register()
@ 2011-04-07  1:39 Feng Tang
  2011-04-07  2:15 ` john stultz
  2011-04-07  9:48 ` [tip:timers/urgent] rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm() tip-bot for Feng Tang
  0 siblings, 2 replies; 3+ messages in thread
From: Feng Tang @ 2011-04-07  1:39 UTC (permalink / raw)
  To: linux-kernel, tglx, alan; +Cc: Feng Tang, Alessandro Zummo, John Stultz

commit f44f7f96a20 (RTC: Initialize kernel state from RTC) will
call rtc_read_alarm() inside rtc_device_register(), so rtc-mrst
driver need to call dev_set_drvdata() before rtc_device_register()
get called.

Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Feng Tang <feng.tang@intel.com>
---
 drivers/rtc/rtc-mrst.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-mrst.c b/drivers/rtc/rtc-mrst.c
index 332a2c4..b2f0968 100644
--- a/drivers/rtc/rtc-mrst.c
+++ b/drivers/rtc/rtc-mrst.c
@@ -342,6 +342,8 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 
 	mrst_rtc.irq = rtc_irq;
 	mrst_rtc.iomem = iomem;
+	mrst_rtc.dev = dev;
+	dev_set_drvdata(dev, &mrst_rtc);
 
 	mrst_rtc.rtc = rtc_device_register(driver_name, dev,
 				&mrst_rtc_ops, THIS_MODULE);
@@ -350,8 +352,6 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 		goto cleanup0;
 	}
 
-	mrst_rtc.dev = dev;
-	dev_set_drvdata(dev, &mrst_rtc);
 	rename_region(iomem, dev_name(&mrst_rtc.rtc->dev));
 
 	spin_lock_irq(&rtc_lock);
@@ -376,9 +376,10 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 	return 0;
 
 cleanup1:
-	mrst_rtc.dev = NULL;
 	rtc_device_unregister(mrst_rtc.rtc);
 cleanup0:
+	dev_set_drvdata(dev, NULL);
+	mrst_rtc.dev = NULL;
 	release_region(iomem->start, iomem->end + 1 - iomem->start);
 	dev_err(dev, "rtc-mrst: unable to initialise\n");
 	return retval;
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] rtc: rtc-mrst: follow on to the change of rtc_device_register()
  2011-04-07  1:39 [PATCH 1/2] rtc: rtc-mrst: follow on to the change of rtc_device_register() Feng Tang
@ 2011-04-07  2:15 ` john stultz
  2011-04-07  9:48 ` [tip:timers/urgent] rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm() tip-bot for Feng Tang
  1 sibling, 0 replies; 3+ messages in thread
From: john stultz @ 2011-04-07  2:15 UTC (permalink / raw)
  To: Feng Tang; +Cc: linux-kernel, tglx, alan, Alessandro Zummo

On Thu, 2011-04-07 at 09:39 +0800, Feng Tang wrote:
> commit f44f7f96a20 (RTC: Initialize kernel state from RTC) will
> call rtc_read_alarm() inside rtc_device_register(), so rtc-mrst
> driver need to call dev_set_drvdata() before rtc_device_register()
> get called.
> 
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Feng Tang <feng.tang@intel.com>

Thanks, I'll add this to my queue!

-john



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip:timers/urgent] rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm()
  2011-04-07  1:39 [PATCH 1/2] rtc: rtc-mrst: follow on to the change of rtc_device_register() Feng Tang
  2011-04-07  2:15 ` john stultz
@ 2011-04-07  9:48 ` tip-bot for Feng Tang
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Feng Tang @ 2011-04-07  9:48 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, alan, hpa, mingo, torvalds, john.stultz, tglx,
	feng.tang, a.zummo, mingo

Commit-ID:  de97a21a23dda34f1754a748560dede139e6bfc2
Gitweb:     http://git.kernel.org/tip/de97a21a23dda34f1754a748560dede139e6bfc2
Author:     Feng Tang <feng.tang@intel.com>
AuthorDate: Thu, 7 Apr 2011 09:39:44 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Thu, 7 Apr 2011 11:27:42 +0200

rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm()

Commit f44f7f96a20 ("RTC: Initialize kernel state from RTC") caused a
boot regression on the MRST platform.

The reason is that rtc_device_register() calls rtc_read_alarm() after
that change, which function does not have all driver data set up yet.

The rtc-mrst driver needs to call dev_set_drvdata() before rtc_device_register()
gets called.

Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Acked-by: John Stultz <john.stultz@linaro.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1302140384-27571-1-git-send-email-feng.tang@intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 drivers/rtc/rtc-mrst.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-mrst.c b/drivers/rtc/rtc-mrst.c
index 332a2c4..b2f0968 100644
--- a/drivers/rtc/rtc-mrst.c
+++ b/drivers/rtc/rtc-mrst.c
@@ -342,6 +342,8 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 
 	mrst_rtc.irq = rtc_irq;
 	mrst_rtc.iomem = iomem;
+	mrst_rtc.dev = dev;
+	dev_set_drvdata(dev, &mrst_rtc);
 
 	mrst_rtc.rtc = rtc_device_register(driver_name, dev,
 				&mrst_rtc_ops, THIS_MODULE);
@@ -350,8 +352,6 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 		goto cleanup0;
 	}
 
-	mrst_rtc.dev = dev;
-	dev_set_drvdata(dev, &mrst_rtc);
 	rename_region(iomem, dev_name(&mrst_rtc.rtc->dev));
 
 	spin_lock_irq(&rtc_lock);
@@ -376,9 +376,10 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 	return 0;
 
 cleanup1:
-	mrst_rtc.dev = NULL;
 	rtc_device_unregister(mrst_rtc.rtc);
 cleanup0:
+	dev_set_drvdata(dev, NULL);
+	mrst_rtc.dev = NULL;
 	release_region(iomem->start, iomem->end + 1 - iomem->start);
 	dev_err(dev, "rtc-mrst: unable to initialise\n");
 	return retval;

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-04-07  9:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-07  1:39 [PATCH 1/2] rtc: rtc-mrst: follow on to the change of rtc_device_register() Feng Tang
2011-04-07  2:15 ` john stultz
2011-04-07  9:48 ` [tip:timers/urgent] rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm() tip-bot for Feng Tang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.