linux/drivers/net/ethernet/intel/ixgbevf
Jedrzej Jagielski a7075f501b ixgbevf: fix mailbox API compatibility by negotiating supported features
There was backward compatibility in the terms of mailbox API. Various
drivers from various OSes supporting 10G adapters from Intel portfolio
could easily negotiate mailbox API.

This convention has been broken since introducing API 1.4.
Commit 0062e7cc95 ("ixgbevf: add VF IPsec offload code") added support
for IPSec which is specific only for the kernel ixgbe driver. None of the
rest of the Intel 10G PF/VF drivers supports it. And actually lack of
support was not included in the IPSec implementation - there were no such
code paths. No possibility to negotiate support for the feature was
introduced along with introduction of the feature itself.

Commit 339f289641 ("ixgbevf: Add support for new mailbox communication
between PF and VF") increasing API version to 1.5 did the same - it
introduced code supported specifically by the PF ESX driver. It altered API
version for the VF driver in the same time not touching the version
defined for the PF ixgbe driver. It led to additional discrepancies,
as the code provided within API 1.6 cannot be supported for Linux ixgbe
driver as it causes crashes.

The issue was noticed some time ago and mitigated by Jake within the commit
d0725312ad ("ixgbevf: stop attempting IPSEC offload on Mailbox API 1.5").
As a result we have regression for IPsec support and after increasing API
to version 1.6 ixgbevf driver stopped to support ESX MBX.

To fix this mess add new mailbox op asking PF driver about supported
features. Basing on a response determine whether to set support for IPSec
and ESX-specific enhanced mailbox.

New mailbox op, for compatibility purposes, must be added within new API
revision, as API version of OOT PF & VF drivers is already increased to
1.6 and doesn't incorporate features negotiate op.

Features negotiation mechanism gives possibility to be extended with new
features when needed in the future.

Reported-by: Jacob Keller <jacob.e.keller@intel.com>
Closes: https://lore.kernel.org/intel-wired-lan/20241101-jk-ixgbevf-mailbox-v1-5-fixes-v1-0-f556dc9a66ed@intel.com/
Fixes: 0062e7cc95 ("ixgbevf: add VF IPsec offload code")
Fixes: 339f289641 ("ixgbevf: Add support for new mailbox communication between PF and VF")
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20251009-jk-iwl-net-2025-10-01-v3-4-ef32a425b92a@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-10-13 17:44:48 -07:00
..
Makefile net: intel: Use *-y instead of *-objs in Makefile 2024-06-10 19:52:44 -07:00
defines.h ixgbevf: fix getting link speed data for E610 devices 2025-10-13 17:44:48 -07:00
ethtool.c eth: intel: use vmalloc_array() to simplify code 2025-08-18 17:49:51 -07:00
ipsec.c ixgbevf: fix mailbox API compatibility by negotiating supported features 2025-10-13 17:44:48 -07:00
ipsec.h
ixgbevf.h ixgbevf: fix mailbox API compatibility by negotiating supported features 2025-10-13 17:44:48 -07:00
ixgbevf_main.c ixgbevf: fix mailbox API compatibility by negotiating supported features 2025-10-13 17:44:48 -07:00
mbx.c ixgbevf: Remove unused ixgbevf_hv_mbx_ops 2025-01-07 17:43:47 -08:00
mbx.h ixgbevf: fix mailbox API compatibility by negotiating supported features 2025-10-13 17:44:48 -07:00
regs.h
vf.c ixgbevf: fix mailbox API compatibility by negotiating supported features 2025-10-13 17:44:48 -07:00
vf.h ixgbevf: fix mailbox API compatibility by negotiating supported features 2025-10-13 17:44:48 -07:00