Search Linux Wireless

Re: [PATCH V3 1/9] nl80211: allow multiple active scheduled scan requests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/25/2017 9:49 PM, 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 ...

Agree. I don't like the allocation overhead either for deferred processing in another context.

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

Sure. In the worker we are already iterating so I guess we could. The number of internal fields in struct cfg80211_sched_scan_request with one of them being the list_head. Thinking about hiding those from the drivers. Is it worth it?

Regards,
Arend



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux