On Tue, 2017-04-25 at 21:49 +0200, Johannes Berg wrote: > > if (schedule_destroy_work) { > > - struct cfg80211_iface_destroy *destroy; > > + struct cfg80211_nlport_release *destroy; > > > > destroy = kzalloc(sizeof(*destroy), > > GFP_ATOMIC); > > I was never really happy with this allocation and really want to get > rid of it ... Done :) > > + if (schedule_sched_stop_work) { > > + struct cfg80211_nlport_release *destroy; > > + > > + destroy = kzalloc(sizeof(*destroy), > > GFP_ATOMIC); > > + if (destroy) { > > + destroy->nlportid = notify- > > >portid; > > + spin_lock(&rdev- > > > sched_stop_list_lock); > > > > + list_add(&destroy->list, &rdev- > > > sched_stop_list); > > > > + spin_unlock(&rdev- > > > sched_stop_list_lock); > > > > + schedule_work(&rdev- > > > sched_scan_stop_wk); > > > > + } > > + } > > Can't we set some kind of flag in the struct > cfg80211_sched_scan_request and iterate through them later again, > checking which need to be destroyed? Easy enough - I'll also do that. johannes