When an ACPI resource conflict is detected, error messages are already printed by ACPI. There's no point in causing the driver core to print more error messages, so return one of the error codes for which no message is printed. This fixes bug #14293: http://bugzilla.kernel.org/show_bug.cgi?id=14293 Signed-off-by: Jean Delvare <khali@xxxxxxxxxxxx> --- drivers/i2c/busses/i2c-amd756.c | 2 +- drivers/i2c/busses/i2c-amd8111.c | 4 +++- drivers/i2c/busses/i2c-i801.c | 4 +++- drivers/i2c/busses/i2c-isch.c | 2 +- drivers/i2c/busses/i2c-piix4.c | 4 ++-- drivers/i2c/busses/i2c-sis96x.c | 2 +- drivers/i2c/busses/i2c-viapro.c | 2 +- 7 files changed, 12 insertions(+), 8 deletions(-) --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-amd756.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-amd756.c 2009-10-04 11:49:30.000000000 +0200 @@ -364,7 +364,7 @@ static int __devinit amd756_probe(struct error = acpi_check_region(amd756_ioport, SMB_IOSIZE, amd756_driver.name); if (error) - return error; + return -ENODEV; if (!request_region(amd756_ioport, SMB_IOSIZE, amd756_driver.name)) { dev_err(&pdev->dev, "SMB region 0x%x already in use!\n", --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-amd8111.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-amd8111.c 2009-10-04 11:49:30.000000000 +0200 @@ -376,8 +376,10 @@ static int __devinit amd8111_probe(struc smbus->size = pci_resource_len(dev, 0); error = acpi_check_resource_conflict(&dev->resource[0]); - if (error) + if (error) { + error = -ENODEV; goto out_kfree; + } if (!request_region(smbus->base, smbus->size, amd8111_driver.name)) { error = -EBUSY; --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-i801.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-i801.c 2009-10-04 11:49:30.000000000 +0200 @@ -732,8 +732,10 @@ static int __devinit i801_probe(struct p } err = acpi_check_resource_conflict(&dev->resource[SMBBAR]); - if (err) + if (err) { + err = -ENODEV; goto exit; + } err = pci_request_region(dev, SMBBAR, i801_driver.name); if (err) { --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-isch.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-isch.c 2009-10-04 11:49:30.000000000 +0200 @@ -281,7 +281,7 @@ static int __devinit sch_probe(struct pc return -ENODEV; } if (acpi_check_region(sch_smba, SMBIOSIZE, sch_driver.name)) - return -EBUSY; + return -ENODEV; if (!request_region(sch_smba, SMBIOSIZE, sch_driver.name)) { dev_err(&dev->dev, "SMBus region 0x%x already in use!\n", sch_smba); --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-piix4.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-piix4.c 2009-10-04 11:49:30.000000000 +0200 @@ -169,7 +169,7 @@ static int __devinit piix4_setup(struct } if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) - return -EBUSY; + return -ENODEV; if (!request_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) { dev_err(&PIIX4_dev->dev, "SMBus region 0x%x already in use!\n", @@ -260,7 +260,7 @@ static int __devinit piix4_setup_sb800(s piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) - return -EBUSY; + return -ENODEV; if (!request_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) { dev_err(&PIIX4_dev->dev, "SMBus region 0x%x already in use!\n", --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-sis96x.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-sis96x.c 2009-10-04 11:49:30.000000000 +0200 @@ -280,7 +280,7 @@ static int __devinit sis96x_probe(struct retval = acpi_check_resource_conflict(&dev->resource[SIS96x_BAR]); if (retval) - return retval; + return -ENODEV; /* Everything is happy, let's grab the memory and set things up. */ if (!request_region(sis96x_smbus_base, SMB_IOSIZE, --- linux-2.6.32-rc1.orig/drivers/i2c/busses/i2c-viapro.c 2009-10-04 09:21:28.000000000 +0200 +++ linux-2.6.32-rc1/drivers/i2c/busses/i2c-viapro.c 2009-10-04 11:49:30.000000000 +0200 @@ -365,7 +365,7 @@ static int __devinit vt596_probe(struct found: error = acpi_check_region(vt596_smba, 8, vt596_driver.name); if (error) - return error; + return -ENODEV; if (!request_region(vt596_smba, 8, vt596_driver.name)) { dev_err(&pdev->dev, "SMBus region 0x%x already in use!\n", -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html