timer fixes
Subsystems (2)
Linus,
Please pull the latest timers-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git timers-fixes-for-linus
Thanks,
Ingo
------------------>
Feng Tang (2):
rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm() x86/mrst/vrtc: Fix boot crash in mrst_rtc_init()
arch/x86/platform/mrst/vrtc.c | 4 +++- drivers/rtc/rtc-mrst.c | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-)
arch/x86/platform/mrst/vrtc.c +3 -1
@@ -100,9 +100,11 @@ int vrtc_set_mmss(unsigned long nowtime)void __init mrst_rtc_init (void ) { -unsigned long vrtc_paddr = sfi_mrtc_array[0 ].phys_addr; +unsigned long vrtc_paddr;sfi_table_parse (SFI_SIG_MRTC ,NULL ,NULL , sfi_parse_mrtc); + + vrtc_paddr = sfi_mrtc_array[0 ].phys_addr;if (!sfi_mrtc_num || !vrtc_paddr)return ;
drivers/rtc/rtc-mrst.c +4 -3
@@ -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;