reg.c (b22552fcaf1970360005c805d7fba4046cf2ab4a) reg.c (e8c2af660ba0790afd14d5cbc2fd05c6dc85e207)
1/*
2 * Copyright 2002-2005, Instant802 Networks, Inc.
3 * Copyright 2005-2006, Devicescape Software, Inc.
4 * Copyright 2007 Johannes Berg <johannes@sipsolutions.net>
5 * Copyright 2008-2011 Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
6 * Copyright 2013-2014 Intel Mobile Communications GmbH
7 * Copyright 2017 Intel Deutschland GmbH
8 * Copyright (C) 2018 - 2022 Intel Corporation

--- 2377 unchanged lines hidden (view full) ---

2386 cfg80211_chandef_create(&chandef, chan,
2387 NL80211_CHAN_NO_HT);
2388 break;
2389 case NL80211_IFTYPE_MONITOR:
2390 case NL80211_IFTYPE_AP_VLAN:
2391 case NL80211_IFTYPE_P2P_DEVICE:
2392 /* no enforcement required */
2393 break;
1/*
2 * Copyright 2002-2005, Instant802 Networks, Inc.
3 * Copyright 2005-2006, Devicescape Software, Inc.
4 * Copyright 2007 Johannes Berg <johannes@sipsolutions.net>
5 * Copyright 2008-2011 Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
6 * Copyright 2013-2014 Intel Mobile Communications GmbH
7 * Copyright 2017 Intel Deutschland GmbH
8 * Copyright (C) 2018 - 2022 Intel Corporation

--- 2377 unchanged lines hidden (view full) ---

2386 cfg80211_chandef_create(&chandef, chan,
2387 NL80211_CHAN_NO_HT);
2388 break;
2389 case NL80211_IFTYPE_MONITOR:
2390 case NL80211_IFTYPE_AP_VLAN:
2391 case NL80211_IFTYPE_P2P_DEVICE:
2392 /* no enforcement required */
2393 break;
2394 case NL80211_IFTYPE_OCB:
2395 if (!wdev->u.ocb.chandef.chan)
2396 continue;
2397 chandef = wdev->u.ocb.chandef;
2398 break;
2399 case NL80211_IFTYPE_NAN:
2400 /* we have no info, but NAN is also pretty universal */
2401 continue;
2394 default:
2395 /* others not implemented for now */
2402 default:
2403 /* others not implemented for now */
2396 WARN_ON(1);
2404 WARN_ON_ONCE(1);
2397 break;
2398 }
2399
2400 wdev_unlock(wdev);
2401
2402 switch (iftype) {
2403 case NL80211_IFTYPE_AP:
2404 case NL80211_IFTYPE_P2P_GO:

--- 42 unchanged lines hidden (view full) ---

2447static void reg_check_chans_work(struct work_struct *work)
2448{
2449 struct cfg80211_registered_device *rdev;
2450
2451 pr_debug("Verifying active interfaces after reg change\n");
2452 rtnl_lock();
2453
2454 list_for_each_entry(rdev, &cfg80211_rdev_list, list)
2405 break;
2406 }
2407
2408 wdev_unlock(wdev);
2409
2410 switch (iftype) {
2411 case NL80211_IFTYPE_AP:
2412 case NL80211_IFTYPE_P2P_GO:

--- 42 unchanged lines hidden (view full) ---

2455static void reg_check_chans_work(struct work_struct *work)
2456{
2457 struct cfg80211_registered_device *rdev;
2458
2459 pr_debug("Verifying active interfaces after reg change\n");
2460 rtnl_lock();
2461
2462 list_for_each_entry(rdev, &cfg80211_rdev_list, list)
2455 if (!(rdev->wiphy.regulatory_flags &
2456 REGULATORY_IGNORE_STALE_KICKOFF))
2457 reg_leave_invalid_chans(&rdev->wiphy);
2463 reg_leave_invalid_chans(&rdev->wiphy);
2458
2459 rtnl_unlock();
2460}
2461
2462static void reg_check_channels(void)
2463{
2464 /*
2465 * Give usermode a chance to do something nicer (move to another

--- 1904 unchanged lines hidden ---
2464
2465 rtnl_unlock();
2466}
2467
2468static void reg_check_channels(void)
2469{
2470 /*
2471 * Give usermode a chance to do something nicer (move to another

--- 1904 unchanged lines hidden ---