From 20a41141c52163b96759c8bffd31ec57773add3a Mon Sep 17 00:00:00 2001 From: nwhitehorn Date: Sun, 13 Mar 2011 21:23:25 +0000 Subject: Don't sleep while setting the clock. This can cause panics when periodic_resettodr() calls CLOCK_SETTIME() and smu tries to sleep while running from a callout. Reported by: Torfinn Ingolfsen --- sys/powerpc/powermac/smu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/powerpc/powermac') diff --git a/sys/powerpc/powermac/smu.c b/sys/powerpc/powermac/smu.c index 31fb09f..928472c 100644 --- a/sys/powerpc/powermac/smu.c +++ b/sys/powerpc/powermac/smu.c @@ -1177,7 +1177,7 @@ smu_gettime(device_t dev, struct timespec *ts) static int smu_settime(device_t dev, struct timespec *ts) { - struct smu_cmd cmd; + static struct smu_cmd cmd; struct clocktime ct; cmd.cmd = SMU_RTC; @@ -1194,7 +1194,7 @@ smu_settime(device_t dev, struct timespec *ts) cmd.data[6] = bin2bcd(ct.mon); cmd.data[7] = bin2bcd(ct.year - 2000); - return (smu_run_cmd(dev, &cmd, 1)); + return (smu_run_cmd(dev, &cmd, 0)); } /* SMU I2C Interface */ -- cgit v1.1