Re: pci_get_device_reverse(), why does Calgary need this?

From: Greg KH
Date: Fri Feb 15 2008 - 02:26:41 EST


On Wed, Feb 13, 2008 at 10:14:59AM -0800, Greg KH wrote:
> On Wed, Feb 13, 2008 at 07:47:11PM +0200, Muli Ben-Yehuda wrote:
> > On Wed, Feb 13, 2008 at 09:32:03AM -0800, Greg KH wrote:
> >
> > > Is there some reason you aren't using the "real" PCI driver api here
> > > and registering a pci driver for these devices? That would take the
> > > whole "loop over all pci devices" logic out of the code entirely.
> >
> > I recall we had a reason, but I no longer recall what it was. Some
> > reason the "real" PCI driver API didn't fit at the time. If someone
> > were to whip up a working patch, I'd happily apply it.
>
> "at the time"? It's been in place since the 2.2 days :)
>
> Is the problem that other drivers also want access to this PCI device
> for some reason?
>
> I'll whip up a patch for you to test with in a bit...

Hm, that's wierd. I thought I got something, until I realized that you
are doing a lot of logic before you ever even determine that your
hardware is present in the system. Why are you calling
calgary_locate_bbars() and doing all of that work? Or am I mising
something in the code flow here?

Also, it looks like you use the pci_get_device() to find the pci device,
then you do somethings, and then drop the device, never to use it again.

So, a traditional "probe" might not work as well, but it could be used
if you want to.

thanks,

greg k-h
--
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/