wifi: iwlwifi: mvm: show skb_mac_gso_segment() failure reason
authorJohannes Berg <johannes.berg@intel.com>
Tue, 6 Feb 2024 16:02:11 +0000 (18:02 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 8 Feb 2024 14:00:49 +0000 (15:00 +0100)
If this warning triggers we don't really know why, print out
the return value so we can see it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240206175739.b1b907741e85.Ib8ee9c90bd8f1af69969981ff0c63e9cc3123e1f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c

index f401cd6ef3ac31827780450b9ec65863125beec4..cc73d7d7de7d012cf2af159e4babee67f602d1c0 100644 (file)
@@ -939,9 +939,15 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes,
        next = skb_gso_segment(skb, netdev_flags);
        skb_shinfo(skb)->gso_size = mss;
        skb_shinfo(skb)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
-       if (WARN_ON_ONCE(IS_ERR(next)))
-               return -EINVAL;
-       else if (next)
+
+       if (IS_ERR(next) && PTR_ERR(next) == -ENOMEM)
+               return -ENOMEM;
+
+       if (WARN_ONCE(IS_ERR(next),
+                     "skb_gso_segment error: %d\n", (int)PTR_ERR(next)))
+               return PTR_ERR(next);
+
+       if (next)
                consume_skb(skb);
 
        skb_list_walk_safe(next, tmp, next) {