kernel-ark/drivers
Petr Vandrovec 403fe5ae57 [PATCH] rtc: msleep() cannot be used from interrupt
Since the beginning of July my Opteron box was randomly crashing and
being rebooted by hardware watchdog.  Today it finally did it in front
of me, and this patch will hopefully fix it.

The problem is that at the end of June (the 28th, to be exact: commit
47f176fdaf, "[PATCH] Using msleep()
instead of HZ") rtc_get_rtc_time was converted to use msleep() instead
of busy waiting.  But rtc_get_rtc_time is used by hpet_rtc_interrupt,
and scheduling is not allowed during interrupt.  So I'm reverting this
part of original change, replacing msleep() back with busy loop.

The original code was busy waiting for up to 20ms, but on my hardware in
the worst case update-in-progress bit was asserted for at most 363
passes through loop (on 2GHz dual Opteron), much less than even one
jiffie, not even talking about 20ms.  So I changed code to just wait
only as long as necessary.  Otherwise when RTC was set to generate
8192Hz timer, it stopped doing anything for 20ms (160 pulses were
skipped!) from time to time, and this is rather suboptimal as far as I
can tell.

Signed-off-by: Petr Vandrovec <vandrove@vc.cvut.cz>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-05 06:57:44 -07:00
..
acorn
acpi Merge master.kernel.org:/pub/scm/linux/kernel/git/lenb/to-linus 2005-08-04 10:36:25 -07:00
atm [ATM]: zatm: mailbox converted to pci_alloc_consistent() 2005-07-20 12:01:46 -07:00
base [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc... 2005-07-12 17:21:56 -04:00
block [PATCH] cfq-iosched: fix problem with barriers and max_depth == 1 2005-08-02 11:19:18 -07:00
bluetooth [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
cdrom [PATCH] Update CREDITS entry and listings in source files for Jesper Juhl 2005-07-27 16:26:20 -07:00
char [PATCH] rtc: msleep() cannot be used from interrupt 2005-08-05 06:57:44 -07:00
cpufreq Here are two possible cleanups in cpufreq.c: 2005-07-28 09:43:56 -07:00
crypto
dio
eisa
fc4 [SCSI] fc4 warning fix 2005-07-30 09:47:53 -05:00
firmware [PATCH] PCDP: if PCDP contains parity information, use it 2005-07-28 08:39:02 -07:00
hwmon [PATCH] I2C: use time_after in 3 chip drivers 2005-07-29 13:12:50 -07:00
i2c [PATCH] i2c-mpc.c: revert duplicate patch 2005-08-01 19:13:59 -07:00
ide [PATCH] ide: fix kmalloc_node breakage in ide driver 2005-08-04 13:00:53 -07:00
ieee1394 [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
infiniband [PATCH] [IPoIB] Handle sending of unicast RARP responses 2005-07-28 13:17:26 -07:00
input Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2005-07-29 09:48:34 -07:00
isdn [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
macintosh [PATCH] ppc64: hide CONFIG_ADB 2005-07-27 16:25:57 -07:00
mca
md [PATCH] dm-raid locking fix 2005-08-04 13:00:55 -07:00
media [PATCH] v4l: oopsfix for BTTV on badly behaved PCI chipsets 2005-08-04 13:00:54 -07:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6 2005-07-26 13:28:47 -07:00
misc [PATCH] IBM_ASM Kconfig corrections 2005-07-12 16:01:02 -07:00
mmc [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
mtd [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
net [PATCH] silence cs89x0 2005-08-01 19:14:01 -07:00
nubus
oprofile [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
parisc
parport [PATCH] pcmcia: remove references to pcmcia/version.h 2005-07-07 18:24:07 -07:00
pci [PATCH] PCI: restore BAR values after D3hot->D0 for devices that need it 2005-08-04 21:32:46 -07:00
pcmcia [PATCH] pci and yenta: pcibios_bus_to_resource 2005-08-04 21:32:46 -07:00
pnp [PATCH] drivers/pnp/pnpbios/rsparser.c: fix compile error with PCI=n 2005-07-27 16:25:50 -07:00
s390 [PATCH] s390: device recognition 2005-07-29 15:01:14 -07:00
sbus [SPARC]: Fix __KERNEL_SYSCALLS__ defining in envctrl.c and bbc_envctrl.c 2005-07-24 19:35:08 -07:00
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6 2005-08-04 13:08:29 -07:00
serial [PATCH] serial: add MMIO support to 8250_pnp 2005-07-29 15:01:13 -07:00
sh
sn
tc
telephony [PATCH] pcmcia: remove references to pcmcia/version.h 2005-07-07 18:24:07 -07:00
usb [PATCH] USB: Fix setup packet initialization in isp116x-hcd 2005-08-04 21:32:46 -07:00
video [PATCH] tridentfb: Fix scrolling artifacts during disk IO 2005-08-01 10:07:53 -07:00
w1 [PATCH] w1: kconfig/Makefile fix. 2005-07-29 13:12:51 -07:00
zorro
Kconfig Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6 2005-07-12 15:54:36 -07:00
Makefile [PATCH] I2C: Move hwmon drivers (1/3) 2005-07-11 14:14:31 -07:00