History

mac80211: fix struct ieee80211_tx_info size

The size of the status_driver_data field was not adjusted when the is_valid_ack_signal field was added. Since the size of struct ieee80211_tx_info is limited, replace the is_valid_ack_signal field with a flags field, and adjust the struct size accordingly.

Avraham Stern committed 4 years ago

Commit ea5907d1 parent 97634ef5 files · +28 −12Browse files

Showing the changes to include (1 of 5 files). Show all

Unified · Split

include/net/mac80211.h+15−4
@@ -7,7 +7,7 @@ · 6 unmodified lines
7 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>7 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
8 * Copyright 2013-2014 Intel Mobile Communications GmbH8 * Copyright 2013-2014 Intel Mobile Communications GmbH
9 * Copyright (C) 2015 - 2017 Intel Deutschland GmbH9 * Copyright (C) 2015 - 2017 Intel Deutschland GmbH
10 * Copyright (C) 2018 - 2021 Intel Corporation10 * Copyright (C) 2018 - 2022 Intel Corporation
11 */11 */
12 12
13#ifndef MAC80211_H13#ifndef MAC80211_H
@@ -883,6 +883,17 @@ enum mac80211_tx_control_flags { · 869 unmodified lines
883 IEEE80211_TX_CTRL_DONT_REORDER = BIT(8),883 IEEE80211_TX_CTRL_DONT_REORDER = BIT(8),
884};884};
885 885
886/**
887 * enum mac80211_tx_status_flags - flags to describe transmit status
888 *
889 * @IEEE80211_TX_STATUS_ACK_SIGNAL_VALID: ACK signal is valid
890 *
891 * These flags are used in tx_info->status.flags.
892 */
893enum mac80211_tx_status_flags {
894 IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = BIT(0),
895};
896
886/*897/*
887 * This definition is used as a mask to clear all temporary flags, which are898 * This definition is used as a mask to clear all temporary flags, which are
888 * set by the tx handlers for each transmission attempt by the mac80211 stack.899 * set by the tx handlers for each transmission attempt by the mac80211 stack.
@@ -1046,7 +1057,7 @@ ieee80211_rate_get_vht_nss(const struct ieee80211_tx_rate *rate) · 157 unmodified lines
1046 * @status.antenna: (legacy, kept only for iwlegacy)1057 * @status.antenna: (legacy, kept only for iwlegacy)
1047 * @status.tx_time: airtime consumed for transmission; note this is only1058 * @status.tx_time: airtime consumed for transmission; note this is only
1048 * used for WMM AC, not for airtime fairness1059 * used for WMM AC, not for airtime fairness
1049 * @status.is_valid_ack_signal: ACK signal is valid1060 * @status.flags: status flags, see &enum mac80211_tx_status_flags
1050 * @status.status_driver_data: driver use area1061 * @status.status_driver_data: driver use area
1051 * @ack: union part for pure ACK data1062 * @ack: union part for pure ACK data
1052 * @ack.cookie: cookie for the ACK1063 * @ack.cookie: cookie for the ACK
@@ -1099,8 +1110,8 @@ struct ieee80211_tx_info { · 46 unmodified lines
1099 u8 ampdu_len;1110 u8 ampdu_len;
1100 u8 antenna;1111 u8 antenna;
1101 u16 tx_time;1112 u16 tx_time;
1102 bool is_valid_ack_signal;1113 u8 flags;
1103 void *status_driver_data[19 / sizeof(void *)];1114 void *status_driver_data[18 / sizeof(void *)];
1104 } status;1115 } status;
1105 struct {1116 struct {
1106 struct ieee80211_tx_rate driver_rates[1117 struct ieee80211_tx_rate driver_rates[

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t