On Sat, Nov 15, 2008 at 10:06 PM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote: > On Sat, Nov 15, 2008 at 10:05 PM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote: >> On Sat, Nov 15, 2008 at 9:53 PM, Bob Copeland <me@xxxxxxxxxxxxxxx> wrote: >>> On Sat, Nov 15, 2008 at 09:48:13PM -0800, Luis R. Rodriguez wrote: >>>> Not sure why its 00000001, nor do I know if its poison. One thing I am >>>> fairly positive about is that the reason why this was wrong all along >>>> was because we were trying to get the device's ->driver structure to >>>> get driver->name but the device won't get its ->driver pointer >>>> assigned until *after* a successful probe. Lets review the PCI probe: >>> >>> No, as I later corrected myself, that is pci_dev->driver, but what >>> mac80211 is using is pci_dev->dev.driver. >> >> Right, the dev for the pci_dev which hasn't yet had a driver assigned >> yet, no? Who assigns the pci_dev's dev's driver pointer and when? Or >> am I still missing something? > > Oh nevermind yeah pci_dev->driver = drv; but still who then assigns > the dev's driver? The answer is drivers/base/dd.c really_probe(). Curious enough guess what, dev->driver = drv; is assigned *before* the device driver probe :) (bus probe in this case first, so dev->bus->probe) contrary to the other way around. So you're absolutely right the patch is not necessary then. Good catch. Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html