lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 04 May 2007 14:47:27 -0700 From: john stultz <johnstul@...ibm.com> To: Andrew Morton <akpm@...ux-foundation.org> Cc: "Guilherme M. Schroeder" <guilherme@...tralinf.com.br>, lkml <linux-kernel@...r.kernel.org>, Andi Kleen <ak@...e.de>, Thomas Gleixner <tglx@...utronix.de> Subject: Re: [PATCH] Blacklist Dell Optiplex 320 from using the HPET On Fri, 2007-05-04 at 14:44 -0700, Andrew Morton wrote: > On Fri, 04 May 2007 14:29:04 -0700 > john stultz <johnstul@...ibm.com> wrote: > > > One of the 2.6.21 regressions was Guilherme's problem seeing his box > > lock up when the system detected an unstable TSC and dropped back to > > using the HPET. > > > > In digging deeper, we found the HPET is not actually incrementing on > > this system. And in fact, the reason why this issue just cropped up was > > because of Thomas's clocksource watchdog code was comparing the TSC to > > the HPET (which wasn't moving) and thought the TSC was broken. > > > > Anyway, Guliherme checked for a BIOS update and did not find one, so > > I've added a DMI blacklist against his system so the HPET is not used. > > > > Many thanks to Guilherme for the slow and laborious testing that finally > > narrowed down this issue. > > > > OK, I tagged that for -stable too. Thanks. > > > > diff --git a/arch/i386/kernel/hpet.c b/arch/i386/kernel/hpet.c > > index 17d7345..1ae27f3 100644 > > --- a/arch/i386/kernel/hpet.c > > +++ b/arch/i386/kernel/hpet.c > > @@ -5,6 +5,7 @@ > > #include <linux/init.h> > > #include <linux/sysdev.h> > > #include <linux/pm.h> > > +#include <linux/dmi.h> > > > > #include <asm/hpet.h> > > #include <asm/io.h> > > @@ -48,6 +49,31 @@ static int __init hpet_setup(char* str) > > } > > __setup("hpet=", hpet_setup); > > > > + > > +/* DMI Blacklist for bad HPETs */ > > +static int __init dmi_mark_hpet_broken(struct dmi_system_id *d) > > +{ > > + printk(KERN_NOTICE "%s detected: HPET does not function.\n", > > + d->ident); > > + boot_hpet_disable = 1; > > + return 0; > > +} > > + > > +/* List of systems that have known HPETproblems */ > > +static struct dmi_system_id bad_hpet_dmi_table[] = { > > + { > > + .callback = dmi_mark_hpet_broken, > > + .ident = "Dell OptiPlex 320", > > + .matches = { > > + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 320"), > > + DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."), > > + DMI_MATCH(DMI_BOARD_NAME, "0UT237"), > > + }, > > + }, > > + {} > > +}; > > + > > + > > static inline int is_hpet_capable(void) > > { > > return (!boot_hpet_disable && hpet_address); > > @@ -228,6 +254,8 @@ int __init hpet_enable(void) > > uint64_t hpet_freq; > > u64 tmp; > > > > + dmi_check_system(bad_hpet_dmi_table); > > + > > if (!is_hpet_capable()) > > return 0; > > The table can be __initdata, can't it? Yep. Thanks for catching that. -john - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists