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