wifi: iwlwifi: mvm: always set MH len in offload_assist
Some versions of the new hardware don't have a functional version of the new offload method, but still have stricter checks on the MAC header (MH) length in the offload assist word. Include that even if checksumming isn't offloaded to hardware. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230612184434.bba713f7495a.Idbc8e3ce313b51af4060326e0191bd338b3163a2@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
2b69d242e2
commit
af8bfc7e38
@ -44,9 +44,9 @@ static u16 iwl_mvm_tx_csum_pre_bz(struct iwl_mvm *mvm, struct sk_buff *skb,
|
||||
struct ieee80211_tx_info *info, bool amsdu)
|
||||
{
|
||||
struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
u16 mh_len = ieee80211_hdrlen(hdr->frame_control);
|
||||
u16 offload_assist = 0;
|
||||
#if IS_ENABLED(CONFIG_INET)
|
||||
u16 mh_len = ieee80211_hdrlen(hdr->frame_control);
|
||||
u8 protocol = 0;
|
||||
|
||||
/* Do not compute checksum if already computed */
|
||||
@ -118,6 +118,8 @@ static u16 iwl_mvm_tx_csum_pre_bz(struct iwl_mvm *mvm, struct sk_buff *skb,
|
||||
else
|
||||
udp_hdr(skb)->check = 0;
|
||||
|
||||
out:
|
||||
#endif
|
||||
/*
|
||||
* mac header len should include IV, size is in words unless
|
||||
* the IV is added by the firmware like in WEP.
|
||||
@ -130,8 +132,6 @@ static u16 iwl_mvm_tx_csum_pre_bz(struct iwl_mvm *mvm, struct sk_buff *skb,
|
||||
mh_len /= 2;
|
||||
offload_assist |= mh_len << TX_CMD_OFFLD_MH_SIZE;
|
||||
|
||||
out:
|
||||
#endif
|
||||
if (amsdu)
|
||||
offload_assist |= BIT(TX_CMD_OFFLD_AMSDU);
|
||||
else if (ieee80211_hdrlen(hdr->frame_control) % 4)
|
||||
|
Loading…
x
Reference in New Issue
Block a user