* [PATCH] i2c-piix4: Blacklist the Sapphire AM2RD790 motherboard [not found] ` <20080503182701.58a0c146-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> @ 2008-05-03 18:16 ` Jean Delvare [not found] ` <20080503201659.2ab17cbc-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Jean Delvare @ 2008-05-03 18:16 UTC (permalink / raw) To: achim; +Cc: Linux I2C, LM Sensors On Sat, 3 May 2008 18:27:01 +0200, Jean Delvare wrote: > The good news is that the motherboard DMI data is present: > > Base Board Information > Manufacturer: SAPPHIRE Inc. > Product Name: PC-AM2RD790 > > So we can blacklist it from i2c-piix4. I'll prepare a patch later today. > Here you go. Would you have the possibility to test the patch below? You'll have to rebuild your kernel (or at least the i2c-piix4 driver) with this patch applied, then try loading the i2c-piix4 driver, you should see an error message in the logs and no i2c bus created. * * * * * We had a report that running sensors-detect on a Sapphire AM2RD790 motherbord killed the CPU. While the exact cause is still unknown, I'd rather play it safe and prevent any access to the SMBus on that machine by not letting the i2c-piix4 driver attach to the SMBus host device on that machine. Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> --- drivers/i2c/busses/i2c-piix4.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) --- linux-2.6.25.orig/drivers/i2c/busses/i2c-piix4.c 2008-04-19 11:11:56.000000000 +0200 +++ linux-2.6.25/drivers/i2c/busses/i2c-piix4.c 2008-05-03 19:32:46.000000000 +0200 @@ -108,7 +108,20 @@ static unsigned short piix4_smba; static struct pci_driver piix4_driver; static struct i2c_adapter piix4_adapter; -static struct dmi_system_id __devinitdata piix4_dmi_table[] = { +static struct dmi_system_id __devinitdata piix4_dmi_blacklist[] = { + { + .ident = "Sapphire AM2RD790", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "SAPPHIRE Inc."), + DMI_MATCH(DMI_BOARD_NAME, "PC-AM2RD790"), + }, + }, + { } +}; + +/* The IBM entry is in a separate table because we only check it + on Intel-based systems */ +static struct dmi_system_id __devinitdata piix4_dmi_ibm[] = { { .ident = "IBM", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, @@ -123,8 +136,16 @@ static int __devinit piix4_setup(struct dev_info(&PIIX4_dev->dev, "Found %s device\n", pci_name(PIIX4_dev)); + /* On some motherboards, it was reported that accessing the SMBus + caused severe hardware problems */ + if (dmi_check_system(piix4_dmi_blacklist)) { + dev_err(&PIIX4_dev->dev, + "Accessing the SMBus on this system is unsafe!\n"); + return -EPERM; + } + /* Don't access SMBus on IBM systems which get corrupted eeproms */ - if (dmi_check_system(piix4_dmi_table) && + if (dmi_check_system(piix4_dmi_ibm) && PIIX4_dev->vendor == PCI_VENDOR_ID_INTEL) { dev_err(&PIIX4_dev->dev, "IBM system detected; this module " "may corrupt your serial eeprom! Refusing to load " -- Jean Delvare _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <20080503201659.2ab17cbc-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>]
* [PATCH] i2c-piix4: Blacklist two mainboards [not found] ` <20080503201659.2ab17cbc-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> @ 2008-05-04 12:57 ` Jean Delvare [not found] ` <20080504145717.75063c54-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Jean Delvare @ 2008-05-04 12:57 UTC (permalink / raw) To: Linux I2C We had a report that running sensors-detect on a Sapphire AM2RD790 motherbord killed the CPU. While the exact cause is still unknown, I'd rather play it safe and prevent any access to the SMBus on that machine by not letting the i2c-piix4 driver attach to the SMBus host device on that machine. Also blacklist a similar board made by DFI. Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> --- Updated to also blacklist the DFI Lanparty UT 790FX, as it has the same issue. drivers/i2c/busses/i2c-piix4.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) --- linux-2.6.25.orig/drivers/i2c/busses/i2c-piix4.c 2008-04-19 11:11:56.000000000 +0200 +++ linux-2.6.25/drivers/i2c/busses/i2c-piix4.c 2008-05-04 09:44:42.000000000 +0200 @@ -108,7 +108,25 @@ static unsigned short piix4_smba; static struct pci_driver piix4_driver; static struct i2c_adapter piix4_adapter; -static struct dmi_system_id __devinitdata piix4_dmi_table[] = { +static struct dmi_system_id __devinitdata piix4_dmi_blacklist[] = { + { + .ident = "Sapphire AM2RD790", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "SAPPHIRE Inc."), + DMI_MATCH(DMI_BOARD_NAME, "PC-AM2RD790"), + }, + .ident = "DFI Lanparty UT 790FX", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "DFI Inc."), + DMI_MATCH(DMI_BOARD_NAME, "LP UT 790FX"), + }, + }, + { } +}; + +/* The IBM entry is in a separate table because we only check it + on Intel-based systems */ +static struct dmi_system_id __devinitdata piix4_dmi_ibm[] = { { .ident = "IBM", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, @@ -123,8 +141,16 @@ static int __devinit piix4_setup(struct dev_info(&PIIX4_dev->dev, "Found %s device\n", pci_name(PIIX4_dev)); + /* On some motherboards, it was reported that accessing the SMBus + caused severe hardware problems */ + if (dmi_check_system(piix4_dmi_blacklist)) { + dev_err(&PIIX4_dev->dev, + "Accessing the SMBus on this system is unsafe!\n"); + return -EPERM; + } + /* Don't access SMBus on IBM systems which get corrupted eeproms */ - if (dmi_check_system(piix4_dmi_table) && + if (dmi_check_system(piix4_dmi_ibm) && PIIX4_dev->vendor == PCI_VENDOR_ID_INTEL) { dev_err(&PIIX4_dev->dev, "IBM system detected; this module " "may corrupt your serial eeprom! Refusing to load " -- Jean Delvare _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <20080504145717.75063c54-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>]
* Re: [PATCH] i2c-piix4: Blacklist two mainboards [not found] ` <20080504145717.75063c54-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org> @ 2008-05-04 13:38 ` Jean Delvare 0 siblings, 0 replies; 3+ messages in thread From: Jean Delvare @ 2008-05-04 13:38 UTC (permalink / raw) To: Linux I2C We had a report that running sensors-detect on a Sapphire AM2RD790 motherbord killed the CPU. While the exact cause is still unknown, I'd rather play it safe and prevent any access to the SMBus on that machine by not letting the i2c-piix4 driver attach to the SMBus host device on that machine. Also blacklist a similar board made by DFI. Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> --- Once again... I forgot to refresh the patch before sending it, sorry. drivers/i2c/busses/i2c-piix4.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) --- linux-2.6.25.orig/drivers/i2c/busses/i2c-piix4.c 2008-04-19 11:11:56.000000000 +0200 +++ linux-2.6.25/drivers/i2c/busses/i2c-piix4.c 2008-05-04 09:56:00.000000000 +0200 @@ -108,7 +108,27 @@ static unsigned short piix4_smba; static struct pci_driver piix4_driver; static struct i2c_adapter piix4_adapter; -static struct dmi_system_id __devinitdata piix4_dmi_table[] = { +static struct dmi_system_id __devinitdata piix4_dmi_blacklist[] = { + { + .ident = "Sapphire AM2RD790", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "SAPPHIRE Inc."), + DMI_MATCH(DMI_BOARD_NAME, "PC-AM2RD790"), + }, + }, + { + .ident = "DFI Lanparty UT 790FX", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "DFI Inc."), + DMI_MATCH(DMI_BOARD_NAME, "LP UT 790FX"), + }, + }, + { } +}; + +/* The IBM entry is in a separate table because we only check it + on Intel-based systems */ +static struct dmi_system_id __devinitdata piix4_dmi_ibm[] = { { .ident = "IBM", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, @@ -123,8 +143,16 @@ static int __devinit piix4_setup(struct dev_info(&PIIX4_dev->dev, "Found %s device\n", pci_name(PIIX4_dev)); + /* On some motherboards, it was reported that accessing the SMBus + caused severe hardware problems */ + if (dmi_check_system(piix4_dmi_blacklist)) { + dev_err(&PIIX4_dev->dev, + "Accessing the SMBus on this system is unsafe!\n"); + return -EPERM; + } + /* Don't access SMBus on IBM systems which get corrupted eeproms */ - if (dmi_check_system(piix4_dmi_table) && + if (dmi_check_system(piix4_dmi_ibm) && PIIX4_dev->vendor == PCI_VENDOR_ID_INTEL) { dev_err(&PIIX4_dev->dev, "IBM system detected; this module " "may corrupt your serial eeprom! Refusing to load " -- Jean Delvare _______________________________________________ i2c mailing list i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org http://lists.lm-sensors.org/mailman/listinfo/i2c ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-05-04 13:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <481B851A.10800@ag-web.biz>
[not found] ` <20080503091831.30cef838@hyperion.delvare>
[not found] ` <1209828454.4289.1.camel@debian-9850.ag-home.muc>
[not found] ` <20080503182701.58a0c146@hyperion.delvare>
[not found] ` <20080503182701.58a0c146-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-05-03 18:16 ` [PATCH] i2c-piix4: Blacklist the Sapphire AM2RD790 motherboard Jean Delvare
[not found] ` <20080503201659.2ab17cbc-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-05-04 12:57 ` [PATCH] i2c-piix4: Blacklist two mainboards Jean Delvare
[not found] ` <20080504145717.75063c54-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-05-04 13:38 ` Jean Delvare
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox