From: Bjorn Helgaas Jeff Garzik pointed out that I should have propagated the error returned from pci_enable_device() rather than making up -ENODEV. Propagate pci_enable_device() error returns rather than using -ENODEV. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton --- 25-akpm/drivers/atm/idt77252.c | 4 ++-- 25-akpm/drivers/isdn/tpam/tpam_main.c | 4 ++-- 25-akpm/drivers/misc/ibmasm/module.c | 6 +++--- 25-akpm/drivers/net/tulip/de4x5.c | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff -puN drivers/atm/idt77252.c~propagate-pci_enable_device-errors drivers/atm/idt77252.c --- 25/drivers/atm/idt77252.c~propagate-pci_enable_device-errors 2004-10-18 21:42:34.022615064 -0700 +++ 25-akpm/drivers/atm/idt77252.c 2004-10-18 21:42:34.032613544 -0700 @@ -3685,9 +3685,9 @@ idt77252_init_one(struct pci_dev *pcidev int i, err; - if (pci_enable_device(pcidev)) { + if ((err = pci_enable_device(pcidev))) { printk("idt77252: can't enable PCI device at %s\n", pci_name(pcidev)); - return -ENODEV; + return err; } if (pci_read_config_word(pcidev, PCI_REVISION_ID, &revision)) { diff -puN drivers/isdn/tpam/tpam_main.c~propagate-pci_enable_device-errors drivers/isdn/tpam/tpam_main.c --- 25/drivers/isdn/tpam/tpam_main.c~propagate-pci_enable_device-errors 2004-10-18 21:42:34.024614760 -0700 +++ 25-akpm/drivers/isdn/tpam/tpam_main.c 2004-10-18 21:42:34.033613392 -0700 @@ -88,10 +88,10 @@ static int __devinit tpam_probe(struct p tpam_card *card, *c; int i, err; - if (pci_enable_device(dev)) { + if ((err = pci_enable_device(dev))) { printk(KERN_ERR "TurboPAM: can't enable PCI device at %s\n", pci_name(dev)); - return -ENODEV; + return err; } /* allocate memory for the board structure */ diff -puN drivers/misc/ibmasm/module.c~propagate-pci_enable_device-errors drivers/misc/ibmasm/module.c --- 25/drivers/misc/ibmasm/module.c~propagate-pci_enable_device-errors 2004-10-18 21:42:34.025614608 -0700 +++ 25-akpm/drivers/misc/ibmasm/module.c 2004-10-18 21:42:34.033613392 -0700 @@ -59,13 +59,13 @@ static int __init ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id) { - int result = -ENOMEM; + int err, result = -ENOMEM; struct service_processor *sp; - if (pci_enable_device(pdev)) { + if ((err = pci_enable_device(pdev))) { printk(KERN_ERR "%s: can't enable PCI device at %s\n", DRIVER_NAME, pci_name(pdev)); - return -ENODEV; + return err; } sp = kmalloc(sizeof(struct service_processor), GFP_KERNEL); diff -puN drivers/net/tulip/de4x5.c~propagate-pci_enable_device-errors drivers/net/tulip/de4x5.c --- 25/drivers/net/tulip/de4x5.c~propagate-pci_enable_device-errors 2004-10-18 21:42:34.027614304 -0700 +++ 25-akpm/drivers/net/tulip/de4x5.c 2004-10-18 21:42:34.038612632 -0700 @@ -2242,8 +2242,8 @@ static int __devinit de4x5_pci_probe (st return -ENODEV; /* Ok, the device seems to be for us. */ - if (pci_enable_device (pdev)) - return -ENODEV; + if ((error = pci_enable_device (pdev))) + return error; if (!(dev = alloc_etherdev (sizeof (struct de4x5_private)))) { error = -ENOMEM; _