|
@@ -142,6 +142,9 @@ ieee80211_rx_radiotap_hdrlen(struct ieee80211_local *local,
|
|
|
/* allocate extra bitmaps */
|
|
/* allocate extra bitmaps */
|
|
|
if (status->chains)
|
|
if (status->chains)
|
|
|
len += 4 * hweight8(status->chains);
|
|
len += 4 * hweight8(status->chains);
|
|
|
|
|
+ /* vendor presence bitmap */
|
|
|
|
|
+ if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA)
|
|
|
|
|
+ len += 4;
|
|
|
|
|
|
|
|
if (ieee80211_have_rx_timestamp(status)) {
|
|
if (ieee80211_have_rx_timestamp(status)) {
|
|
|
len = ALIGN(len, 8);
|
|
len = ALIGN(len, 8);
|
|
@@ -197,8 +200,6 @@ ieee80211_rx_radiotap_hdrlen(struct ieee80211_local *local,
|
|
|
if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) {
|
|
if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) {
|
|
|
struct ieee80211_vendor_radiotap *rtap = (void *)skb->data;
|
|
struct ieee80211_vendor_radiotap *rtap = (void *)skb->data;
|
|
|
|
|
|
|
|
- /* vendor presence bitmap */
|
|
|
|
|
- len += 4;
|
|
|
|
|
/* alignment for fixed 6-byte vendor data header */
|
|
/* alignment for fixed 6-byte vendor data header */
|
|
|
len = ALIGN(len, 2);
|
|
len = ALIGN(len, 2);
|
|
|
/* vendor data header */
|
|
/* vendor data header */
|