Re: getting "struct pci_dev" from "struct netdevice"

From: Jeff Garzik (jgarzik@mandrakesoft.com)
Date: Tue Oct 10 2000 - 10:16:55 EST


"Phillips, Mike" wrote:
> Take a look at the olympic driver (drivers/net/tokenring/olympic.c)
> function olympic_proc_info. This is called from a read into the proc
> filesystem. When we get the read we want to print out details on
> all the olympic devices in the system so we have to scan the
> pci tree and find a match based on base_addr. This works in both
> 2.2 and 2.4

Doesn't work for all devices. Also since base_addr is truncated to
16-bits when passed to ifconfig, this gets even nastier for userspace.

> Jeff:
> > Or really? Exactly how does one do this?
>
> pdev->driver_data = dev
>
> Of course the driver has to implement this.

...and noone but the driver can trust this information to be pointing to
an up-to-date struct netdevice.

Since struct pci_dev is probably going to morph into a more generic
struct hw_dev, maybe struct netdevice needs a pci_dev member...

        Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:15 EST