On Mon, 2012-06-25 at 19:05 +0300, Eliad Peller wrote: > On Mon, Jun 25, 2012 at 6:48 PM, Johannes Berg > <johannes@xxxxxxxxxxxxxxxx> wrote: > > On Mon, 2012-06-25 at 18:20 +0300, Eliad Peller wrote: > > > >> > +void cfg80211_unregister_wdev(struct wireless_dev *wdev) > > > >> > + case NL80211_IFTYPE_P2P_DEVICE: > >> > + if (wdev->p2p_started) { > >> > + wdev->p2p_started = false; > >> > + rdev->opencount--; > >> > + } > >> any reason not calling stop_p2p_device() here as well? > > > > That would be circular? You're supposed to call this when > > stop_p2p_device() gets called, or when you need to delete it for some > > other reason, usually device unplug or such. > > > hmm... so where stop_p2p_device is being called when userspace doesn't call it? Why should it be called? The stop can either originate from userspace, or from the driver in case the device is unplugged etc. In that case, the driver is expected to clean up its own status before it calls unregister_wdev(). I guess this is a bit different from the netdevs where we do call the relevant stop functions when the interface goes down, and it goes down when it is unregistered, etc. Then again, if we do call stop_p2p_device here, it's not actually that circular because it will only happen the first time around. Hmm. johannes -- 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