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

From: Sergei Shtylyov
Date: Sun Sep 07 2008 - 07:21:01 EST


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


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