Compare commits

..

No commits in common. 'c9' and 'i8' have entirely different histories.
c9 ... i8

17
.gitignore vendored

@ -1,9 +1,12 @@
SOURCES/kernel-abi-stablelists-5.14.0-503.11.1.el9_5.tar.bz2 SOURCES/centossecureboot201.cer
SOURCES/kernel-kabi-dw-5.14.0-503.11.1.el9_5.tar.bz2 SOURCES/centossecurebootca2.cer
SOURCES/linux-5.14.0-503.11.1.el9_5.tar.xz SOURCES/kernel-abi-stablelists-4.18.0-553.tar.bz2
SOURCES/nvidiagpuoot001.x509 SOURCES/kernel-kabi-dw-4.18.0-553.tar.bz2
SOURCES/linux-4.18.0-553.27.1.el8_10.tar.xz
SOURCES/redhatsecureboot302.cer
SOURCES/redhatsecureboot303.cer
SOURCES/redhatsecureboot501.cer
SOURCES/redhatsecurebootca3.cer
SOURCES/redhatsecurebootca7.cer
SOURCES/rheldup3.x509 SOURCES/rheldup3.x509
SOURCES/rhelima.x509
SOURCES/rhelima_centos.x509
SOURCES/rhelimaca1.x509
SOURCES/rhelkpatch1.x509 SOURCES/rhelkpatch1.x509

@ -1,9 +1,14 @@
927af7163a568ce70316f68da54ea500894ffed7 SOURCES/kernel-abi-stablelists-5.14.0-503.11.1.el9_5.tar.bz2 2ba40bf9138b48311e5aa1b737b7f0a8ad66066f SOURCES/centossecureboot201.cer
08c6779ed0b019164a643fd769e3317ede3f357b SOURCES/kernel-kabi-dw-5.14.0-503.11.1.el9_5.tar.bz2 bfdb3d7cffc43f579655af5155d50c08671d95e5 SOURCES/centossecurebootca2.cer
b588c621a7c19d981dd47549a41207f75bc8b91a SOURCES/linux-5.14.0-503.11.1.el9_5.tar.xz d1cb24b71ee0c1b2078420cfb6c209a4a71cda87 SOURCES/kernel-abi-stablelists-4.18.0-553.tar.bz2
4fff8080e88afffc06d8ef5004db8d53bb21237f SOURCES/nvidiagpuoot001.x509 618f2302d26295e300718d59e8551a0cdfc98022 SOURCES/kernel-kabi-dw-4.18.0-553.tar.bz2
edee5eb28d631dda54509fd86188a4b37d32111d SOURCES/linux-4.18.0-553.27.1.el8_10.tar.xz
13e5cd3f856b472fde80a4deb75f4c18dfb5b255 SOURCES/redhatsecureboot302.cer
e89890ca0ded2f9058651cc5fa838b78db2e6cc2 SOURCES/redhatsecureboot303.cer
ba0b760e594ff668ee72ae348adf3e49b97f75fb SOURCES/redhatsecureboot501.cer
cf9230e69000076727e5b784ec871d22716dc5da SOURCES/redhatsecurebootca3.cer
905d91a282727c7f5ad433a49ac42a0772311c6a SOURCES/redhatsecurebootca7.cer
95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509 95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509
99e571f9de4188f3b5fdf1f84ff73f6cc4bb6a0e SOURCES/rhelima.x509
61d5a223ff0c79189505abae77e0087c4b2d2b47 SOURCES/rhelima_centos.x509
f882610d2554fef65703e5d3c342f005af0390ad SOURCES/rhelimaca1.x509
d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509 d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509
6fd8d9d4fd8cd8a9c40cc9d3d24a2d2501369869 SOURCES/msvspheredup1.x509
ec8fefbe48fe852ade37c1c0683b1796605ba19f SOURCES/msvspherepatch1.x509

@ -0,0 +1,45 @@
From b69db7bed679288a9107d652fd39076dc4dea85c Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Mon, 8 Apr 2024 20:50:39 +0000
Subject: [PATCH 1/5] Enable all disabled pci devices by moving to unmaintained
list
---
kernel/rh_messages.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/kernel/rh_messages.h b/kernel/rh_messages.h
index b7c3be8aa..28b0f3cad 100644
--- a/kernel/rh_messages.h
+++ b/kernel/rh_messages.h
@@ -149,6 +149,14 @@ static const struct pci_device_id rh_deprecated_pci_devices[] = {
};
static const struct pci_device_id rh_disabled_pci_devices[] = {
+ {0} /* Terminating entry */
+};
+
+static const struct pci_device_id rh_unmaintained_pci_devices[] = {
+ { 0x1000, 0x0071, PCI_ANY_ID, PCI_ANY_ID },
+ { 0x1000, 0x0073, PCI_ANY_ID, PCI_ANY_ID },
+ { 0x1000, 0x0079, PCI_ANY_ID, PCI_ANY_ID },
+ { 0x15B3, 0xA2DC, PCI_ANY_ID, PCI_ANY_ID },
{ 0x1011, 0x0046, 0x103c, 0x10c2 },
{ 0x1011, 0x0046, 0x9005, 0x0364 },
{ 0x1011, 0x0046, 0x9005, 0x0365 },
@@ -301,12 +309,4 @@ static const struct pci_device_id rh_disabled_pci_devices[] = {
{0} /* Terminating entry */
};
-static const struct pci_device_id rh_unmaintained_pci_devices[] = {
- { 0x1000, 0x0071, PCI_ANY_ID, PCI_ANY_ID },
- { 0x1000, 0x0073, PCI_ANY_ID, PCI_ANY_ID },
- { 0x1000, 0x0079, PCI_ANY_ID, PCI_ANY_ID },
- { 0x15B3, 0xA2DC, PCI_ANY_ID, PCI_ANY_ID },
- {0} /* Terminating entry */
-};
-
#endif /* __RH_MESSAGES_H */
--
2.27.0

@ -0,0 +1,41 @@
From 50d7888356a1ea1418f15ac75b25457b6d7b3dd8 Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Mon, 8 Apr 2024 20:55:37 +0000
Subject: [PATCH 2/5] Bring back deprecated pci ids to megaraid_sas driver
---
drivers/scsi/megaraid/megaraid_sas_base.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 19a62e595..4ecd40872 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -140,12 +140,24 @@ megasas_set_ld_removed_by_fw(struct megasas_instance *instance);
*/
static struct pci_device_id megasas_pci_table[] = {
+ {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1064R)},
+ /* xscale IOP */
+ {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078R)},
+ /* ppc IOP */
+ {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078DE)},
+ /* ppc IOP */
+ {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078GEN2)},
+ /* gen2*/
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0079GEN2)},
/* gen2*/
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0073SKINNY)},
/* skinny*/
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0071SKINNY)},
/* skinny*/
+ {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_VERDE_ZCR)},
+ /* xscale IOP, vega */
+ {PCI_DEVICE(PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_PERC5)},
+ /* xscale IOP */
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_FUSION)},
/* Fusion */
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_PLASMA)},
--
2.27.0

@ -0,0 +1,65 @@
From 8a5b922edcc3b2973395d4d5407b143ae1d87552 Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Mon, 8 Apr 2024 20:59:22 +0000
Subject: [PATCH 3/5] Bring back deprecated pci ids to mptsas-mptspi driver
---
drivers/message/fusion/mptsas.c | 12 +++++++++++-
drivers/message/fusion/mptspi.c | 10 +++++-----
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 652fed3f8..4c73bf444 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -5353,8 +5353,18 @@ static void mptsas_remove(struct pci_dev *pdev)
}
static struct pci_device_id mptsas_pci_table[] = {
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064,
+ PCI_ANY_ID, PCI_ANY_ID },
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068,
- PCI_VENDOR_ID_VMWARE, PCI_ANY_ID },
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064E,
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068E,
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1078,
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP,
+ PCI_ANY_ID, PCI_ANY_ID },
{0} /* Terminating entry */
};
MODULE_DEVICE_TABLE(pci, mptsas_pci_table);
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index 08acc09f7..9a336a161 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -1245,7 +1245,11 @@ static struct spi_function_template mptspi_transport_functions = {
static struct pci_device_id mptspi_pci_table[] = {
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030,
- PCI_VENDOR_ID_VMWARE, PCI_ANY_ID },
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_ATTO, MPI_MANUFACTPAGE_DEVID_53C1030,
+ PCI_ANY_ID, PCI_ANY_ID },
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1035,
+ PCI_ANY_ID, PCI_ANY_ID },
{0} /* Terminating entry */
};
MODULE_DEVICE_TABLE(pci, mptspi_pci_table);
@@ -1536,10 +1540,6 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
0, 0, 0, 0, 5);
scsi_scan_host(sh);
-
- add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK);
- pr_warn("MPTSPI MODULE IS NOT SUPPORTED\n");
-
return 0;
out_mptspi_probe:
--
2.27.0

@ -0,0 +1,39 @@
From 01c67e991c0d49e797b412d6d6f4d7a4669ec926 Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Mon, 8 Apr 2024 21:01:23 +0000
Subject: [PATCH 4/5] Bring back deprecated pci ids to hpsa driver
---
drivers/scsi/hpsa.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 544f1ab02..2fa774488 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -91,6 +91,11 @@ MODULE_PARM_DESC(hpsa_simple_mode,
/* define the PCI info for the cards we can control */
static const struct pci_device_id hpsa_pci_device_id[] = {
+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3223},
+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3234},
+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3235},
+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3237},
+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x323D},
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3241},
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3243},
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245},
@@ -144,6 +149,10 @@ static const struct pci_device_id hpsa_pci_device_id[] = {
{PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x007D},
{PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x0088},
{PCI_VENDOR_ID_HP, 0x333f, 0x103c, 0x333f},
+ {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+ PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
+ {PCI_VENDOR_ID_COMPAQ, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+ PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
{0,}
};
--
2.27.0

@ -0,0 +1,176 @@
From c74bb37d786dd12419fca217b53f33ca177fe96d Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Mon, 8 Apr 2024 21:07:42 +0000
Subject: [PATCH 5/5] Bring back deprecated pci ids to qla2xxx driver
---
drivers/scsi/qla2xxx/qla_os.c | 120 +++++++++++++++++++++++++++++++++-
1 file changed, 119 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 93dd9c332..8d46bbf22 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2636,6 +2636,73 @@ qla2x00_set_isp_flags(struct qla_hw_data *ha)
{
ha->device_type = DT_EXTENDED_IDS;
switch (ha->pdev->device) {
+ case PCI_DEVICE_ID_QLOGIC_ISP2100:
+ ha->isp_type |= DT_ISP2100;
+ ha->device_type &= ~DT_EXTENDED_IDS;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2100;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP2200:
+ ha->isp_type |= DT_ISP2200;
+ ha->device_type &= ~DT_EXTENDED_IDS;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2100;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP2300:
+ ha->isp_type |= DT_ISP2300;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2300;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP2312:
+ ha->isp_type |= DT_ISP2312;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2300;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP2322:
+ ha->isp_type |= DT_ISP2322;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ if (ha->pdev->subsystem_vendor == 0x1028 &&
+ ha->pdev->subsystem_device == 0x0170)
+ ha->device_type |= DT_OEM_001;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2300;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP6312:
+ ha->isp_type |= DT_ISP6312;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2300;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP6322:
+ ha->isp_type |= DT_ISP6322;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2300;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP2422:
+ ha->isp_type |= DT_ISP2422;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->device_type |= DT_FWI2;
+ ha->device_type |= DT_IIDMA;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP2432:
+ ha->isp_type |= DT_ISP2432;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->device_type |= DT_FWI2;
+ ha->device_type |= DT_IIDMA;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP8432:
+ ha->isp_type |= DT_ISP8432;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->device_type |= DT_FWI2;
+ ha->device_type |= DT_IIDMA;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP5422:
+ ha->isp_type |= DT_ISP5422;
+ ha->device_type |= DT_FWI2;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP5432:
+ ha->isp_type |= DT_ISP5432;
+ ha->device_type |= DT_FWI2;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ break;
case PCI_DEVICE_ID_QLOGIC_ISP2532:
ha->isp_type |= DT_ISP2532;
ha->device_type |= DT_ZIO_SUPPORTED;
@@ -2643,6 +2710,29 @@ qla2x00_set_isp_flags(struct qla_hw_data *ha)
ha->device_type |= DT_IIDMA;
ha->fw_srisc_address = RISC_START_ADDRESS_2400;
break;
+ case PCI_DEVICE_ID_QLOGIC_ISP8001:
+ ha->isp_type |= DT_ISP8001;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->device_type |= DT_FWI2;
+ ha->device_type |= DT_IIDMA;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP8021:
+ ha->isp_type |= DT_ISP8021;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->device_type |= DT_FWI2;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ /* Initialize 82XX ISP flags */
+ qla82xx_init_flags(ha);
+ break;
+ case PCI_DEVICE_ID_QLOGIC_ISP8044:
+ ha->isp_type |= DT_ISP8044;
+ ha->device_type |= DT_ZIO_SUPPORTED;
+ ha->device_type |= DT_FWI2;
+ ha->fw_srisc_address = RISC_START_ADDRESS_2400;
+ /* Initialize 82XX ISP flags */
+ qla82xx_init_flags(ha);
+ break;
case PCI_DEVICE_ID_QLOGIC_ISP2031:
ha->isp_type |= DT_ISP2031;
ha->device_type |= DT_ZIO_SUPPORTED;
@@ -2659,6 +2749,9 @@ qla2x00_set_isp_flags(struct qla_hw_data *ha)
ha->device_type |= DT_T10_PI;
ha->fw_srisc_address = RISC_START_ADDRESS_2400;
break;
+ case PCI_DEVICE_ID_QLOGIC_ISPF001:
+ ha->isp_type |= DT_ISPFX00;
+ break;
case PCI_DEVICE_ID_QLOGIC_ISP2071:
ha->isp_type |= DT_ISP2071;
ha->device_type |= DT_ZIO_SUPPORTED;
@@ -2802,9 +2895,18 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO);
sht = &qla2xxx_driver_template;
- if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532 ||
+ if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8432 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP5422 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP5432 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8001 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8021 ||
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2031 ||
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8031 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISPF001 ||
+ pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8044 ||
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2071 ||
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2271 ||
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2261 ||
@@ -7997,9 +8099,25 @@ static const struct pci_error_handlers qla2xxx_err_handler = {
};
static struct pci_device_id qla2xxx_pci_tbl[] = {
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2100) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2200) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2300) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2312) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2322) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP6312) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP6322) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2422) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2432) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8432) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5422) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5432) },
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2532) },
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2031) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8001) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) },
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) },
+ { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8044) },
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2071) },
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2271) },
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2261) },
--
2.27.0

@ -0,0 +1,408 @@
From 1642dcf67a557b42609a3756e2be7537762c38ea Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Tue, 9 Apr 2024 21:02:31 +0000
Subject: [PATCH] Bring back deprecated pci ids to lpfc driver
---
drivers/scsi/lpfc/lpfc_attr.c | 6 ++
drivers/scsi/lpfc/lpfc_els.c | 9 +++
drivers/scsi/lpfc/lpfc_hw.h | 39 +++++++++-
drivers/scsi/lpfc/lpfc_ids.h | 62 ++++++++++++++++
drivers/scsi/lpfc/lpfc_init.c | 136 +++++++++++++++++++++++++++++++++-
5 files changed, 249 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 8b15088a1..385ade242 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -7493,6 +7493,12 @@ lpfc_get_hba_function_mode(struct lpfc_hba *phba)
switch (phba->pcidev->device) {
case PCI_DEVICE_ID_SKYHAWK:
case PCI_DEVICE_ID_SKYHAWK_VF:
+ case PCI_DEVICE_ID_LANCER_FCOE:
+ case PCI_DEVICE_ID_LANCER_FCOE_VF:
+ case PCI_DEVICE_ID_ZEPHYR_DCSP:
+ case PCI_DEVICE_ID_HORNET:
+ case PCI_DEVICE_ID_TIGERSHARK:
+ case PCI_DEVICE_ID_TOMCAT:
phba->hba_flag |= HBA_FCOE_MODE;
break;
default:
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 89d9f7fdb..700fe69a4 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -4608,6 +4608,15 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
case IOSTAT_LOCAL_REJECT:
switch ((irsp->un.ulpWord[4] & IOERR_PARAM_MASK)) {
case IOERR_LOOP_OPEN_FAILURE:
+ if (cmd == ELS_CMD_FLOGI) {
+ if (PCI_DEVICE_ID_HORNET ==
+ phba->pcidev->device) {
+ phba->fc_topology = LPFC_TOPOLOGY_LOOP;
+ phba->pport->fc_myDID = 0;
+ phba->alpa_map[0] = 0;
+ phba->alpa_map[1] = 0;
+ }
+ }
if (cmd == ELS_CMD_PLOGI && cmdiocb->retry == 0)
delay = 1000;
retry = 1;
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h
index 474c594f8..240b688e1 100644
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -1713,25 +1713,55 @@ struct lpfc_fdmi_reg_portattr {
/* Start FireFly Register definitions */
#define PCI_VENDOR_ID_EMULEX 0x10df
+#define PCI_DEVICE_ID_FIREFLY 0x1ae5
+#define PCI_DEVICE_ID_PROTEUS_VF 0xe100
+#define PCI_DEVICE_ID_BALIUS 0xe131
+#define PCI_DEVICE_ID_PROTEUS_PF 0xe180
#define PCI_DEVICE_ID_LANCER_FC 0xe200
+#define PCI_DEVICE_ID_LANCER_FC_VF 0xe208
#define PCI_DEVICE_ID_LANCER_FCOE 0xe260
+#define PCI_DEVICE_ID_LANCER_FCOE_VF 0xe268
#define PCI_DEVICE_ID_LANCER_G6_FC 0xe300
#define PCI_DEVICE_ID_LANCER_G7_FC 0xf400
#define PCI_DEVICE_ID_LANCER_G7P_FC 0xf500
#define PCI_DEVICE_ID_SAT_SMB 0xf011
#define PCI_DEVICE_ID_SAT_MID 0xf015
+#define PCI_DEVICE_ID_RFLY 0xf095
+#define PCI_DEVICE_ID_PFLY 0xf098
+#define PCI_DEVICE_ID_LP101 0xf0a1
+#define PCI_DEVICE_ID_TFLY 0xf0a5
+#define PCI_DEVICE_ID_BSMB 0xf0d1
#define PCI_DEVICE_ID_BMID 0xf0d5
#define PCI_DEVICE_ID_ZSMB 0xf0e1
#define PCI_DEVICE_ID_ZMID 0xf0e5
+#define PCI_DEVICE_ID_NEPTUNE 0xf0f5
+#define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6
+#define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7
#define PCI_DEVICE_ID_SAT 0xf100
#define PCI_DEVICE_ID_SAT_SCSP 0xf111
#define PCI_DEVICE_ID_SAT_DCSP 0xf112
#define PCI_DEVICE_ID_FALCON 0xf180
+#define PCI_DEVICE_ID_SUPERFLY 0xf700
+#define PCI_DEVICE_ID_DRAGONFLY 0xf800
+#define PCI_DEVICE_ID_CENTAUR 0xf900
+#define PCI_DEVICE_ID_PEGASUS 0xf980
+#define PCI_DEVICE_ID_THOR 0xfa00
+#define PCI_DEVICE_ID_VIPER 0xfb00
+#define PCI_DEVICE_ID_LP10000S 0xfc00
+#define PCI_DEVICE_ID_LP11000S 0xfc10
+#define PCI_DEVICE_ID_LPE11000S 0xfc20
#define PCI_DEVICE_ID_SAT_S 0xfc40
+#define PCI_DEVICE_ID_PROTEUS_S 0xfc50
+#define PCI_DEVICE_ID_HELIOS 0xfd00
+#define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11
+#define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12
#define PCI_DEVICE_ID_ZEPHYR 0xfe00
+#define PCI_DEVICE_ID_HORNET 0xfe05
#define PCI_DEVICE_ID_ZEPHYR_SCSP 0xfe11
#define PCI_DEVICE_ID_ZEPHYR_DCSP 0xfe12
#define PCI_VENDOR_ID_SERVERENGINE 0x19a2
+#define PCI_DEVICE_ID_TIGERSHARK 0x0704
+#define PCI_DEVICE_ID_TOMCAT 0x0714
#define PCI_DEVICE_ID_SKYHAWK 0x0724
#define PCI_DEVICE_ID_SKYHAWK_VF 0x072c
@@ -4365,11 +4395,16 @@ struct lpfc_sli2_slim {
static inline int
lpfc_is_LC_HBA(unsigned short device)
{
- if ((device == PCI_DEVICE_ID_BMID) ||
+ if ((device == PCI_DEVICE_ID_TFLY) ||
+ (device == PCI_DEVICE_ID_PFLY) ||
+ (device == PCI_DEVICE_ID_LP101) ||
+ (device == PCI_DEVICE_ID_BMID) ||
+ (device == PCI_DEVICE_ID_BSMB) ||
(device == PCI_DEVICE_ID_ZMID) ||
(device == PCI_DEVICE_ID_ZSMB) ||
(device == PCI_DEVICE_ID_SAT_MID) ||
- (device == PCI_DEVICE_ID_SAT_SMB))
+ (device == PCI_DEVICE_ID_SAT_SMB) ||
+ (device == PCI_DEVICE_ID_RFLY))
return 1;
else
return 0;
diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h
index a77e0fac0..4e9b02a78 100644
--- a/drivers/scsi/lpfc/lpfc_ids.h
+++ b/drivers/scsi/lpfc/lpfc_ids.h
@@ -24,10 +24,44 @@
#include <linux/pci.h>
const struct pci_device_id lpfc_id_table[] = {
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_VIPER,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FIREFLY,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_THOR,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PEGASUS,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_CENTAUR,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_DRAGONFLY,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SUPERFLY,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_RFLY,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_SCSP,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_DCSP,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_SCSP,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HORNET,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP,
@@ -36,6 +70,16 @@ const struct pci_device_id lpfc_id_table[] = {
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_TFLY,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP101,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP11000S,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID,
@@ -48,10 +92,28 @@ const struct pci_device_id lpfc_id_table[] = {
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_VF,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_PF,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_S,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_SERVERENGINE, PCI_DEVICE_ID_TIGERSHARK,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_SERVERENGINE, PCI_DEVICE_ID_TOMCAT,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FALCON,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BALIUS,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC_VF,
+ PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE_VF,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G6_FC,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G7_FC,
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 82d25ea51..f4f49aa2a 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -2482,9 +2482,83 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
vp = &phba->vpd;
switch (dev_id) {
+ case PCI_DEVICE_ID_FIREFLY:
+ m = (typeof(m)){"LP6000", "PCI",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_SUPERFLY:
+ if (vp->rev.biuRev >= 1 && vp->rev.biuRev <= 3)
+ m = (typeof(m)){"LP7000", "PCI", ""};
+ else
+ m = (typeof(m)){"LP7000E", "PCI", ""};
+ m.function = "Obsolete, Unsupported Fibre Channel Adapter";
+ break;
+ case PCI_DEVICE_ID_DRAGONFLY:
+ m = (typeof(m)){"LP8000", "PCI",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_CENTAUR:
+ if (FC_JEDEC_ID(vp->rev.biuRev) == CENTAUR_2G_JEDEC_ID)
+ m = (typeof(m)){"LP9002", "PCI", ""};
+ else
+ m = (typeof(m)){"LP9000", "PCI", ""};
+ m.function = "Obsolete, Unsupported Fibre Channel Adapter";
+ break;
+ case PCI_DEVICE_ID_RFLY:
+ m = (typeof(m)){"LP952", "PCI",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_PEGASUS:
+ m = (typeof(m)){"LP9802", "PCI-X",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_THOR:
+ m = (typeof(m)){"LP10000", "PCI-X",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_VIPER:
+ m = (typeof(m)){"LPX1000", "PCI-X",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_PFLY:
+ m = (typeof(m)){"LP982", "PCI-X",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_TFLY:
+ m = (typeof(m)){"LP1050", "PCI-X",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_HELIOS:
+ m = (typeof(m)){"LP11000", "PCI-X2",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_HELIOS_SCSP:
+ m = (typeof(m)){"LP11000-SP", "PCI-X2",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_HELIOS_DCSP:
+ m = (typeof(m)){"LP11002-SP", "PCI-X2",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_NEPTUNE:
+ m = (typeof(m)){"LPe1000", "PCIe",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_NEPTUNE_SCSP:
+ m = (typeof(m)){"LPe1000-SP", "PCIe",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_NEPTUNE_DCSP:
+ m = (typeof(m)){"LPe1002-SP", "PCIe",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
case PCI_DEVICE_ID_BMID:
m = (typeof(m)){"LP1150", "PCI-X2", "Fibre Channel Adapter"};
break;
+ case PCI_DEVICE_ID_BSMB:
+ m = (typeof(m)){"LP111", "PCI-X2",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
case PCI_DEVICE_ID_ZEPHYR:
m = (typeof(m)){"LPe11000", "PCIe", "Fibre Channel Adapter"};
break;
@@ -2501,6 +2575,22 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
case PCI_DEVICE_ID_ZSMB:
m = (typeof(m)){"LPe111", "PCIe", "Fibre Channel Adapter"};
break;
+ case PCI_DEVICE_ID_LP101:
+ m = (typeof(m)){"LP101", "PCI-X",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_LP10000S:
+ m = (typeof(m)){"LP10000-S", "PCI",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_LP11000S:
+ m = (typeof(m)){"LP11000-S", "PCI-X2",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_LPE11000S:
+ m = (typeof(m)){"LPe11000-S", "PCIe",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
case PCI_DEVICE_ID_SAT:
m = (typeof(m)){"LPe12000", "PCIe", "Fibre Channel Adapter"};
break;
@@ -2519,17 +2609,54 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
case PCI_DEVICE_ID_SAT_S:
m = (typeof(m)){"LPe12000-S", "PCIe", "Fibre Channel Adapter"};
break;
+ case PCI_DEVICE_ID_HORNET:
+ m = (typeof(m)){"LP21000", "PCIe",
+ "Obsolete, Unsupported FCoE Adapter"};
+ GE = 1;
+ break;
+ case PCI_DEVICE_ID_PROTEUS_VF:
+ m = (typeof(m)){"LPev12000", "PCIe IOV",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_PROTEUS_PF:
+ m = (typeof(m)){"LPev12000", "PCIe IOV",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_PROTEUS_S:
+ m = (typeof(m)){"LPemv12002-S", "PCIe IOV",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
+ case PCI_DEVICE_ID_TIGERSHARK:
+ oneConnect = 1;
+ m = (typeof(m)){"OCe10100", "PCIe", "FCoE"};
+ break;
+ case PCI_DEVICE_ID_TOMCAT:
+ oneConnect = 1;
+ m = (typeof(m)){"OCe11100", "PCIe", "FCoE"};
+ break;
case PCI_DEVICE_ID_FALCON:
m = (typeof(m)){"LPSe12002-ML1-E", "PCIe",
"EmulexSecure Fibre"};
break;
+ case PCI_DEVICE_ID_BALIUS:
+ m = (typeof(m)){"LPVe12002", "PCIe Shared I/O",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
case PCI_DEVICE_ID_LANCER_FC:
m = (typeof(m)){"LPe16000", "PCIe", "Fibre Channel Adapter"};
break;
+ case PCI_DEVICE_ID_LANCER_FC_VF:
+ m = (typeof(m)){"LPe16000", "PCIe",
+ "Obsolete, Unsupported Fibre Channel Adapter"};
+ break;
case PCI_DEVICE_ID_LANCER_FCOE:
+ oneConnect = 1;
+ m = (typeof(m)){"OCe15100", "PCIe", "FCoE"};
+ break;
+ case PCI_DEVICE_ID_LANCER_FCOE_VF:
oneConnect = 1;
m = (typeof(m)){"OCe15100", "PCIe",
- "Obsolete, Unsupported FCoE Adapter"};
+ "Obsolete, Unsupported FCoE"};
break;
case PCI_DEVICE_ID_LANCER_G6_FC:
m = (typeof(m)){"LPe32000", "PCIe", "Fibre Channel Adapter"};
@@ -7619,6 +7746,13 @@ lpfc_sli_driver_resource_setup(struct lpfc_hba *phba)
if (rc)
return -ENODEV;
+ if (phba->pcidev->device == PCI_DEVICE_ID_HORNET) {
+ phba->menlo_flag |= HBA_MENLO_SUPPORT;
+ /* check for menlo minimum sg count */
+ if (phba->cfg_sg_seg_cnt < LPFC_DEFAULT_MENLO_SG_SEG_CNT)
+ phba->cfg_sg_seg_cnt = LPFC_DEFAULT_MENLO_SG_SEG_CNT;
+ }
+
if (!phba->sli.sli3_ring)
phba->sli.sli3_ring = kcalloc(LPFC_SLI3_MAX_RING,
sizeof(struct lpfc_sli_ring),
--
2.27.0

@ -0,0 +1,41 @@
From c706b20bc89820ccc3c34e566d709f3f55c46624 Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Tue, 9 Apr 2024 21:04:46 +0000
Subject: [PATCH] Bring back deprecated pci ids to qla4xxx driver
---
drivers/scsi/qla4xxx/ql4_os.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index b609f0c34..edf148fc7 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -9855,6 +9855,24 @@ static struct pci_device_id qla4xxx_pci_tbl[] = {
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,
},
+ {
+ .vendor = PCI_VENDOR_ID_QLOGIC,
+ .device = PCI_DEVICE_ID_QLOGIC_ISP8022,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_QLOGIC,
+ .device = PCI_DEVICE_ID_QLOGIC_ISP8324,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_QLOGIC,
+ .device = PCI_DEVICE_ID_QLOGIC_ISP8042,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ },
{0, 0},
};
MODULE_DEVICE_TABLE(pci, qla4xxx_pci_tbl);
--
2.27.0

@ -0,0 +1,28 @@
From 46c5a63208e3eb337da2ca8b1456a50707655e24 Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Tue, 9 Apr 2024 21:07:06 +0000
Subject: [PATCH] Bring back deprecated pci ids to be2iscsi driver
---
drivers/scsi/be2iscsi/be_main.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index 885c351fb..2d04e67e7 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -375,6 +375,11 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc)
/*------------------- PCI Driver operations and data ----------------- */
static const struct pci_device_id beiscsi_pci_id_table[] = {
+ { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) },
+ { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) },
+ { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) },
+ { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2) },
+ { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID3) },
{ PCI_DEVICE(ELX_VENDOR_ID, OC_SKH_ID1) },
{ 0 }
};
--
2.27.0

@ -1,67 +0,0 @@
RHEL_MAJOR = 9
RHEL_MINOR = 5
#
# RHEL_RELEASE
# -------------
#
# Represents build number in 'release' part of RPM's name-version-release.
# name is <package_name>, e.g. kernel
# version is upstream kernel version this kernel is based on, e.g. 4.18.0
# release is <RHEL_RELEASE>.<dist_tag>[<buildid>], e.g. 100.el8
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
RHEL_RELEASE = 503.11.1
#
# ZSTREAM
# -------
#
# This variable controls whether we use zstream numbering or not for the
# package release. The zstream release keeps the build number of the last
# build done for ystream for the Beta milestone, and increments a second
# number for each build. The third number is used for branched builds
# (eg.: for builds with security fixes or hot fixes done outside of the
# batch release process).
#
# For example, with ZSTREAM unset or set to "no", all builds will contain
# a release with only the build number, eg.: kernel-<kernel version>-X.el*,
# where X is the build number. With ZSTREAM set to "yes", we will have
# builds with kernel-<kernel version>-X.Y.Z.el*, where X is the last
# RHEL_RELEASE number before ZSTREAM flag was set to yes, Y will now be the
# build number and Z will always be 1 except if you're doing a branched build
# (when you give RHDISTGIT_BRANCH on the command line, in which case the Z
# number will be incremented instead of the Y).
#
ZSTREAM ?= yes
#
# Early y+1 numbering
# --------------------
#
# In early y+1 process, RHEL_RELEASE consists of 2 numbers: x.y
# First is RHEL_RELEASE inherited/merged from y as-is, second number
# is incremented with each build starting from 1. After merge from y,
# it resets back to 1. This way y+1 nvr reflects status of last merge.
#
# Example:
#
# rhel8.0 rhel-8.1
# kernel-4.18.0-58.el8 --> kernel-4.18.0-58.1.el8
# kernel-4.18.0-58.2.el8
# kernel-4.18.0-59.el8 kernel-4.18.0-59.1.el8
# kernel-4.18.0-60.el8
# kernel-4.18.0-61.el8 --> kernel-4.18.0-61.1.el8
#
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
EARLY_YSTREAM ?= no
EARLY_YBUILD:=
EARLY_YRELEASE:=
ifneq ("$(ZSTREAM)", "yes")
ifeq ("$(EARLY_YSTREAM)","yes")
RHEL_RELEASE:=$(RHEL_RELEASE).$(EARLY_YRELEASE)
endif
endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,25 +0,0 @@
===================
The Kernel dist-git
===================
The kernel is maintained in a `source tree`_ rather than directly in dist-git.
The specfile is maintained as a `template`_ in the source tree along with a set
of build scripts to generate configurations, (S)RPMs, and to populate the
dist-git repository.
The `documentation`_ for the source tree covers how to contribute and maintain
the tree.
If you're looking for the downstream patch set it's available in the source
tree with "git log master..ark-patches" or
`online`_.
Each release in dist-git is tagged in the source repository so you can easily
check out the source tree for a build. The tags are in the format
name-version-release, but note release doesn't contain the dist tag since the
source can be built in different build roots (Fedora, CentOS, etc.)
.. _source tree: https://gitlab.com/cki-project/kernel-ark.git
.. _template: https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/redhat/kernel.spec.template
.. _documentation: https://gitlab.com/cki-project/kernel-ark/-/wikis/home
.. _online: https://gitlab.com/cki-project/kernel-ark/-/commits/ark-patches

@ -41,8 +41,7 @@ def load_symvers(symvers, filename):
break break
if in_line == "\n": if in_line == "\n":
continue continue
checksum, symbol, directory, type, *ns = in_line.split() checksum, symbol, directory, type = in_line.split()
ns = ns[0] if ns else None
symvers[symbol] = in_line[0:-1] symvers[symbol] = in_line[0:-1]
@ -58,8 +57,7 @@ def load_kabi(kabi, filename):
break break
if in_line == "\n": if in_line == "\n":
continue continue
checksum, symbol, directory, type, *ns = in_line.split() checksum, symbol, directory, type = in_line.split()
ns = ns[0] if ns else None
kabi[symbol] = in_line[0:-1] kabi[symbol] = in_line[0:-1]
@ -71,14 +69,11 @@ def check_kabi(symvers, kabi):
warn = 0 warn = 0
changed_symbols = [] changed_symbols = []
moved_symbols = [] moved_symbols = []
ns_symbols = []
for symbol in kabi: for symbol in kabi:
abi_hash, abi_sym, abi_dir, abi_type, *abi_ns = kabi[symbol].split() abi_hash, abi_sym, abi_dir, abi_type = kabi[symbol].split()
abi_ns = abi_ns[0] if abi_ns else None
if symbol in symvers: if symbol in symvers:
sym_hash, sym_sym, sym_dir, sym_type, *sym_ns = symvers[symbol].split() sym_hash, sym_sym, sym_dir, sym_type = symvers[symbol].split()
sym_ns = sym_ns[0] if sym_ns else None
if abi_hash != sym_hash: if abi_hash != sym_hash:
fail = 1 fail = 1
changed_symbols.append(symbol) changed_symbols.append(symbol)
@ -86,10 +81,6 @@ def check_kabi(symvers, kabi):
if abi_dir != sym_dir: if abi_dir != sym_dir:
warn = 1 warn = 1
moved_symbols.append(symbol) moved_symbols.append(symbol)
if abi_ns != sym_ns:
warn = 1
ns_symbols.append(symbol)
else: else:
fail = 1 fail = 1
changed_symbols.append(symbol) changed_symbols.append(symbol)
@ -105,21 +96,13 @@ def check_kabi(symvers, kabi):
if warn: if warn:
print("*** WARNING - ABI SYMBOLS MOVED ***") print("*** WARNING - ABI SYMBOLS MOVED ***")
if moved_symbols: print("")
print("") print("The following symbols moved (typically caused by moving a symbol from being")
print("The following symbols moved (typically caused by moving a symbol from being") print("provided by the kernel vmlinux out to a loadable module):")
print("provided by the kernel vmlinux out to a loadable module):") print("")
print("") for symbol in moved_symbols:
for symbol in moved_symbols: print(symbol)
print(symbol) print("")
print("")
if ns_symbols:
print("")
print("The following symbols changed symbol namespaces:")
print("")
for symbol in ns_symbols:
print(symbol)
print("")
"""Halt the build, if we got errors and/or warnings. In either case, """Halt the build, if we got errors and/or warnings. In either case,
double-checkig is required to avoid introducing / concealing double-checkig is required to avoid introducing / concealing

@ -0,0 +1,11 @@
--- a/arch/x86/boot/main.c 2019-03-13 04:04:53.000000000 -0700
+++ b/arch/x86/boot/main.c 2019-05-25 14:31:21.043272496 -0700
@@ -147,7 +147,7 @@ void main(void)
/* Make sure we have all the proper CPU support */
if (validate_cpu()) {
- puts("This processor is not supported in this version of RHEL.\n");
+ puts("This processor is not supported in this version of MSVSphere.\n");
die();
}

@ -0,0 +1,11 @@
--- a/arch/x86/kernel/setup.c 2019-03-13 04:04:53.000000000 -0700
+++ b/arch/x86/kernel/setup.c 2019-05-27 08:35:54.580595314 -0700
@@ -900,7 +900,7 @@ static void rh_check_supported(void)
if (((boot_cpu_data.x86_max_cores * smp_num_siblings) == 1) &&
!guest && is_kdump_kernel()) {
pr_crit("Detected single cpu native boot.\n");
- pr_crit("Important: In Red Hat Enterprise Linux 8, single threaded, single CPU 64-bit physical systems are unsupported by Red Hat. Please contact your Red Hat support representative for a list of certified and supported systems.");
+ pr_crit("Important: In MSVSphere 8, single threaded, single CPU 64-bit physical systems are unsupported. Please see https://www.almalinux.org for more information");
}
/*

@ -1,44 +0,0 @@
# generic + compressed please
hostonly="no"
compress="xz"
# VMs can't update microcode anyway
early_microcode="no"
# modules: basics
dracutmodules+=" base systemd systemd-initrd dracut-systemd dbus dbus-broker usrmount shutdown "
# modules: storage support
dracutmodules+=" dm lvm rootfs-block fs-lib "
# modules: tpm and crypto
dracutmodules+=" crypt crypt-loop tpm2-tss "
# WALinuxagent-cvm with CVM specific udev rules
dracutmodules+=" walinuxagentcvm "
# modules: root disk integrity protection
dracutmodules+=" systemd-veritysetup "
# drivers: virtual buses, pci
drivers+=" virtio-pci virtio-mmio " # qemu-kvm
drivers+=" hv-vmbus pci-hyperv " # hyperv
drivers+=" xen-pcifront " # xen
# drivers: storage
drivers+=" ahci nvme sd_mod sr_mod " # generic
drivers+=" virtio-blk virtio-scsi " # qemu-kvm
drivers+=" hv-storvsc " # hyperv
drivers+=" xen-blkfront " # xen
# root encryption
drivers+=" dm_crypt "
# root disk integrity protection
drivers+=" dm_verity overlay "
# filesystems
filesystems+=" vfat ext4 xfs overlay "
# systemd-pcrphase
install_items+=" /lib/systemd/system/systemd-pcrphase-initrd.service /usr/lib/systemd/systemd-pcrphase /usr/lib/systemd/system/initrd.target.wants/systemd-pcrphase-initrd.service "

@ -15,4 +15,4 @@ ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco
drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra sun4i tinydrm vc4" drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra sun4i tinydrm vc4"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls" singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr"

@ -13,11 +13,8 @@
# subsys should be in kernel-modules on all arches, please change the defaults # subsys should be in kernel-modules on all arches, please change the defaults
# listed here. # listed here.
# Overrides is individual modules which need to remain in kernel-core due to deps.
overrides="cec isst_if_common isst_tpmi_core isst_tpmi intel_vsec intel_vsec_tpmi"
# Set the default dirs/modules to filter out # Set the default dirs/modules to filter out
driverdirs="atm auxdisplay bcma bluetooth firewire fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1" driverdirs="atm auxdisplay bcma bluetooth firewire fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1 virt"
chardrvs="mwave pcmcia" chardrvs="mwave pcmcia"
@ -25,21 +22,19 @@ netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom" ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
cryptdrvs="bcm caam cavium chelsio hisilicon marvell qat"
inputdrvs="gameport tablet touchscreen" inputdrvs="gameport tablet touchscreen"
scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf" scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf"
usbdrvs="atm image misc serial wusbcore" usbdrvs="atm image misc serial wusbcore"
fsdrvs="affs befs smb coda cramfs ecryptfs hfs hfsplus jfs minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs" fsdrvs="affs befs cifs coda cramfs ecryptfs hfs hfsplus jfs minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless" netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
drmdrvs="amd ast gma500 i2c i915 mgag200 nouveau radeon via " drmdrvs="amd ast gma500 i2c i915 mgag200 nouveau radeon via "
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial ism regmap-sdw regmap-sdw-mbq arizona-micsupp hid-asus nct6775 ntc_thermistor video" singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr parport_serial ism xt_u32 act_ct"
# Grab the arch-specific filter list overrides # Grab the arch-specific filter list overrides
source ./filter-$2.sh source ./filter-$2.sh
@ -93,7 +88,7 @@ done
# Filter the char drivers # Filter the char drivers
for char in ${chardrvs} for char in ${chardrvs}
do do
filter_dir $1 drivers/char/${char} filter_dir $1 drivers/char/${input}
done done
# Filter the ethernet drivers # Filter the ethernet drivers
@ -102,12 +97,6 @@ do
filter_dir $1 drivers/net/ethernet/${eth} filter_dir $1 drivers/net/ethernet/${eth}
done done
# Filter the crypto drivers
for crypt in ${cryptdrvs}
do
filter_dir $1 drivers/crypto/${crypt}
done
# SCSI # SCSI
for scsi in ${scsidrvs} for scsi in ${scsidrvs}
do do
@ -146,7 +135,9 @@ done
# Just kill sound. # Just kill sound.
filter_dir $1 kernel/sound filter_dir $1 kernel/sound
filter_dir $1 kernel/drivers/soundwire filter_ko $1 drivers/base/regmap/regmap-sdw
filter_ko $1 drivers/base/regmap/regmap-sdw-mbq
filter_dir $1 drivers/soundwire
# Now go through and filter any single .ko files that might have deps on the # Now go through and filter any single .ko files that might have deps on the
# things we filtered above # things we filtered above
@ -155,20 +146,6 @@ do
filter_ko $1 ${mod} filter_ko $1 ${mod}
done done
# Now process the override list to bring those modules back into core
for mod in ${overrides}
do
grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp
if [ $? -ne 0 ]
then
echo "Couldn't save ${mod}.ko Skipping."
else
grep -e "/${mod}.ko" k-d.list >> $filelist
mv k-d.list.tmp k-d.list
fi
done
# Go through our generated drivers list and remove the .ko files. We'll # Go through our generated drivers list and remove the .ko files. We'll
# restore them later. # restore them later.
for mod in `cat k-d.list` for mod in `cat k-d.list`

@ -11,4 +11,4 @@
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1" driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls" singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr"

@ -1,6 +1,6 @@
--- !Policy --- !Policy
product_versions: product_versions:
- rhel-9 - rhel-8
decision_context: osci_compose_gate decision_context: osci_compose_gate
rules: rules:
- !PassingTestCaseRule {test_case_name: cki.tier1-aarch64.functional} - !PassingTestCaseRule {test_case_name: cki.tier1-aarch64.functional}

@ -1,36 +1,6 @@
#!/bin/sh #!/bin/sh
# Adjusts the configuration options to build the variants correctly for i in ${NAME}-*.config; do
NEW=${NAME}-${VERSION}-`echo $i | cut -d - -f2-`
test -n "$RHTEST" && exit 0 mv ${i} ${NEW}
DEBUGBUILDSENABLED=$1
if [ -z "$DEBUGBUILDSENABLED" ]; then
exit 1
fi
if [ -z "$FLAVOR" ]; then
FLAVOR=rhel
fi
if [ "$FLAVOR" = "fedora" ]; then
SECONDARY=rhel
else
SECONDARY=fedora
fi
for i in kernel-*-"$FLAVOR".config; do
NEW=kernel-"$SPECVERSION"-$(echo "$i" | cut -d - -f2- | sed s/-"$FLAVOR"//)
#echo $NEW
mv "$i" "$NEW"
done done
rm -f kernel-*-"$SECONDARY".config
if [ "$DEBUGBUILDSENABLED" -eq 0 ]; then
for i in kernel-*debug*.config; do
base=$(echo "$i" | sed -r s/-?debug//g)
NEW=kernel-$(echo "$base" | cut -d - -f2-)
mv "$i" "$NEW"
done
fi

@ -0,0 +1,31 @@
#!/bin/bash
set -e
. /etc/os-release
kernelver=$1 && shift
rootfs=$1 && shift
variant=$1 && shift
output="${rootfs}/lib/modules/${kernelver}/bls.conf"
date=$(date -u +%Y%m%d%H%M%S)
if [ "${variant:-5}" = "debug" ]; then
debugname=" with debugging"
debugid="-debug"
else
debugname=""
debugid=""
fi
cat >${output} <<EOF
title ${NAME} (${kernelver}) ${VERSION}${debugname}
version ${kernelver}${debugid}
linux ${bootprefix}/vmlinuz-${kernelver}
initrd ${bootprefix}/initramfs-${kernelver}.img
options \$kernelopts
id ${ID}-${date}-${kernelver}${debugid}
grub_users \$grub_users
grub_arg --unrestricted
grub_class kernel${variant}
EOF

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,2 +0,0 @@
# This file is intentionally left empty in the stock kernel. Its a nicety
# added for those wanting to do custom rebuilds with altered config opts.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,72 +0,0 @@
#! /usr/bin/perl
my @args=@ARGV;
my %configvalues;
my @configoptions;
my $configcounter = 0;
# optionally print out the architecture as the first line of our output
my $arch = $args[2];
if (defined $arch) {
print "# $arch\n";
}
# first, read the override file
open (FILE,"$args[0]") || die "Could not open $args[0]";
while (<FILE>) {
my $str = $_;
my $configname;
if (/\# ([\w]+) is not set/) {
$configname = $1;
} elsif (/^\#/) {
# fall through on comments like 'avoid CONFIG_FOO=y'
;
} elsif (/([\w]+)=/) {
$configname = $1;
}
if (defined($configname) && !exists($configvalues{$configname})) {
$configvalues{$configname} = $str;
$configoptions[$configcounter] = $configname;
$configcounter ++;
}
};
# now, read and output the entire configfile, except for the overridden
# parts... for those the new value is printed.
open (FILE2,"$args[1]") || die "Could not open $args[1]";
while (<FILE2>) {
my $configname;
if (/\# ([\w]+) is not set/) {
$configname = $1;
} elsif (/^\#/) {
# fall through on comments like 'avoid CONFIG_FOO=y'
;
} elsif (/([\w]+)=/) {
$configname = $1;
}
if (defined($configname) && exists($configvalues{$configname})) {
print "$configvalues{$configname}";
delete($configvalues{$configname});
} else {
print "$_";
}
}
# now print the new values from the overridden configfile
my $counter = 0;
while ($counter < $configcounter) {
my $configname = $configoptions[$counter];
if (exists($configvalues{$configname})) {
print "$configvalues{$configname}";
}
$counter++;
}
1;

@ -1,5 +1,4 @@
#! /bin/bash #! /bin/bash
# shellcheck disable=SC2164
RpmDir=$1 RpmDir=$1
ModDir=$2 ModDir=$2
@ -25,9 +24,9 @@ __EOF__
check_blacklist() check_blacklist()
{ {
mod=$(find "$RpmDir/$ModDir" -name "$1") mod=$(find $RpmDir/$ModDir -name "$1")
[ ! "$mod" ] && return 0 [ ! "$mod" ] && return 0
if modinfo "$mod" | grep -q '^alias:\s\+net-'; then if modinfo $mod | grep -q '^alias:\s\+net-'; then
mod="${1##*/}" mod="${1##*/}"
mod="${mod%.ko*}" mod="${mod%.ko*}"
echo "$mod has an alias that allows auto-loading. Blacklisting." echo "$mod has an alias that allows auto-loading. Blacklisting."
@ -38,7 +37,7 @@ check_blacklist()
find_depends() find_depends()
{ {
dep=$1 dep=$1
depends=$(modinfo "$dep" | sed -n -e "/^depends/ s/^depends:[ \t]*//p") depends=`modinfo $dep | sed -n -e "/^depends/ s/^depends:[ \t]*//p"`
[ -z "$depends" ] && exit [ -z "$depends" ] && exit
for mod in ${depends//,/ } for mod in ${depends//,/ }
do do
@ -46,14 +45,14 @@ find_depends()
[ -z "$match" ] && continue [ -z "$match" ] && continue
# check if the module we are looking at is in mod-* too. # check if the module we are looking at is in mod-* too.
# if so we do not need to mark the dep as required. # if so we do not need to mark the dep as required.
mod2=${dep##*/} # same as $(basename $dep), but faster mod2=${dep##*/} # same as `basename $dep`, but faster
match2=$(grep "^$mod2" "$ListName") match2=$(grep "^$mod2" "$ListName")
if [ -n "$match2" ] if [ -n "$match2" ]
then then
#echo $mod2 >> notreq.list #echo $mod2 >> notreq.list
continue continue
fi fi
echo "$mod".ko >> req.list echo $mod.ko >> req.list
done done
} }
@ -61,11 +60,11 @@ foreachp()
{ {
P=$(nproc) P=$(nproc)
bgcount=0 bgcount=0
while read -r mod; do while read mod; do
$1 "$mod" & $1 "$mod" &
bgcount=$((bgcount + 1)) bgcount=$((bgcount + 1))
if [ $bgcount -eq "$P" ]; then if [ $bgcount -eq $P ]; then
wait -n wait -n
bgcount=$((bgcount - 1)) bgcount=$((bgcount - 1))
fi fi
@ -77,12 +76,12 @@ foreachp()
# Destination was specified on the command line # Destination was specified on the command line
test -n "$4" && echo "$0: Override Destination $Dest has been specified." test -n "$4" && echo "$0: Override Destination $Dest has been specified."
pushd "$Dir" pushd $Dir
OverrideDir=$(basename "$List") OverrideDir=$(basename $List)
OverrideDir=${OverrideDir%.*} OverrideDir=${OverrideDir%.*}
OverrideDir=${OverrideDir#*-} OverrideDir=${OverrideDir#*-}
mkdir -p "$OverrideDir" mkdir -p $OverrideDir
rm -rf modnames rm -rf modnames
find . -name "*.ko" -type f > modnames find . -name "*.ko" -type f > modnames
@ -95,8 +94,7 @@ cp "$List" .
# This variable needs to be exported because it is used in sub-script # This variable needs to be exported because it is used in sub-script
# executed by xargs # executed by xargs
ListName=$(basename "$List") export ListName=$(basename "$List")
export ListName
foreachp find_depends < modnames foreachp find_depends < modnames
@ -104,25 +102,25 @@ sort -u req.list > req2.list
sort -u "$ListName" > modules2.list sort -u "$ListName" > modules2.list
join -v 1 modules2.list req2.list > modules3.list join -v 1 modules2.list req2.list > modules3.list
while IFS= read -r mod for mod in $(cat modules3.list)
do do
# get the path for the module # get the path for the module
modpath=$(grep /"$mod" modnames) modpath=`grep /$mod modnames`
[ -z "$modpath" ] && continue [ -z "$modpath" ] && continue
echo "$modpath" >> dep.list echo $modpath >> dep.list
done < modules3.list done
sort -u dep.list > dep2.list sort -u dep.list > dep2.list
if [ -n "$Dest" ]; then if [ -n "$Dest" ]; then
# now move the modules into the $Dest directory # now move the modules into the $Dest directory
while IFS= read -r mod for mod in `cat dep2.list`
do do
newpath=$(dirname "$mod" | sed -e "s/kernel\\//$Dest\//") newpath=`dirname $mod | sed -e "s/kernel\\//$Dest\//"`
mkdir -p "$newpath" mkdir -p $newpath
mv "$mod" "$newpath" mv $mod $newpath
echo "$mod" | sed -e "s/kernel\\//$Dest\//" | sed -e "s|^.|${ModDir}|g" >> "$RpmDir"/"$ListName" echo $mod | sed -e "s/kernel\\//$Dest\//" | sed -e "s|^.|${ModDir}|g" >> $RpmDir/$ListName
done < dep2.list done
fi fi
popd popd
@ -132,33 +130,23 @@ popd
# target doesn't try to sign a non-existent file. This is kinda ugly, but # target doesn't try to sign a non-existent file. This is kinda ugly, but
# so are the modules-* packages. # so are the modules-* packages.
while IFS= read -r mod for mod in `cat ${Dir}/dep2.list`
do do
modfile=$(basename "$mod" | sed -e 's/.ko/.mod/') modfile=`basename $mod | sed -e 's/.ko/.mod/'`
rm .tmp_versions/"$modfile" rm .tmp_versions/$modfile
done < "$Dir"/dep2.list done
if [ -z "$Dest" ]; then if [ ! -n "$Dest" ]; then
sed -e "s|^.|${ModDir}|g" "$Dir"/dep2.list > "$RpmDir/$ListName" sed -e "s|^.|${ModDir}|g" ${Dir}/dep2.list > $RpmDir/$ListName
echo "./$RpmDir/$ListName created." echo "./$RpmDir/$ListName created."
[ -d "$RpmDir/etc/modprobe.d/" ] || mkdir -p "$RpmDir/etc/modprobe.d/" [ -d "$RpmDir/etc/modprobe.d/" ] || mkdir -p "$RpmDir/etc/modprobe.d/"
foreachp check_blacklist < "$List" foreachp check_blacklist < $List
fi
# Many BIOS-es export a PNP-id which causes the floppy driver to autoload
# even though most modern systems don't have a 3.5" floppy driver anymore
# this replaces the old die_floppy_die.patch which removed the PNP-id from
# the module
floppylist=("$RpmDir"/"$ModDir"/kernel/drivers/block/floppy.ko*)
if [[ -n ${floppylist[0]} && -f ${floppylist[0]} ]]; then
blacklist "floppy"
fi fi
# avoid an empty kernel-extra package # avoid an empty kernel-extra package
echo "$ModDir/$OverrideDir" >> "$RpmDir/$ListName" echo "$ModDir/$OverrideDir" >> $RpmDir/$ListName
pushd "$Dir" pushd $Dir
rm modnames dep.list dep2.list req.list req2.list rm modnames dep.list dep2.list req.list req2.list
rm "$ListName" modules2.list modules3.list rm "$ListName" modules2.list modules3.list
popd popd

@ -2,6 +2,8 @@
a3d.ko a3d.ko
act200l-sir.ko act200l-sir.ko
actisys-sir.ko actisys-sir.ko
act_mpls.ko
act_ct.ko
adi.ko adi.ko
aer_inject.ko aer_inject.ko
af_802154.ko af_802154.ko
@ -15,6 +17,7 @@ avm_cs.ko
avmfritz.ko avmfritz.ko
ax25.ko ax25.ko
b1.ko b1.ko
bareudp.ko
bas_gigaset.ko bas_gigaset.ko
batman-adv.ko batman-adv.ko
baycom_par.ko baycom_par.ko
@ -69,6 +72,7 @@ iforce.ko
interact.ko interact.ko
ipddp.ko ipddp.ko
ipx.ko ipx.ko
ip_vs_mh.ko
isdn.ko isdn.ko
joydump.ko joydump.ko
kingsun-sir.ko kingsun-sir.ko
@ -79,7 +83,6 @@ l2tp_core.ko
l2tp_debugfs.ko l2tp_debugfs.ko
l2tp_eth.ko l2tp_eth.ko
l2tp_ip.ko l2tp_ip.ko
l2tp_ip6.ko
l2tp_netlink.ko l2tp_netlink.ko
l2tp_ppp.ko l2tp_ppp.ko
lec.ko lec.ko
@ -121,9 +124,11 @@ rds_tcp.ko
rose.ko rose.ko
sch_atm.ko sch_atm.ko
sch_cbq.ko sch_cbq.ko
sch_cbs.ko
sch_choke.ko sch_choke.ko
sch_drr.ko sch_drr.ko
sch_dsmark.ko sch_dsmark.ko
sch_ets.ko
sch_gred.ko sch_gred.ko
sch_mqprio.ko sch_mqprio.ko
sch_multiq.ko sch_multiq.ko
@ -134,7 +139,6 @@ sch_sfb.ko
sch_teql.ko sch_teql.ko
sctp.ko sctp.ko
sctp_diag.ko sctp_diag.ko
sctp_probe.ko
sidewinder.ko sidewinder.ko
sja1000.ko sja1000.ko
sja1000_platform.ko sja1000_platform.ko
@ -158,7 +162,6 @@ tcp_veno.ko
tcp_westwood.ko tcp_westwood.ko
tcp_yeah.ko tcp_yeah.ko
tekram-sir.ko tekram-sir.ko
test_lockup.ko
tmdc.ko tmdc.ko
toim3232-sir.ko toim3232-sir.ko
trancevibrator.ko trancevibrator.ko
@ -189,5 +192,7 @@ wanrouter.ko
warrior.ko warrior.ko
whci.ko whci.ko
wire.ko wire.ko
xpad.ko
xt_u32.ko
yam.ko yam.ko
zhenhua.ko zhenhua.ko

@ -13,17 +13,34 @@ qos-test
resource_kunit resource_kunit
soc-topology-test soc-topology-test
soc-utils-test soc-utils-test
stackinit_kunit
string-stream-test string-stream-test
test_linear_ranges test_linear_ranges
test_bits test_bits
kasan_test test_kasan
time_test
fat_test fat_test
lib_test
rational-test
test_list_sort test_list_sort
slub_kunit slub_kunit
kfence_test memcpy_kunit
time_test
drm_format_helper_test
drm_damage_helper_test
drm_cmdline_parser_test
drm_kunit_helpers
drm_rect_test
drm_format_test
drm_plane_helper_test
drm_dp_mst_helper_test
drm_framebuffer_test
drm_buddy_test
drm_mm_test
drm_connector_test
drm_managed_test
drm_modes_test
drm_probe_helper_test
lib_test
dev_addr_lists_test
rational-test
test_hash test_hash
locktorture locktorture
mac80211_hwsim mac80211_hwsim
@ -32,6 +49,8 @@ pktgen
rcutorture rcutorture
rocker rocker
scftorture scftorture
torture
test_bpf
test_klp_atomic_replace test_klp_atomic_replace
test_klp_callbacks_demo test_klp_callbacks_demo
test_klp_callbacks_demo2 test_klp_callbacks_demo2
@ -42,56 +61,6 @@ test_klp_shadow_vars
test_klp_state test_klp_state
test_klp_state2 test_klp_state2
test_klp_state3 test_klp_state3
torture
refscale
rcuscale
memcpy_kunit
dev_addr_lists_test
test_bpf
stackinit_kunit
overflow_kunit
clk-gate_test
clk_test
mtty
test_hmm test_hmm
test_vmalloc test_vmalloc
test_sort mtty
cpumask_kunit
iio-test-format
iio-test-rescale
cros_kunit
cpumask_kunit
drm_buddy_test
drm_cmdline_parser_test
drm_damage_helper_test
drm_dp_mst_helper_test
drm_format_helper_test
drm_format_test
drm_framebuffer_test
drm_gem_shmem_test
drm_kunit_helpers
drm_mm_test
drm_plane_helper_test
drm_rect_test
gss_krb5_test
drm_connector_test
drm_managed_test
drm_modes_test
drm_probe_helper_test
input_test
hashtable_test
hid-uclogic-test
strcat_kunit
strscpy_kunit
siphash_kunit
handshake-test
drm_exec_test
regmap-kunit
cfg80211-tests
mac80211-tests
wwan_hwsim
checksum_kunit
arm-smmu-v3-test
iwlwifi-tests
sound_kunit
amd-pstate-ut

@ -1,5 +0,0 @@
kvm-amd
kvm-intel
kvm
kvmgt
ptp_kvm

@ -1,3 +0,0 @@
afs
rxperf
rxrpc

@ -2,7 +2,7 @@
# The modules_sign target checks for corresponding .o files for every .ko that # The modules_sign target checks for corresponding .o files for every .ko that
# is signed. This doesn't work for package builds which re-use the same build # is signed. This doesn't work for package builds which re-use the same build
# directory for every variant, and the .config may change between variants. # directory for every flavour, and the .config may change between flavours.
# So instead of using this script to just sign lib/modules/$KernelVer/extra, # So instead of using this script to just sign lib/modules/$KernelVer/extra,
# sign all .ko in the buildroot. # sign all .ko in the buildroot.
@ -13,13 +13,13 @@ MODSECKEY=$1
MODPUBKEY=$2 MODPUBKEY=$2
moddir=$3 moddir=$3
modules=$(find "$moddir" -type f -name '*.ko') modules=`find $moddir -type f -name '*.ko'`
NPROC=$(nproc) NPROC=`nproc`
[ -z "$NPROC" ] && NPROC=1 [ -z "$NPROC" ] && NPROC=1
# NB: this loop runs 2000+ iterations. Try to be fast. # NB: this loop runs 2000+ iterations. Try to be fast.
echo "$modules" | xargs -r -n16 -P "$NPROC" sh -c " echo "$modules" | xargs -r -n16 -P $NPROC sh -c "
for mod; do for mod; do
./scripts/sign-file sha256 $MODSECKEY $MODPUBKEY \$mod ./scripts/sign-file sha256 $MODSECKEY $MODPUBKEY \$mod
rm -f \$mod.sig \$mod.dig rm -f \$mod.sig \$mod.dig
@ -27,7 +27,7 @@ done
" DUMMYARG0 # xargs appends ARG1 ARG2..., which go into $mod in for loop. " DUMMYARG0 # xargs appends ARG1 ARG2..., which go into $mod in for loop.
RANDOMMOD=$(echo "$modules" | sort -R | head -n 1) RANDOMMOD=$(echo "$modules" | sort -R | head -n 1)
if [ "~Module signature appended~" != "$(tail -c 28 "$RANDOMMOD")" ]; then if [ "~Module signature appended~" != "$(tail -c 28 $RANDOMMOD)" ]; then
echo "*****************************" echo "*****************************"
echo "*** Modules are unsigned! ***" echo "*** Modules are unsigned! ***"
echo "*****************************" echo "*****************************"

@ -23,4 +23,4 @@ test "$procgroup" = 1 && exec xargs -r xz
# xz has some startup cost. If files are really small, # xz has some startup cost. If files are really small,
# this cost might be significant. To combat this, # this cost might be significant. To combat this,
# process several files (in sequence) by each xz process via -n 16: # process several files (in sequence) by each xz process via -n 16:
exec xargs -r -n 16 -P "$procgroup" xz exec xargs -r -n 16 -P $procgroup xz

@ -1,5 +0,0 @@
# kgcov
CONFIG_GCOV_KERNEL=y
CONFIG_GCOV_PROFILE_ALL=y
# CONFIG_GCOV_PROFILE_FTRACE is not set
# CONFIG_OPEN_DICE is not set

@ -3,27 +3,14 @@
# This script takes the merged config files and processes them through oldconfig # This script takes the merged config files and processes them through oldconfig
# and listnewconfig # and listnewconfig
# #
# Globally disable suggestion of appending '|| exit' or '|| return' to cd/pushd/popd commands
# shellcheck disable=SC2164
test -n "$RHTEST" && exit 0
usage() usage()
{ {
# alphabetical order please echo "process_configs.sh [ -n|-c|-t ] package_name kernel_version [cross_opts]"
echo "process_configs.sh [ options ] package_name kernel_version"
echo " -a: report all errors, equivalent to [-c -n -w -i]"
echo " -c: error on mismatched config options"
echo " -i: continue on error"
echo " -n: error on unset config options" echo " -n: error on unset config options"
echo " -c: error on mismatched config options"
echo " -t: test run, do not overwrite original config" echo " -t: test run, do not overwrite original config"
echo " -w: error on misconfigured config options" echo " -w: error on misconfigured config options"
echo " -z: commit new configs to pending directory"
echo ""
echo " A special CONFIG file tag, process_configs_known_broken can be added as a"
echo " comment to any CONFIG file. This tag indicates that there is no way to "
echo " fix a CONFIG's entry. This tag should only be used in extreme cases"
echo " and is not to be used as a workaround to solve CONFIG problems."
exit 1 exit 1
} }
@ -33,27 +20,18 @@ die()
exit 1 exit 1
} }
get_cross_compile()
{
arch=$1
if [[ "$CC_IS_CLANG" -eq 1 ]]; then
echo "$arch"
else
echo "scripts/dummy-tools/"
fi
}
# stupid function to find top of tree to do kernel make configs # stupid function to find top of tree to do kernel make configs
switch_to_toplevel() switch_to_toplevel()
{ {
path="$(pwd)" path="$(pwd)"
while test -n "$path" while test -n "$path"
do do
test -e "$path"/MAINTAINERS && \ test -d $path/firmware && \
test -d "$path"/drivers && \ test -e $path/MAINTAINERS && \
test -d $path/drivers && \
break break
path=$(dirname "$path") path="$(dirname $path)"
done done
test -n "$path" || die "Can't find toplevel" test -n "$path" || die "Can't find toplevel"
@ -62,9 +40,6 @@ switch_to_toplevel()
checkoptions() checkoptions()
{ {
count=$3
variant=$4
/usr/bin/awk ' /usr/bin/awk '
/is not set/ { /is not set/ {
@ -87,320 +62,114 @@ checkoptions()
print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree"; print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree";
} }
} }
' "$1" "$2" > .mismatches"${count}" ' $1 $2 > .mismatches
checkoptions_error=false if test -s .mismatches
if test -s .mismatches"${count}"
then then
while read -r LINE echo "Error: Mismatches found in configuration files"
do cat .mismatches
if find "${REDHAT}"/configs -name "$(echo "$LINE" | awk -F "=" ' { print $1 } ' | awk ' { print $2 }')" -print0 | xargs -0 grep ^ | grep -q "process_configs_known_broken"; then exit 1
# This is a known broken config.
# See script help warning.
checkoptions_error=false
else
checkoptions_error=true
break
fi
done < .mismatches"${count}"
! $checkoptions_error && return
sed -i "1s/^/Error: Mismatches found in configuration files for ${arch} ${variant}\n/" .mismatches"${count}"
else
rm -f .mismatches"${count}"
fi fi
} }
parsenewconfigs() function process_configs()
{
tmpdir=$(mktemp -d)
# This awk script reads the output of make listnewconfig
# and puts it into CONFIG_FOO files. Using the output of
# listnewconfig is much easier to ensure we get the default
# output.
/usr/bin/awk -v BASE="$tmpdir" '
/is not set/ {
split ($0, a, "#");
split(a[2], b);
OUT_FILE=BASE"/"b[1];
print $0 >> OUT_FILE;
}
/=/ {
split ($0, a, "=");
OUT_FILE=BASE"/"a[1];
if (a[2] == "n")
print "# " a[1] " is not set" >> OUT_FILE;
else
print $0 >> OUT_FILE;
}
' .newoptions
# This awk script parses the output of helpnewconfig.
# Each option is separated between ----- markers
# The goal is to put all the help text as a comment in
# each CONFIG_FOO file. Because of how awk works
# there's a lot of moving files around and catting to
# get what we need.
/usr/bin/awk -v BASE="$tmpdir" '
BEGIN { inpatch=0;
outfile="none";
symbol="none"; }
/^Symbol: .*$/ {
split($0, a, " ");
symbol="CONFIG_"a[2];
outfile=BASE "/fake_"symbol
}
/-----/ {
if (inpatch == 0) {
inpatch = 1;
}
else {
if (symbol != "none") {
system("cat " outfile " " BASE "/" symbol " > " BASE "/tmpf");
system("mv " BASE "/tmpf " BASE "/" symbol);
symbol="none"
}
outfile="none"
inpatch = 0;
}
}
!/-----/ {
if (inpatch == 1 && outfile != "none") {
print "# "$0 >> outfile;
}
}
' .helpnewconfig
pushd "$tmpdir" &> /dev/null
rm fake_*
popd &> /dev/null
for f in "$tmpdir"/*; do
[[ -e "$f" ]] || break
cp "$f" "$SCRIPT_DIR/pending$FLAVOR/generic/"
done
rm -rf "$tmpdir"
}
function commit_new_configs()
{ {
# assume we are in $source_tree/configs, need to get to top level # assume we are in $source_tree/configs, need to get to top level
pushd "$(switch_to_toplevel)" &>/dev/null pushd $(switch_to_toplevel) &>/dev/null
for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}"*.config for cfg in $SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}*.config
do do
arch=$(head -1 "$cfg" | cut -b 3-) arch=$(head -1 $cfg | cut -b 3-)
cfgtmp="${cfg}.tmp" cfgtmp="${cfg}.tmp"
cfgorig="${cfg}.orig" cfgorig="${cfg}.orig"
cat "$cfg" > "$cfgorig" cat $cfg > $cfgorig
if [ "$arch" = "EMPTY" ] echo -n "Processing $cfg ... "
then
# This arch is intentionally left blank
continue
fi
echo -n "Checking for new configs in $cfg ... "
# shellcheck disable=SC2086 make ARCH=$arch ${CROSSOPTS} KCONFIG_CONFIG=$cfgorig listnewconfig >& .listnewconfig
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE="$(get_cross_compile "$arch")" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig
grep -E 'CONFIG_' .listnewconfig > .newoptions grep -E 'CONFIG_' .listnewconfig > .newoptions
if test -s .newoptions if test -n "$NEWOPTIONS" && test -s .newoptions
then then
# shellcheck disable=SC2086 echo "Found unset config items, please set them to an appropriate value"
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE="$(get_cross_compile "$arch")" KCONFIG_CONFIG="$cfgorig" helpnewconfig >& .helpnewconfig cat .newoptions
parsenewconfigs rm .newoptions
exit 1
fi fi
rm .newoptions rm .newoptions
echo "done"
done
git add "$SCRIPT_DIR/pending$FLAVOR"
git commit -m "[redhat] AUTOMATIC: New configs"
}
function process_config()
{
local cfg
local arch
local cfgtmp
local cfgorig
local count
local variant
cfg=$1
count=$2
arch=$(head -1 "$cfg" | cut -b 3-) grep -E 'config.*warning' .listnewconfig > .warnings
if test -n "$CHECKWARNINGS" && test -s .warnings
if [ "$arch" = "EMPTY" ] then
then echo "Found misconfigured config items, please set them to an appropriate value"
# This arch is intentionally left blank cat .warnings
return rm .warnings
fi exit 1
fi
variant=$(basename "$cfg" | cut -d"-" -f3- | cut -d"." -f1) rm .warnings
cfgtmp="${cfg}.tmp"
cfgorig="${cfg}.orig"
cat "$cfg" > "$cfgorig"
echo "Processing $cfg ... "
# shellcheck disable=SC2086
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE="$(get_cross_compile "$arch")" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig"${count}"
grep -E 'CONFIG_' .listnewconfig"${count}" > .newoptions"${count}"
if test -n "$NEWOPTIONS" && test -s .newoptions"${count}"
then
echo "Found unset config items in ${arch} ${variant}, please set them to an appropriate value" >> .errors"${count}"
cat .newoptions"${count}" >> .errors"${count}"
rm .newoptions"${count}"
RETURNCODE=1
fi
rm -f .newoptions"${count}"
grep -E 'config.*warning' .listnewconfig"${count}" > .warnings"${count}"
if test -n "$CHECKWARNINGS" && test -s .warnings"${count}"
then
echo "Found misconfigured config items in ${arch} ${variant}, please set them to an appropriate value" >> .errors"${count}"
cat .warnings"${count}" >> .errors"${count}"
fi
rm .warnings"${count}"
rm .listnewconfig"${count}"
# shellcheck disable=SC2086
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE="$(get_cross_compile "$arch")" KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1
echo "# $arch" > "$cfgtmp"
cat "$cfgorig" >> "$cfgtmp"
if test -n "$CHECKOPTIONS"
then
checkoptions "$cfg" "$cfgtmp" "$count" "$variant"
fi
# if test run, don't overwrite original
if test -n "$TESTRUN"
then
rm -f "$cfgtmp"
else
mv "$cfgtmp" "$cfg"
fi
rm -f "$cfgorig"
echo "Processing $cfg complete"
}
function process_configs()
{
# assume we are in $source_tree/configs, need to get to top level
pushd "$(switch_to_toplevel)" &>/dev/null
# The next line is throwaway code for transition to parallel rm .listnewconfig
# processing. Leaving this line in place is harmless, but it can be
# removed the next time anyone updates this function.
[ -f .mismatches ] && rm -f .mismatches
count=0 make ARCH=$arch ${CROSSOPTS} KCONFIG_CONFIG=$cfgorig oldnoconfig > /dev/null || exit 1
for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}"*.config echo "# $arch" > ${cfgtmp}
do cat "${cfgorig}" >> ${cfgtmp}
if [ "$count" -eq 0 ]; then if test -n "$CHECKOPTIONS"
# do the first one by itself so that tools are built then
process_config "$cfg" "$count" checkoptions $cfg $cfgtmp
fi fi
process_config "$cfg" "$count" & # if test run, don't overwrite original
# shellcheck disable=SC2004 if test -n "$TESTRUN"
waitpids[${count}]=$! then
((count++)) rm ${cfgtmp}
while [ "$(jobs | grep -c Running)" -ge "$RHJOBS" ]; do :; done else
done mv ${cfgtmp} ${cfg}
# shellcheck disable=SC2048 fi
for pid in ${waitpids[*]}; do rm ${cfgorig}
wait "${pid}" echo "done"
done done
rm "$SCRIPT_DIR"/*.config*.old rm "$SCRIPT_DIR"/*.config*.old
if ls .errors* 1> /dev/null 2>&1; then
RETURNCODE=1
cat .errors*
rm .errors* -f
fi
if ls .mismatches* 1> /dev/null 2>&1; then
RETURNCODE=1
cat .mismatches*
rm .mismatches* -f
fi
popd > /dev/null popd > /dev/null
[ $RETURNCODE -eq 0 ] && echo "Processed config files are in $SCRIPT_DIR" echo "Processed config files are in $SCRIPT_DIR"
} }
CHECKOPTIONS=""
NEWOPTIONS="" NEWOPTIONS=""
TESTRUN="" CHECKOPTIONS=""
CHECKWARNINGS="" CHECKWARNINGS=""
MAKEOPTS="" TESTRUN=""
CC_IS_CLANG=0
RETURNCODE=0
while [[ $# -gt 0 ]] while [[ $# -gt 0 ]]
do do
key="$1" key="$1"
case $key in case $key in
-a)
CHECKOPTIONS="x"
NEWOPTIONS="x"
CHECKWARNINGS="x"
;;
-c)
CHECKOPTIONS="x"
;;
-h) -h)
usage usage
;; ;;
-n) -n)
NEWOPTIONS="x" NEWOPTIONS="x"
;; ;;
-c)
CHECKOPTIONS="x"
;;
-t) -t)
TESTRUN="x" TESTRUN="x"
;; ;;
-w) -w)
CHECKWARNINGS="x" CHECKWARNINGS="x"
;; ;;
-z)
COMMITNEWCONFIGS="x"
;;
-m)
shift
if [ "$1" = "CC=clang" ] || [ "$1" = "LLVM=1" ]; then
CC_IS_CLANG=1
fi
MAKEOPTS="$MAKEOPTS $1"
;;
*) *)
break;; break;;
esac esac
shift shift
done done
KVERREL="$(test -n "$1" && echo "-$1" || echo "")" PACKAGE_NAME="${1:-kernel}" # defines the package name used
FLAVOR="$(test -n "$2" && echo "-$2" || echo "-rhel")" KVERREL="$(test -n "$2" && echo "-$2" || echo "")"
# shellcheck disable=SC2015 CROSSOPTS="$3"
SCRIPT=$(readlink -f "$0") SCRIPT="$(readlink -f $0)"
SCRIPT_DIR=$(dirname "$SCRIPT") OUTPUT_DIR="$PWD"
SCRIPT_DIR="$(dirname $SCRIPT)"
# to handle this script being a symlink # to handle this script being a symlink
cd "$SCRIPT_DIR" cd $SCRIPT_DIR
if test -n "$COMMITNEWCONFIGS"; then
commit_new_configs
else
process_configs
fi
exit $RETURNCODE process_configs

@ -3,14 +3,19 @@
--- ---
inspections: inspections:
abidiff: off abidiff: off
addedfiles: off
badfuncs: off
changedfiles: off
kmidiff: off kmidiff: off
upstream: off kmod: off
subpackages: off manpage: off
license: off movedfiles: off
debuginfo: off permissions: off
removedfiles: off removedfiles: off
rpmdeps: off
upstream: off
badfuncs: elf:
ignore: ignore:
- /usr/libexec/ksamples/* - /usr/libexec/ksamples/*
- /usr/libexec/kselftests/* - /usr/libexec/kselftests/*
@ -19,30 +24,13 @@ emptyrpm:
expected_empty: expected_empty:
- kernel - kernel
- kernel-debug - kernel-debug
- kernel-debug-devel-matched
- kernel-devel-matched
- kernel-lpae
- kernel-zfcpdump - kernel-zfcpdump
- kernel-zfcpdump-devel-matched
- kernel-zfcpdump-modules - kernel-zfcpdump-modules
patches: patches:
ignore_list: ignore_list:
- linux-kernel-test.patch - linux-kernel-test.patch
- patch-5.14-redhat.patch
- patch-%{patchversion}-redhat.patch
runpath:
ignore:
- /usr/libexec/kselftests/bpf/urandom_read
- /usr/libexec/kselftests/bpf/no_alu32/urandom_read
debuginfo:
ignore:
- /usr/libexec/kselftests/bpf/*
- /usr/lib/debug/usr/libexec/perf-core/tests/shell/coresight/*
elf: types:
ignore: ignore:
- /usr/libexec/perf-core/tests/shell/coresight/* - /usr/src/kernel/*
- /usr/lib/debug/usr/libexec/perf-core/tests/shell/coresight/*

@ -1,12 +0,0 @@
{
"virt": {
"common": {
"fips-disable.addon": [
"fips=0\n"
],
"fips-enable.addon": [
"fips=1\n"
]
}
}
}

@ -1,151 +0,0 @@
#!/usr/bin/env python3
#
# This script inspects a given json proving a list of addons, and
# creates an addon for each key/value pair matching the given uki, distro and
# arch provided in input.
#
# Usage: python uki_create_addons.py input_json out_dir uki distro arch
#
# This tool requires the systemd-ukify and systemd-boot packages.
#
# Addon file
#-----------
# Each addon terminates with .addon
# Each addon contains only two types of lines:
# Lines beginning with '#' are description and thus ignored
# All other lines are command line to be added.
# The name of the end resulting addon is taken from the json hierarchy.
# For example, and addon in json['virt']['rhel']['x86_64']['hello.addon'] will
# result in an UKI addon file generated in out_dir called
# hello-virt.rhel.x86_64.addon.efi
#
# The common key, present in any sub-dict in the provided json (except the leaf dict)
# is used as place for default addons when the same addon is not defined deep
# in the hierarchy. For example, if we define test.addon (text: 'test1\n') in
# json['common']['test.addon'] = ['test1\n'] and another test.addon (text: test2) in
# json['virt']['common']['test.addon'] = ['test2'], any other uki except virt
# will have a test.addon.efi with text "test1", and virt will have a
# test.addon.efi with "test2"
#
# sbat.conf
#----------
# This dict is containing the sbat string for *all* addons being created.
# This dict is optional, but when used has to be put in a sub-dict with
# { 'sbat' : { 'sbat.conf' : ['your text here'] }}
# It follows the same syntax as the addon files, meaning '#' is comment and
# the rest is taken as sbat string and feed to ukify.
import os
import sys
import json
import collections
import subprocess
UKIFY_PATH = '/usr/lib/systemd/ukify'
def usage(err):
print(f'Usage: {os.path.basename(__file__)} input_json output_dir uki distro arch')
print(f'Error:{err}')
sys.exit(1)
def check_clean_arguments(input_json, out_dir):
# Remove end '/'
if out_dir[-1:] == '/':
out_dir = out_dir[:-1]
if not os.path.isfile(input_json):
usage(f'input_json {input_json} is not a file, or does not exist!')
if not os.path.isdir(out_dir):
usage(f'out_dir_dir {out_dir} is not a dir, or does not exist!')
return out_dir
UKICmdlineAddon = collections.namedtuple('UKICmdlineAddon', ['name', 'cmdline'])
uki_addons_list = []
uki_addons = {}
addon_sbat_string = None
def parse_lines(lines, rstrip=True):
cmdline = ''
for l in lines:
l = l.lstrip()
if not l:
continue
if l[0] == '#':
continue
# rstrip is used only for addons cmdline, not sbat.conf, as it replaces
# return lines with spaces.
if rstrip:
l = l.rstrip() + ' '
cmdline += l
if cmdline == '':
return ''
return cmdline
def parse_all_addons(in_obj):
global addon_sbat_string
for el in in_obj.keys():
# addon found: copy it in our global dict uki_addons
if el.endswith('.addon'):
uki_addons[el] = in_obj[el]
if 'sbat' in in_obj and 'sbat.conf' in in_obj['sbat']:
# sbat.conf found: override sbat with the most specific one found
addon_sbat_string = parse_lines(in_obj['sbat']['sbat.conf'], rstrip=False)
def recursively_find_addons(in_obj, folder_list):
# end of recursion, leaf directory. Search all addons here
if len(folder_list) == 0:
parse_all_addons(in_obj)
return
# first, check for common folder
if 'common' in in_obj:
parse_all_addons(in_obj['common'])
# second, check if there is a match with the searched folder
if folder_list[0] in in_obj:
folder_next = in_obj[folder_list[0]]
folder_list = folder_list[1:]
recursively_find_addons(folder_next, folder_list)
def parse_in_json(in_json, uki_name, distro, arch):
with open(in_json, 'r') as f:
in_obj = json.load(f)
recursively_find_addons(in_obj, [uki_name, distro, arch])
for addon_name, cmdline in uki_addons.items():
addon_name = addon_name.replace(".addon","")
addon_full_name = f'{addon_name}-{uki_name}.{distro}.{arch}.addon.efi'
cmdline = parse_lines(cmdline).rstrip()
if cmdline:
uki_addons_list.append(UKICmdlineAddon(addon_full_name, cmdline))
def create_addons(out_dir):
for uki_addon in uki_addons_list:
out_path = os.path.join(out_dir, uki_addon.name)
cmd = [
f'{UKIFY_PATH}', 'build',
f'--cmdline="{uki_addon.cmdline}"',
f'--output={out_path}']
if addon_sbat_string:
cmd.append('--sbat="' + addon_sbat_string.rstrip() +'"')
subprocess.check_call(cmd, text=True)
if __name__ == "__main__":
argc = len(sys.argv) - 1
if argc != 5:
usage('too few or too many parameters!')
input_json = sys.argv[1]
out_dir = sys.argv[2]
uki_name = sys.argv[3]
distro = sys.argv[4]
arch = sys.argv[5]
out_dir = check_clean_arguments(input_json, out_dir)
parse_in_json(input_json, uki_name, distro, arch)
create_addons(out_dir)

@ -1,12 +0,0 @@
#!/bin/sh
if [ -z "$1" ]; then
exit 1
fi
TARGET="$1"
for i in "$RPM_SOURCE_DIR"/*."$TARGET"; do
NEW=${i%."$TARGET"}
cp "$i" "$(basename "$NEW")"
done

@ -5,9 +5,9 @@ prompt = no
x509_extensions = myexts x509_extensions = myexts
[ req_distinguished_name ] [ req_distinguished_name ]
O = The CentOS Project O = NCSD LLC
CN = CentOS Stream kernel signing key CN = MSVSphere kernel signing key
emailAddress = security@centos.org emailAddress = security@msvsphere.ru
[ myexts ] [ myexts ]
basicConstraints=critical,CA:FALSE basicConstraints=critical,CA:FALSE

@ -1,16 +0,0 @@
[ req ]
default_bits = 3072
distinguished_name = req_distinguished_name
prompt = no
x509_extensions = myexts
[ req_distinguished_name ]
O = Red Hat
CN = Red Hat Enterprise Linux kernel signing key
emailAddress = secalert@redhat.com
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save