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

From: Bjorn Helgaas
Date: Mon Aug 09 2004 - 12:29:51 EST


On Monday 09 August 2004 11:18 am, Max Asbock wrote:
> 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?

That would probably be fine, too. ISTR looking at one case where the
printk wrapper wouldn't work quite right if pci_enable_device() failed.
But dev_err() looks like it should work fine.

> 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/