Messages in this thread | | | Date | Sat, 19 Jan 2008 09:00:40 -0800 | From | "Ray Lee" <> | Subject | Re: [PATCH] x86 reboot: Remove inb_p usage |
| |
On Jan 19, 2008 7:44 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote: > We are driving a motherboard port so use a 2uS explicit delay at this > point. > > Signed-off-by: Alan Cox <alan@redhat.com> > > diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.24-rc8-mm1/arch/x86/kernel/reboot.c linux-2.6.24-rc8-mm1/arch/x86/kernel/reboot.c > --- linux.vanilla-2.6.24-rc8-mm1/arch/x86/kernel/reboot.c 2008-01-19 14:47:55.000000000 +0000 > +++ linux-2.6.24-rc8-mm1/arch/x86/kernel/reboot.c 2008-01-19 14:53:58.000000000 +0000 > @@ -319,9 +319,11 @@ > { > int i; > > - for (i = 0; i < 0x10000; i++) > - if ((inb_p(0x64) & 0x02) == 0) > + for (i = 0; i < 0x10000; i++) { > + if ((inb(0x64) & 0x02) == 0) > break; > + udelay(2); > + } > } > > void machine_emergency_restart(void)
Stupid question from the peanut gallery: If you're going to go through all this, maybe it would be better to define an inline isa_bus_delay(void) { udelay(2); } and use that instead? I can only imagine some poor sod coming along later and wondering why there's a udelay(2) there. OTOH, there is an inb right above it, so <shrug>.
| |