On Tue, 2017-02-14 at 13:35 +0100, Arend Van Spriel wrote: > On 24-1-2017 10:40, Johannes Berg wrote: > > > > > + * @max_sched_scan_reqs: maximum number of scheduled scan > > > requests > > > that > > > + * the device can run concurrently. > > > > Perhaps we should get rid of WIPHY_FLAG_SUPPORTS_SCHED_SCAN and > > just > > set this to 1 for such devices? Otherwise we have two different > > requirements, and we need to track that 0 is an invalid value here > > if > > WIPHY_FLAG_SUPPORTS_SCHED_SCAN is set, or something like that? > > Ok. Doesn't that cause issues in user-space. Or do you only want to > get rid of it in cfg80211 api and report the flag to user-space when > max_sched_scan_reqs equals 1? WIPHY_FLAG_* aren't directly reported to userspace at all. > > This might break older userspace - you'll have to put it in a later > > portion of the code. > > > > I'm also a bit surprised the attributes aren't actually optional > > for when sched scan isn't supported, I'd make the new one optional > > and I guess we can fix the others later too, if desired. > > Why would it break user-space. Is the order in which attributes are > added into the stream something user-space relies on. No. But there was a size limit on how much older userspace could process before we did the splitting. > > > +static struct cfg80211_sched_scan_request * > > > +cfg80211_find_sched_scan_req(struct cfg80211_registered_device > > > *rdev, u64 reqid) > > > +{ > > > + struct cfg80211_sched_scan_request *pos; > > > + > > > + list_for_each_entry(pos, &rdev->sched_scan_req_list, > > > list) { > > > + if (pos->reqid == reqid) > > > + return pos; > > > + } > > > + return ERR_PTR(-ENOENT); > > > +} > > > > Here too, I guess, since you don't actually use RCU. > > So should I use RCU here? Not sure what is the better choice here. No no, I just meant to add locking assertions :) johannes