summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/time_32.c
diff options
context:
space:
mode:
authorKjetil Oftedal <oftedal@gmail.com>2011-03-25 00:34:52 +0100
committerDavid S. Miller <davem@davemloft.net>2011-03-25 00:34:52 +0100
commit1c833bc3b60744a385ac66cc1bc72fbecd5670ab (patch)
treef8dc0c026de100c0a313cd05d59d901691e3f61d /arch/sparc/kernel/time_32.c
parentsparc: Add {open_by,name_to}_handle_at and clock_adjtime syscalls. (diff)
downloadlinux-1c833bc3b60744a385ac66cc1bc72fbecd5670ab.tar.xz
linux-1c833bc3b60744a385ac66cc1bc72fbecd5670ab.zip
sparc32: Fix multiple RTC detections on SUN4D
During the preparation for testing the recent changes made to the SUN4D specific code in the kernel by Sam Ravnborg the following was discovered: Since the removal of of_platform_bus_type (commit: eca3930163ba8884060ce9d9ff5ef0d9b7c7b00f ) multiboard SUN4Ds have not been able to boot. The kernel crashes due to a zero-pointer error encountered when registering multiple M48T59 RTCs (There is one on each board). A patch for the was previously submitted, but the problem was not a serious at that time, as it would only generate warnings. Now the kernel will crash and stop executing before the serial console has been started. (Crash output can be viewed by using the -p boot flag) Signed-off-by: Kjetil Oftedal <oftedal@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/time_32.c')
-rw-r--r--arch/sparc/kernel/time_32.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c
index 8237dd4dfeb4..4e236391b635 100644
--- a/arch/sparc/kernel/time_32.c
+++ b/arch/sparc/kernel/time_32.c
@@ -145,6 +145,10 @@ static int __devinit clock_probe(struct platform_device *op)
if (!model)
return -ENODEV;
+ /* Only the primary RTC has an address property */
+ if (!of_find_property(dp, "address", NULL))
+ return -ENODEV;
+
m48t59_rtc.resource = &op->resource[0];
if (!strcmp(model, "mk48t02")) {
/* Map the clock register io area read-only */