Re: [PATCH] Char: isicom, enable/disable pci device

From: Andrew Morton
Date: Thu Jul 10 2008 - 19:41:41 EST


On Thu, 10 Jul 2008 16:20:12 +0200 Jiri Slaby <jirislaby@xxxxxxxxx> wrote:

> Don't forget to enable and disable PCI devices. The device
> might be unusable without that.
>
> Signed-off-by: Jiri Slaby <jirislaby@xxxxxxxxx>
> ---
> drivers/char/isicom.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
> index 4f3cefa..a1a67e3 100644
> --- a/drivers/char/isicom.c
> +++ b/drivers/char/isicom.c
> @@ -1736,6 +1736,12 @@ static int __devinit isicom_probe(struct pci_dev *pdev,
> if (card_count >= BOARD_COUNT)
> goto err;
>
> + retval = pci_enable_device(pdev);
> + if (retval) {
> + dev_err(&pdev->dev, "failed to enable\n");
> + goto err;
> + }
> +
> dev_info(&pdev->dev, "ISI PCI Card(Device ID 0x%x)\n", ent->device);
>
> /* allot the first empty slot in the array */
> @@ -1790,6 +1796,7 @@ errunrr:
> errdec:
> board->base = 0;
> card_count--;
> + pci_disable_device(pdev);
> err:
> return retval;
> }
> @@ -1806,6 +1813,7 @@ static void __devexit isicom_remove(struct pci_dev *pdev)
> pci_release_region(pdev, 3);
> board->base = 0;
> card_count--;
> + pci_disable_device(pdev);
> }
>
> static int __init isicom_init(void)

hm. Is this a recently-added problem?

I wonder what the chance is that this will fix something. Or break
something.
--
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/