> 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 ... > + 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? johannes