wifi: iwlwifi: mvm: don't set CHECKSUM_COMPLETE for unsupported protocols
authorAvraham Stern <avraham.stern@intel.com>
Thu, 13 Apr 2023 07:44:15 +0000 (10:44 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:03:22 +0000 (23:03 +0900)
[ Upstream commit 217f3c52f00d3419ecdd38a99a7eceecb11679b2 ]

On Bz devices, CHECKSUM_COMPLETE was set for unsupported protocols
which results in a warning. Fix it.

Fixes: b6f5b647f694 ("iwlwifi: mvm: handle RX checksum on Bz devices")
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230413102635.a2a35286f0ca.I50daa9445a6465514c44f5096c32adef64beba5f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index 1aadccd..0912258 100644 (file)
@@ -193,8 +193,7 @@ static int iwl_mvm_create_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
         * Starting from Bz hardware, it calculates starting directly after
         * the MAC header, so that matches mac80211's expectation.
         */
-       if (skb->ip_summed == CHECKSUM_COMPLETE &&
-           mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_BZ) {
+       if (skb->ip_summed == CHECKSUM_COMPLETE) {
                struct {
                        u8 hdr[6];
                        __be16 type;
@@ -209,7 +208,7 @@ static int iwl_mvm_create_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
                              shdr->type != htons(ETH_P_PAE) &&
                              shdr->type != htons(ETH_P_TDLS))))
                        skb->ip_summed = CHECKSUM_NONE;
-               else
+               else if (mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_BZ)
                        /* mac80211 assumes full CSUM including SNAP header */
                        skb_postpush_rcsum(skb, shdr, sizeof(*shdr));
        }