mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7915: fix possible unaligned access in mt7915_mac_add_twt_setup
Fix possible unaligned pointer in mt7915_mac_add_twt_setup routine. Reported-by: kernel test robot <[email protected]> Fixes: 3782b69d03e71 ("mt76: mt7915: introduce mt7915_mac_add_twt_setup routine") Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
206c7ebd74
commit
bf79f5d73e
+6
-4
@@ -2071,8 +2071,9 @@ void mt7915_mac_add_twt_setup(struct ieee80211_hw *hw,
|
||||
}
|
||||
|
||||
flowid = ffs(~msta->twt.flowid_mask) - 1;
|
||||
le16p_replace_bits(&twt_agrt->req_type, flowid,
|
||||
IEEE80211_TWT_REQTYPE_FLOWID);
|
||||
twt_agrt->req_type &= ~cpu_to_le16(IEEE80211_TWT_REQTYPE_FLOWID);
|
||||
twt_agrt->req_type |= le16_encode_bits(flowid,
|
||||
IEEE80211_TWT_REQTYPE_FLOWID);
|
||||
|
||||
table_id = ffs(~dev->twt.table_mask) - 1;
|
||||
exp = FIELD_GET(IEEE80211_TWT_REQTYPE_WAKE_INT_EXP, req_type);
|
||||
@@ -2122,8 +2123,9 @@ void mt7915_mac_add_twt_setup(struct ieee80211_hw *hw,
|
||||
unlock:
|
||||
mutex_unlock(&dev->mt76.mutex);
|
||||
out:
|
||||
le16p_replace_bits(&twt_agrt->req_type, setup_cmd,
|
||||
IEEE80211_TWT_REQTYPE_SETUP_CMD);
|
||||
twt_agrt->req_type &= ~cpu_to_le16(IEEE80211_TWT_REQTYPE_SETUP_CMD);
|
||||
twt_agrt->req_type |=
|
||||
le16_encode_bits(setup_cmd, IEEE80211_TWT_REQTYPE_SETUP_CMD);
|
||||
twt->control = (twt->control & IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT) |
|
||||
(twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user