git: d86bdbbb92ca - main - mlx5/linuxkpi: Add MLX5_PCI_DEV_IS_VF to mlx5_core_pci_table
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 16 Sep 2026 14:12:53 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=d86bdbbb92cae35f37fd33ba163b65f5d50c867c
commit d86bdbbb92cae35f37fd33ba163b65f5d50c867c
Author: Vag Singh <vag.singh@oneconvergence.com>
AuthorDate: 2025-08-14 05:50:08 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-09-16 14:12:07 +0000
mlx5/linuxkpi: Add MLX5_PCI_DEV_IS_VF to mlx5_core_pci_table
[PATCH 11/31] FreeBSD OFED support for DPDK MLX5 PMD
The MLX5 core driver recognizes a VF device as a PF device
in FreeBSD VM, because mlx5_core_pci_table was not having VF
flag MLX5_PCI_DEV_IS_VF. Added MLX5_PCI_DEV_IS_VF flag in
mlx5_core_pci_table.
Updated PCI_VDEVICE macro in LinuxKPI for class and class_mask,
same as linux.
Differential revision: https://reviews.freebsd.org/D32185
MFC after: 1 month
---
sys/compat/linuxkpi/common/include/linux/pci.h | 2 +-
sys/dev/mlx5/mlx5_core/mlx5_main.c | 32 +++++++++++++-------------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h
index 8ecc4caaca70..4cdc68412adb 100644
--- a/sys/compat/linuxkpi/common/include/linux/pci.h
+++ b/sys/compat/linuxkpi/common/include/linux/pci.h
@@ -98,7 +98,7 @@ MODULE_PNP_INFO("U32:vendor;U32:device;V32:subvendor;V32:subdevice", \
#define PCI_VDEVICE(_vendor, _device) \
.vendor = PCI_VENDOR_ID_##_vendor, .device = (_device), \
- .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
+ .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
#define PCI_DEVICE(_vendor, _device) \
.vendor = (_vendor), .device = (_device), \
.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
diff --git a/sys/dev/mlx5/mlx5_core/mlx5_main.c b/sys/dev/mlx5/mlx5_core/mlx5_main.c
index 32e6ba9b509d..0b4c4d49ff7d 100644
--- a/sys/dev/mlx5/mlx5_core/mlx5_main.c
+++ b/sys/dev/mlx5/mlx5_core/mlx5_main.c
@@ -2111,21 +2111,21 @@ static void shutdown_one(struct pci_dev *pdev)
* contrib/ofed/libmlx5/mlx5.c or libibverbs will reject the device.
*/
static const struct pci_device_id mlx5_core_pci_table[] = {
- { PCI_VDEVICE(MELLANOX, 4113) }, /* Connect-IB */
- { PCI_VDEVICE(MELLANOX, 4114) }, /* Connect-IB VF */
- { PCI_VDEVICE(MELLANOX, 4115) }, /* ConnectX-4 */
- { PCI_VDEVICE(MELLANOX, 4116) }, /* ConnectX-4 VF */
- { PCI_VDEVICE(MELLANOX, 4117) }, /* ConnectX-4LX */
- { PCI_VDEVICE(MELLANOX, 4118) }, /* ConnectX-4LX VF */
- { PCI_VDEVICE(MELLANOX, 4119) }, /* ConnectX-5, PCIe 3.0 */
- { PCI_VDEVICE(MELLANOX, 4120) }, /* ConnectX-5 VF */
- { PCI_VDEVICE(MELLANOX, 4121) }, /* ConnectX-5 Ex */
- { PCI_VDEVICE(MELLANOX, 4122) }, /* ConnectX-5 Ex VF */
- { PCI_VDEVICE(MELLANOX, 4123) }, /* ConnectX-6 */
- { PCI_VDEVICE(MELLANOX, 4124) }, /* ConnectX-6 VF */
- { PCI_VDEVICE(MELLANOX, 4125) }, /* ConnectX-6 Dx */
- { PCI_VDEVICE(MELLANOX, 4126) }, /* ConnectX Family mlx5Gen Virtual Function */
- { PCI_VDEVICE(MELLANOX, 4127) }, /* ConnectX-6 LX */
+ { PCI_VDEVICE(MELLANOX, 4113) }, /* Connect-IB */
+ { PCI_VDEVICE(MELLANOX, 4114), MLX5_PCI_DEV_IS_VF}, /* Connect-IB VF */
+ { PCI_VDEVICE(MELLANOX, 4115) }, /* ConnectX-4 */
+ { PCI_VDEVICE(MELLANOX, 4116), MLX5_PCI_DEV_IS_VF}, /* ConnectX-4 VF */
+ { PCI_VDEVICE(MELLANOX, 4117) }, /* ConnectX-4LX */
+ { PCI_VDEVICE(MELLANOX, 4118), MLX5_PCI_DEV_IS_VF}, /* ConnectX-4LX VF */
+ { PCI_VDEVICE(MELLANOX, 4119) }, /* ConnectX-5, PCIe 3.0 */
+ { PCI_VDEVICE(MELLANOX, 4120), MLX5_PCI_DEV_IS_VF}, /* ConnectX-5 VF */
+ { PCI_VDEVICE(MELLANOX, 4121) }, /* ConnectX-5 Ex */
+ { PCI_VDEVICE(MELLANOX, 4122), MLX5_PCI_DEV_IS_VF}, /* ConnectX-5 Ex VF */
+ { PCI_VDEVICE(MELLANOX, 4123) }, /* ConnectX-6 */
+ { PCI_VDEVICE(MELLANOX, 4124), MLX5_PCI_DEV_IS_VF}, /* ConnectX-6 VF */
+ { PCI_VDEVICE(MELLANOX, 4125) }, /* ConnectX-6 Dx */
+ { PCI_VDEVICE(MELLANOX, 4126), MLX5_PCI_DEV_IS_VF}, /* ConnectX Family mlx5Gen Virtual Function */
+ { PCI_VDEVICE(MELLANOX, 4127) }, /* ConnectX-6 LX */
{ PCI_VDEVICE(MELLANOX, 4128) },
{ PCI_VDEVICE(MELLANOX, 4129) }, /* ConnectX-7 */
{ PCI_VDEVICE(MELLANOX, 4130) },
@@ -2144,7 +2144,7 @@ static const struct pci_device_id mlx5_core_pci_table[] = {
{ PCI_VDEVICE(MELLANOX, 4143) },
{ PCI_VDEVICE(MELLANOX, 4144) },
{ PCI_VDEVICE(MELLANOX, 0xa2d2) }, /* BlueField integrated ConnectX-5 network controller */
- { PCI_VDEVICE(MELLANOX, 0xa2d3) }, /* BlueField integrated ConnectX-5 network controller VF */
+ { PCI_VDEVICE(MELLANOX, 0xa2d3), MLX5_PCI_DEV_IS_VF }, /* BlueField integrated ConnectX-5 network controller VF */
{ PCI_VDEVICE(MELLANOX, 0xa2d6) }, /* BlueField-2 integrated ConnectX-6 Dx network controller */
{ PCI_VDEVICE(MELLANOX, 0xa2dc) }, /* BlueField-3 integrated ConnectX-7 network controller */
{ PCI_VDEVICE(MELLANOX, 0xa2df) }, /* BlueField-4 Family integrated network controller */