Re: [PATCH] ibmasm: add missing pci_enable_device()

From: Max Asbock
Date: Mon Aug 09 2004 - 12:20:24 EST


I tested this on the hardware. It works fine.
Is there any reason we shouldn't use dev_err() for the pci_enable error
message like in the other messages?

regards,
max

On Wed, 2004-08-04 at 14:32, Bjorn Helgaas wrote:
> I don't have this hardware, so this has not been tested.
>
>
> Add pci_enable_device()/pci_disable_device(). In the past, drivers
> often worked without this, but it is now required in order to route
> PCI interrupts correctly.
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
>
> ===== drivers/misc/ibmasm/module.c 1.2 vs edited =====
> --- 1.2/drivers/misc/ibmasm/module.c 2004-05-14 06:00:50 -06:00
> +++ edited/drivers/misc/ibmasm/module.c 2004-08-04 13:15:46 -06:00
> @@ -62,10 +62,17 @@
> int result = -ENOMEM;
> struct service_processor *sp;
>
> + if (pci_enable_device(pdev)) {
> + printk(KERN_ERR "%s: can't enable PCI device at %s\n",
> + DRIVER_NAME, pci_name(pdev));
> + return -ENODEV;
> + }
> +
> sp = kmalloc(sizeof(struct service_processor), GFP_KERNEL);
> if (sp == NULL) {
> dev_err(&pdev->dev, "Failed to allocate memory\n");
> - return result;
> + result = -ENOMEM;
> + goto error_kmalloc;
> }
> memset(sp, 0, sizeof(struct service_processor));
>
> @@ -148,6 +155,8 @@
> ibmasm_event_buffer_exit(sp);
> error_eventbuffer:
> kfree(sp);
> +error_kmalloc:
> + pci_disable_device(pdev);
>
> return result;
> }
> @@ -166,6 +175,7 @@
> iounmap(sp->base_address);
> ibmasm_event_buffer_exit(sp);
> kfree(sp);
> + pci_disable_device(pdev);
> }
>
> static struct pci_device_id ibmasm_pci_table[] =
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/