Message ID | 980aa1f8-42c3-4fe4-a930-d930474ad2eb@MAIL1.uni-rostock.de (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Johannes Berg |
Headers | show |
On Fri, 2016-11-11 at 17:37 +0100, Benjamin Beichler wrote: > Due to the cast from uint32_t to int64_t, a wrong next beacon timing > is > calculated and effectively the beacon timer stops to work. This is > especially bad for 802.11s mesh networks, because discovery breaks > without beacons. > Applied. Please note how I changed the commit subject, and use that scheme in the future. johannes
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 8f366cc..8d7b0c6 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -819,7 +819,7 @@ static void mac80211_hwsim_set_tsf(struct ieee80211_hw *hw, data->bcn_delta = do_div(delta, bcn_int); } else { data->tsf_offset -= delta; - data->bcn_delta = -do_div(delta, bcn_int); + data->bcn_delta = -(s64)(do_div(delta, bcn_int)); } }
Due to the cast from uint32_t to int64_t, a wrong next beacon timing is calculated and effectively the beacon timer stops to work. This is especially bad for 802.11s mesh networks, because discovery breaks without beacons. Signed-off-by: Benjamin Beichler <benjamin.beichler@uni-rostock.de> --- drivers/net/wireless/mac80211_hwsim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)