]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
i40e: don't advertise IFF_SUPP_NOFCS
authorKohei Enju <kohei@enjuk.jp>
Fri, 17 Apr 2026 00:53:33 +0000 (17:53 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 18 Apr 2026 19:01:34 +0000 (12:01 -0700)
i40e advertises IFF_SUPP_NOFCS, allowing users to use the SO_NOFCS
socket option. However, this option is silently ignored, as the driver
does not check skb->no_fcs, and always enables FCS insertion offload.

Fix this by removing the advertisement of IFF_SUPP_NOFCS.

This behavior can be reproduced with a simple AF_PACKET socket:

  import socket
  s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
  s.setsockopt(socket.SOL_SOCKET, 43, 1) # SO_NOFCS
  s.bind(("eth0", 0))
  s.send(b'\xff' * 64)

Previously, send() succeeds but the driver ignores SO_NOFCS.
With this change, send() fails with -EPROTONOSUPPORT, as expected.

Fixes: 41c445ff0f48 ("i40e: main driver core")
Signed-off-by: Kohei Enju <kohei@enjuk.jp>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Sunitha Mekala <sunithax.d.mekala@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20260416-iwl-net-submission-2026-04-14-v2-9-686c33c9828d@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 926d001b215020a18a9e56a3dee1af48d1c3ff03..028bd500603a5448dc1d8a8102b3899ba557f8a4 100644 (file)
@@ -13783,7 +13783,6 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
        netdev->neigh_priv_len = sizeof(u32) * 4;
 
        netdev->priv_flags |= IFF_UNICAST_FLT;
-       netdev->priv_flags |= IFF_SUPP_NOFCS;
        /* Setup netdev TC information */
        i40e_vsi_config_netdev_tc(vsi, vsi->tc_config.enabled_tc);