[Devel] [PATCH VZ10] core: allow to bypass rhel pci blacklist
Alexey Kuznetsov
kuznet at virtuozzo.com
Tue Sep 15 19:02:20 MSK 2026
Enforcing blacklist was rude decision from rhel side.
It makes it impossible to boot release kernels on some of our
lab equipment.
The patch removes from blacklist one and only one specific
device, it is one on Mellanox ConnectX-3 cards. I insist
the removal of ConnectX-3 has no technical ground,
X3 and X4 is the same hardware, their driver is highly
stable and did not even change between rhel9 and 10.
In case they are going to drop entire mlx4 driver,
we have to deal with this, but not now.
Also, kernel option skip_pci_blacklist is added just in case
some real customer hits the same obstacle. I am not sure
it is usable, but at least if the host with blacklisted
hardware has IPMI console it is possible to deploy VZ10 there.
Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
---
kernel/rh_messages.c | 10 ++++++++++
kernel/rh_messages.h | 1 -
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/kernel/rh_messages.c b/kernel/rh_messages.c
index bb69e8965748..db784e0e5c72 100644
--- a/kernel/rh_messages.c
+++ b/kernel/rh_messages.c
@@ -20,6 +20,8 @@
#include <linux/pci.h>
#include "rh_messages.h"
+static bool skip_pci_blacklist;
+
/**
* mark_hardware_unmaintained() - Mark hardware as unmaintained.
* @driver_name: driver name
@@ -164,6 +166,12 @@ static bool __maybe_unused pci_hw_disabled(struct pci_dev *dev)
if (!ret)
return false;
+ if (skip_pci_blacklist) {
+ mark_hardware_deprecated(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
+ dev->device, dev->vendor, pci_name(dev));
+ return false;
+ }
+
mark_hardware_disabled(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
dev->device, dev->vendor, pci_name(dev));
return true;
@@ -383,6 +391,8 @@ bool __maybe_unused pci_rh_check_status(struct pci_dev *pci_dev)
}
#endif
+core_param(skip_pci_blacklist, skip_pci_blacklist, bool, 0644);
+
/** module_rh_check_status - checks the status of a module.
* @module_name: Name of module to be examined
*
diff --git a/kernel/rh_messages.h b/kernel/rh_messages.h
index 05ad12af6a6d..9a184a9fa659 100644
--- a/kernel/rh_messages.h
+++ b/kernel/rh_messages.h
@@ -265,7 +265,6 @@ static const struct pci_device_id rh_disabled_pci_devices[] = {
{ 0x15B3, 0x1004, PCI_ANY_ID, PCI_ANY_ID },
{ 0x15B3, 0x1005, PCI_ANY_ID, PCI_ANY_ID },
{ 0x15B3, 0x1006, PCI_ANY_ID, PCI_ANY_ID },
- { 0x15B3, 0x1007, PCI_ANY_ID, PCI_ANY_ID },
{ 0x15B3, 0x1008, PCI_ANY_ID, PCI_ANY_ID },
{ 0x15B3, 0x1009, PCI_ANY_ID, PCI_ANY_ID },
{ 0x15B3, 0x100a, PCI_ANY_ID, PCI_ANY_ID },
--
2.43.0
More information about the Devel
mailing list