From: Jakub Kicinski Date: Thu, 2 Apr 2026 18:28:23 +0000 (-0700) Subject: Merge branch 'net-stmmac-tso-fixes-cleanups' X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f35340f2d653f1003602878403c901396ab03c17;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'net-stmmac-tso-fixes-cleanups' Russell King says: ==================== net: stmmac: TSO fixes/cleanups This is a more refined version of the previous patch series fixing and cleaning up the TSO code. I'm not sure whether "TSO" or "GSO" should be used to describe this feature - although it primarily handles TCP, dwmac4 appears to also be able to handle UDP. In essence, this series adds a .ndo_features_check() method to handle whether TSO/GSO can be used for a particular skbuff - checking which queue the skbuff is destined for and whether that has TBS available which precludes TSO being enabled on that channel. I'm also adding a check that the header is smaller than 1024 bytes, as documented in those sources which have TSO support - this is due to the hardware buffering the header in "TSO memory" which I guess is limited to 1KiB. I expect this test never to trigger, but if the headers ever exceed that size, the hardware will likely fail. While IPv4 headers are unlikely to be anywhere near this, there is nothing in the protocol which prevents IPv6 headers up to 64KiB. As we now have a .ndo_features_check() method, I'm moving the VLAN insertion for TSO packets into core code by unpublishing the VLAN insertion features when we use TSO. Another move is for checksumming, which is required for TSO, but stmmac's requirements for offloading checksums are more strict - and this seems to be a bug in the TSO path. I've changed the hardware initialisation to always enable TSO support on the channels even if the user requests TSO/GSO to be disabled - this fixes another issue as pointed out by Jakub in a previous review. I'm moving the setup of the GSO features, cleaning those up, and adding a warning if platform glue requests this to be enabled but the hardware has no support. Hopefully this will never trigger if everyone got the STMMAC_FLAG_TSO_EN flag correct. Also adding a check for TxPBL value. Finally, moving the "TSO supported" message to the new stmmac_set_gso_features() function so keep all this TSO stuff together. ==================== Link: https://patch.msgid.link/aczHVF04LIGq_lYO@shell.armlinux.org.uk Signed-off-by: Jakub Kicinski --- f35340f2d653f1003602878403c901396ab03c17