]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
i40e: fix src IP mask checks and memcpy argument names in cloud filter
authorAlok Tiwari <alok.a.tiwari@oracle.com>
Mon, 10 Nov 2025 19:13:38 +0000 (11:13 -0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 10 Mar 2026 20:02:45 +0000 (13:02 -0700)
commite809085f492842ce7a519c9ef72d40f4bca89c13
tree2e1babb630c12f05929cec8875a00987ccb0cc5b
parentfdadbf6e84c44df8dbb85cfdd38bc10e4431501d
i40e: fix src IP mask checks and memcpy argument names in cloud filter

Fix following issues in the IPv4 and IPv6 cloud filter handling logic in
both the add and delete paths:

- The source-IP mask check incorrectly compares mask.src_ip[0] against
  tcf.dst_ip[0]. Update it to compare against tcf.src_ip[0]. This likely
  goes unnoticed because the check is in an "else if" path that only
  executes when dst_ip is not set, most cloud filter use cases focus on
  destination-IP matching, and the buggy condition can accidentally
  evaluate true in some cases.

- memcpy() for the IPv4 source address incorrectly uses
  ARRAY_SIZE(tcf.dst_ip) instead of ARRAY_SIZE(tcf.src_ip), although
  both arrays are the same size.

- The IPv4 memcpy operations used ARRAY_SIZE(tcf.dst_ip) and ARRAY_SIZE
  (tcf.src_ip), Update these to use sizeof(cfilter->ip.v4.dst_ip) and
  sizeof(cfilter->ip.v4.src_ip) to ensure correct and explicit copy size.

- In the IPv6 delete path, memcmp() uses sizeof(src_ip6) when comparing
  dst_ip6 fields. Replace this with sizeof(dst_ip6) to make the intent
  explicit, even though both fields are struct in6_addr.

Fixes: e284fc280473 ("i40e: Add and delete cloud filter")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c