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 <[email protected]>
---
 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to