Re: [RFC PATCH] x86: Add safe_udelay() and safe_msleep()

From: Yinghai Lu
Date: Thu Jan 13 2011 - 18:06:08 EST


>
> What the hell is the root problem ?

for patch

x86: usb handoff in early_quirk

some systems keep getting
APIC calibration not consistent with PM-Timer: 139ms instead of 100ms
APIC delta adjusted to PM-Timer: 831249 (1163736)

USB legacy SMI handler is not disabled at that time.

According to Thomas:
| http://lkml.indiana.edu/hypermail/linux/kernel/0703.2/0420.html
|
| The wrong calibration values are probably caused by SMM code trying to
| emulate a PS/2 keyboard from a (maybe connected or not) USB keyboard.
| This prohibits the accurate delivery of PIT interrupts, which are used
| to calibrate the local APIC timer. Unfortunately we have no way to
| disable this BIOS misfeature in the early boot process.

Try to disable USB legacy support early with this patch.
So later APIC Timer calibration don't get messed up by USB legacy support SMI handler.
After this patch, that warning never show up for 100 reboot tests.

reuse code from drivers/usb/host/pci-quirks.c


but pci-quirks.c is using udelay and msleep ...

And BenH does't want
1. if (early)...
2. include .c
3. new API new about safe_udelay/safe_msleep...

just want to keep the old udelay/mdelay.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/