Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'mac80211-for-davem-2016-10-27' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211

Johannes Berg says:

====================
Just two fixes:
* a fix to process all events while suspending, so any
potential calls into the driver are done before it is
suspended
* small markup fixes for the sphinx documentation conversion
that's coming into the tree via the doc tree
====================

Signed-off-by: David S. Miller <davem@davemloft.net>

+17 -9
+13 -8
include/net/mac80211.h
··· 811 811 * in the control information, and it will be filled by the rate 812 812 * control algorithm according to what should be sent. For example, 813 813 * if this array contains, in the format { <idx>, <count> } the 814 - * information 814 + * information:: 815 + * 815 816 * { 3, 2 }, { 2, 2 }, { 1, 4 }, { -1, 0 }, { -1, 0 } 817 + * 816 818 * then this means that the frame should be transmitted 817 819 * up to twice at rate 3, up to twice at rate 2, and up to four 818 820 * times at rate 1 if it doesn't get acknowledged. Say it gets 819 821 * acknowledged by the peer after the fifth attempt, the status 820 - * information should then contain 822 + * information should then contain:: 823 + * 821 824 * { 3, 2 }, { 2, 2 }, { 1, 1 }, { -1, 0 } ... 825 + * 822 826 * since it was transmitted twice at rate 3, twice at rate 2 823 827 * and once at rate 1 after which we received an acknowledgement. 824 828 */ ··· 1172 1168 * @rate_idx: index of data rate into band's supported rates or MCS index if 1173 1169 * HT or VHT is used (%RX_FLAG_HT/%RX_FLAG_VHT) 1174 1170 * @vht_nss: number of streams (VHT only) 1175 - * @flag: %RX_FLAG_* 1176 - * @vht_flag: %RX_VHT_FLAG_* 1171 + * @flag: %RX_FLAG_\* 1172 + * @vht_flag: %RX_VHT_FLAG_\* 1177 1173 * @rx_flags: internal RX flags for mac80211 1178 1174 * @ampdu_reference: A-MPDU reference number, must be a different value for 1179 1175 * each A-MPDU but the same for each subframe within one A-MPDU ··· 1436 1432 * @probe_req_reg: probe requests should be reported to mac80211 for this 1437 1433 * interface. 1438 1434 * @drv_priv: data area for driver use, will always be aligned to 1439 - * sizeof(void *). 1435 + * sizeof(void \*). 1440 1436 * @txq: the multicast data TX queue (if driver uses the TXQ abstraction) 1441 1437 */ 1442 1438 struct ieee80211_vif { ··· 1747 1743 * @wme: indicates whether the STA supports QoS/WME (if local devices does, 1748 1744 * otherwise always false) 1749 1745 * @drv_priv: data area for driver use, will always be aligned to 1750 - * sizeof(void *), size is determined in hw information. 1746 + * sizeof(void \*), size is determined in hw information. 1751 1747 * @uapsd_queues: bitmap of queues configured for uapsd. Only valid 1752 1748 * if wme is supported. 1753 1749 * @max_sp: max Service Period. Only valid if wme is supported. ··· 2150 2146 * 2151 2147 * @radiotap_mcs_details: lists which MCS information can the HW 2152 2148 * reports, by default it is set to _MCS, _GI and _BW but doesn't 2153 - * include _FMT. Use %IEEE80211_RADIOTAP_MCS_HAVE_* values, only 2149 + * include _FMT. Use %IEEE80211_RADIOTAP_MCS_HAVE_\* values, only 2154 2150 * adding _BW is supported today. 2155 2151 * 2156 2152 * @radiotap_vht_details: lists which VHT MCS information the HW reports, 2157 2153 * the default is _GI | _BANDWIDTH. 2158 - * Use the %IEEE80211_RADIOTAP_VHT_KNOWN_* values. 2154 + * Use the %IEEE80211_RADIOTAP_VHT_KNOWN_\* values. 2159 2155 * 2160 2156 * @radiotap_timestamp: Information for the radiotap timestamp field; if the 2161 2157 * 'units_pos' member is set to a non-negative value it must be set to ··· 2490 2486 * in the software stack cares about, we will, in the future, have mac80211 2491 2487 * tell the driver which information elements are interesting in the sense 2492 2488 * that we want to see changes in them. This will include 2489 + * 2493 2490 * - a list of information element IDs 2494 2491 * - a list of OUIs for the vendor information element 2495 2492 *
+4 -1
net/wireless/sysfs.c
··· 104 104 105 105 rtnl_lock(); 106 106 if (rdev->wiphy.registered) { 107 - if (!rdev->wiphy.wowlan_config) 107 + if (!rdev->wiphy.wowlan_config) { 108 108 cfg80211_leave_all(rdev); 109 + cfg80211_process_rdev_events(rdev); 110 + } 109 111 if (rdev->ops->suspend) 110 112 ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config); 111 113 if (ret == 1) { 112 114 /* Driver refuse to configure wowlan */ 113 115 cfg80211_leave_all(rdev); 116 + cfg80211_process_rdev_events(rdev); 114 117 ret = rdev_suspend(rdev, NULL); 115 118 } 116 119 }