scan.c (5cbc95a749c5f3b238af0953881edede9bfe5bf6) | scan.c (2726f23d2d3775668f00b9a884eb88cd8812917c) |
---|---|
1/* 2 * Scanning implementation 3 * 4 * Copyright 2003, Jouni Malinen <jkmaline@cc.hut.fi> 5 * Copyright 2004, Instant802 Networks, Inc. 6 * Copyright 2005, Devicescape Software, Inc. 7 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 8 * Copyright 2007, Michael Wu <flamingice@sourmilk.net> --- 491 unchanged lines hidden (view full) --- 500static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata, 501 struct cfg80211_scan_request *req) 502{ 503 struct ieee80211_local *local = sdata->local; 504 int rc; 505 506 lockdep_assert_held(&local->mtx); 507 | 1/* 2 * Scanning implementation 3 * 4 * Copyright 2003, Jouni Malinen <jkmaline@cc.hut.fi> 5 * Copyright 2004, Instant802 Networks, Inc. 6 * Copyright 2005, Devicescape Software, Inc. 7 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 8 * Copyright 2007, Michael Wu <flamingice@sourmilk.net> --- 491 unchanged lines hidden (view full) --- 500static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata, 501 struct cfg80211_scan_request *req) 502{ 503 struct ieee80211_local *local = sdata->local; 504 int rc; 505 506 lockdep_assert_held(&local->mtx); 507 |
508 if (local->scan_req) | 508 if (local->scan_req || ieee80211_is_radar_required(local)) |
509 return -EBUSY; 510 511 if (!ieee80211_can_scan(local, sdata)) { 512 /* wait for the work to finish/time out */ 513 rcu_assign_pointer(local->scan_req, req); 514 rcu_assign_pointer(local->scan_sdata, sdata); 515 return 0; 516 } --- 683 unchanged lines hidden --- | 509 return -EBUSY; 510 511 if (!ieee80211_can_scan(local, sdata)) { 512 /* wait for the work to finish/time out */ 513 rcu_assign_pointer(local->scan_req, req); 514 rcu_assign_pointer(local->scan_sdata, sdata); 515 return 0; 516 } --- 683 unchanged lines hidden --- |