Re: [PATCH 4/4] Make Emulex lpfc driver legacy I/O port free

Kenji Kaneshige
2006-06-07T12:27:04Z

Christoph Hellwig wrote:
> On Wed, Jun 07, 2006 at 12:15:34PM +0900, Kenji Kaneshige wrote:
>
>>This patch makes Emulex lpfc driver legacy I/O port free.
>
>
> Your interface for this is really horrible ;-)
>
>
>>+ int bars = pci_select_bars(pdev, IORESOURCE_MEM);
>>
>>- if (pci_enable_device(pdev))
>>+ if (pci_enable_device_bars(pdev, bars))
>> goto out;
>>- if (pci_request_regions(pdev, LPFC_DRIVER_NAME))
>>+ if (pci_request_selected_regions(pdev, bars, LPFC_DRIVER_NAME))
>> goto out_disable_device;
>
>
> Please make this something like:
>
> if (pci_enable_device_noioport(pdev))
> goto out;
> if (pci_request_regions(pdev, LPFC_DRIVER_NAME))
> goto out_disable_device;
>
> as in:
>
> - get rid of this awkward pci_select_bars function, the pci_enable* function
> should do all the work and add a flag to struct pci_dev so that all other
> functions do the right thing.
>
>

No. Your idea is very similar to the idea of previous version of my patche
which had a bug. The problem is that it doesn't work if pci_request_regions()
is called before pci_enable_device*() (This is the correct order, though so
many drivers breaks this rule).

Thanks,
Kenji Kaneshige