Re: [PATCH] Fix pointer arithmetic in hpt3xx driver code (3rd try)

Sergei Shtylyov
2008-09-07T11:20:58Z

Hello, I wrote:
>> diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
>> index eb107ee..4eae284 100644
>> --- a/drivers/ide/pci/hpt366.c
>> +++ b/drivers/ide/pci/hpt366.c
>> @@ -613,6 +613,14 @@ static int check_in_drive_list(ide_drive_t
>> *drive, const char **list)
>> return 0;
>> }
>>
>> +static struct hpt_info *hpt3xx_get_info(struct device *dev)
>> +{
>> + struct ide_host *host = pci_get_drvdata(to_pci_dev(pci_dev));
>>
>
> Oops, this just won't compile. :-/

BTW, there's no need to invoke to_pci_dev() at all since
pci_get_drvdata(dev) boils down to dev_get_drvdata(&dev->dev) call. So,
in order not to waste time on useless pointer tricks, we should just
invoke the latter here.

> And please re-consider passing 'struct pci_dev *' to this function
> since it's pre-calculated by the callers and is used by them otherwise
> in 5 (not even 4) cases out of 7.
>

Well, since to_pci_dev() is unnecessary here, I'm taking my request
back. :-)

MBR, Sergei