[PATCH 3.16 085/133] mac80211_hwsim: Use proper TX power

From: Ben Hutchings
Date: Tue Nov 21 2017 - 21:32:47 EST


3.16.51-rc1 review patch. If anyone has any objections, please let me know.

------------------

From: Beni Lev <beni.lev@xxxxxxxxx>

commit 9de981f507474f326e42117858dc9a9321331ae5 upstream.

In struct ieee80211_tx_info, control.vif pointer and rate_driver_data[0]
falls on the same place, depending on the union usage.
During the whole TX process, the union is referred to as a control struct,
which holds the vif that is later used in the tx flow, especially in order
to derive the used tx power.
Referring direcly to rate_driver_data[0] and assigning a value to it,
overwrites the vif pointer, hence making all later references irrelevant.
Moreover, rate_driver_data[0] isn't used later in the flow in order to
retrieve the channel that it is pointing to.

Signed-off-by: Beni Lev <beni.lev@xxxxxxxxx>
Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
drivers/net/wireless/mac80211_hwsim.c | 2 --
1 file changed, 2 deletions(-)

--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -1122,7 +1122,6 @@ static void mac80211_hwsim_tx(struct iee
txi->control.rates,
ARRAY_SIZE(txi->control.rates));

- txi->rate_driver_data[0] = channel;
mac80211_hwsim_monitor_rx(hw, skb, channel);

/* wmediumd mode check */