On Fri, Nov 14, 2008 at 9:02 AM, Bob Copeland <me@xxxxxxxxxxxxxxx> wrote: > On Fri, Nov 14, 2008 at 1:17 AM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote: >> If our offsets are the same then its probably on line 791: > [...] >> 790 name = wiphy_dev(local->hw.wiphy)->driver->name; >> 791 local->hw.workqueue = create_freezeable_workqueue(name); > > I agree, having looked at the objdump output. Hmm, maybe ->driver pointer > is bad even though I can't see that happening. Yeah I tried digging through the work queue logic thing and don't see why name would be NULL. I believe the name comes from the driver's stack memory when it sets up the pci device driver structure. Only puzzling thing for me is wiphy_dev() gets the wiphy->dev.parent, that still hasn't sunken in yet for me, and how that gets you ->driver->name or how this can possibly be NULL. Anyway we do set the parent before calling ieee80211_register_hw() by using SET_IEEE80211_DEV(hw, &pdev->dev) (oh ok here is the parent). so when we try to get the name with parent->driver I am not sure if driver has been set yet because ath5k_pci_probe() hasn't finished yet as probe called ath5k_hw_attach(). When does ->driver get set and why would it fail only for ath5k? 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