kernel-6.5.0-0.rc6.20230815git91aa6c412d7f.44
* Tue Aug 15 2023 Fedora Kernel Team <kernel-team@fedoraproject.org> [6.5.0-0.rc6.91aa6c412d7f.44.el130] - CI: rawhide_release: switch to using script to push (Don Zickus) - redhat/self-test: Update self-test data (Prarit Bhargava) - redhat/scripts/cross-compile: Update download_cross.sh (Prarit Bhargava) - redhat/Makefile.cross: Remove ARCH selection code (Prarit Bhargava) - redhat/Makefile.cross: Update script (Prarit Bhargava) - Fix interruptible non MR jobs (Michael Hofmann) - Linux v6.5.0-0.rc6.91aa6c412d7f Resolves: Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
This commit is contained in:
parent
5c30685a34
commit
b9b372011a
@ -12,7 +12,7 @@ RHEL_MINOR = 99
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 43
|
||||
RHEL_RELEASE = 44
|
||||
|
||||
#
|
||||
# RHEL_REBASE_NUM
|
||||
|
@ -1,3 +1,21 @@
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/31a8a6b4003446a250fa9f7ee97de71720331c1f
|
||||
31a8a6b4003446a250fa9f7ee97de71720331c1f [redhat] kernel/rh_messages.c: move hardware tables to rh_messages.h
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/0f6fbe653a0a7943a1c36ee4f47395ea30b79c75
|
||||
0f6fbe653a0a7943a1c36ee4f47395ea30b79c75 [redhat] kernel/rh_messages.c: Wire up new calls
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/b73e031eb85ee3e0755203421a1b6ad153216568
|
||||
b73e031eb85ee3e0755203421a1b6ad153216568 [redhat] drivers/pci: Update rh_messages.c
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/edb8831394cd8eddf069a09842f464bfc8a957a7
|
||||
edb8831394cd8eddf069a09842f464bfc8a957a7 [redhat] drivers/message/fusion/mptspi.c: Remove extra disabled warning
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/635b364c987e7559bc20d3f22822a514b56ac33d
|
||||
635b364c987e7559bc20d3f22822a514b56ac33d [redhat] mptsas: Remove add_taint()
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/b8cb66e488122646b260a080f683d8746a145ebb
|
||||
b8cb66e488122646b260a080f683d8746a145ebb [redhat] drivers/pci: Remove RHEL-only pci_hw_*() functions
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/7ba2fc7e001181fe630e92a4633e76a6c71689e1
|
||||
7ba2fc7e001181fe630e92a4633e76a6c71689e1 scsi: sd: Add "probe_type" module parameter to allow synchronous probing
|
||||
|
||||
|
15
kernel.spec
15
kernel.spec
@ -162,13 +162,13 @@ Summary: The Linux kernel
|
||||
%define specrpmversion 6.5.0
|
||||
%define specversion 6.5.0
|
||||
%define patchversion 6.5
|
||||
%define pkgrelease 0.rc6.43
|
||||
%define pkgrelease 0.rc6.20230815git91aa6c412d7f.44
|
||||
%define kversion 6
|
||||
%define tarfile_release 6.5-rc6
|
||||
%define tarfile_release 6.5-rc6-27-g91aa6c412d7f
|
||||
# This is needed to do merge window version magic
|
||||
%define patchlevel 5
|
||||
# This allows pkg_release to have configurable %%{?dist} tag
|
||||
%define specrelease 0.rc6.43%{?buildid}%{?dist}
|
||||
%define specrelease 0.rc6.20230815git91aa6c412d7f.44%{?buildid}%{?dist}
|
||||
# This defines the kabi tarball version
|
||||
%define kabiversion 6.5.0
|
||||
|
||||
@ -3713,6 +3713,15 @@ fi\
|
||||
#
|
||||
#
|
||||
%changelog
|
||||
* Tue Aug 15 2023 Fedora Kernel Team <kernel-team@fedoraproject.org> [6.5.0-0.rc6.91aa6c412d7f.44.el130]
|
||||
- CI: rawhide_release: switch to using script to push (Don Zickus)
|
||||
- redhat/self-test: Update self-test data (Prarit Bhargava)
|
||||
- redhat/scripts/cross-compile: Update download_cross.sh (Prarit Bhargava)
|
||||
- redhat/Makefile.cross: Remove ARCH selection code (Prarit Bhargava)
|
||||
- redhat/Makefile.cross: Update script (Prarit Bhargava)
|
||||
- Fix interruptible non MR jobs (Michael Hofmann)
|
||||
- Linux v6.5.0-0.rc6.91aa6c412d7f
|
||||
|
||||
* Mon Aug 14 2023 Fedora Kernel Team <kernel-team@fedoraproject.org> [6.5.0-0.rc6.43.el127]
|
||||
- Linux v6.5.0-0.rc6
|
||||
|
||||
|
@ -22,13 +22,13 @@
|
||||
drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 +
|
||||
drivers/input/rmi4/rmi_driver.c | 124 +++--
|
||||
drivers/iommu/iommu.c | 22 +
|
||||
drivers/message/fusion/mptsas.c | 10 +
|
||||
drivers/message/fusion/mptspi.c | 11 +
|
||||
drivers/message/fusion/mptsas.c | 5 +
|
||||
drivers/message/fusion/mptspi.c | 6 +
|
||||
drivers/net/wireguard/main.c | 6 +
|
||||
drivers/nvme/host/core.c | 22 +-
|
||||
drivers/nvme/host/multipath.c | 19 +-
|
||||
drivers/nvme/host/nvme.h | 4 +
|
||||
drivers/pci/pci-driver.c | 78 ++++
|
||||
drivers/pci/pci-driver.c | 7 +
|
||||
drivers/pci/quirks.c | 24 +
|
||||
drivers/scsi/aacraid/linit.c | 2 +
|
||||
drivers/scsi/be2iscsi/be_main.c | 2 +
|
||||
@ -42,27 +42,29 @@
|
||||
drivers/usb/core/hub.c | 7 +
|
||||
fs/afs/main.c | 3 +
|
||||
include/linux/efi.h | 22 +-
|
||||
include/linux/kernel.h | 21 +
|
||||
include/linux/kernel.h | 14 +
|
||||
include/linux/lsm_hook_defs.h | 2 +
|
||||
include/linux/module.h | 1 +
|
||||
include/linux/module.h | 5 +
|
||||
include/linux/panic.h | 18 +-
|
||||
include/linux/pci.h | 16 +
|
||||
include/linux/pci.h | 5 +
|
||||
include/linux/rh_kabi.h | 515 +++++++++++++++++++++
|
||||
include/linux/rmi.h | 1 +
|
||||
include/linux/security.h | 5 +
|
||||
init/main.c | 3 +
|
||||
kernel/Makefile | 1 +
|
||||
kernel/bpf/syscall.c | 23 +
|
||||
kernel/module/main.c | 2 +
|
||||
kernel/module/main.c | 7 +
|
||||
kernel/module/signing.c | 9 +-
|
||||
kernel/panic.c | 13 +
|
||||
kernel/rh_messages.c | 209 +++++++++
|
||||
kernel/rh_messages.c | 414 +++++++++++++++++
|
||||
kernel/rh_messages.h | 109 +++++
|
||||
scripts/mod/modpost.c | 8 +
|
||||
scripts/tags.sh | 2 +
|
||||
security/integrity/platform_certs/load_uefi.c | 6 +-
|
||||
security/lockdown/Kconfig | 13 +
|
||||
security/lockdown/lockdown.c | 1 +
|
||||
security/security.c | 12 +
|
||||
64 files changed, 1552 insertions(+), 188 deletions(-)
|
||||
66 files changed, 1779 insertions(+), 188 deletions(-)
|
||||
|
||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||
index 722b6eca2e93..59a26ed5aa96 100644
|
||||
@ -1116,22 +1118,10 @@ index caaf563d38ae..d9c4d039c4e7 100644
|
||||
* iommu_setup_default_domain - Set the default_domain for the group
|
||||
* @group: Group to change
|
||||
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
|
||||
index 86f16f3ea478..0ad9759ab0c1 100644
|
||||
index 86f16f3ea478..499dc34a5e66 100644
|
||||
--- a/drivers/message/fusion/mptsas.c
|
||||
+++ b/drivers/message/fusion/mptsas.c
|
||||
@@ -5320,6 +5320,11 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
ioc, MPI_SAS_OP_CLEAR_ALL_PERSISTENT);
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK);
|
||||
+ pr_warn("MPTSAS MODULE IS NOT SUPPORTED\n");
|
||||
+#endif
|
||||
+
|
||||
error = scsi_add_host(sh, &ioc->pcidev->dev);
|
||||
if (error) {
|
||||
dprintk(ioc, printk(MYIOC_s_ERR_FMT
|
||||
@@ -5383,6 +5388,10 @@ static void mptsas_remove(struct pci_dev *pdev)
|
||||
@@ -5383,6 +5383,10 @@ static void mptsas_remove(struct pci_dev *pdev)
|
||||
}
|
||||
|
||||
static struct pci_device_id mptsas_pci_table[] = {
|
||||
@ -1142,7 +1132,7 @@ index 86f16f3ea478..0ad9759ab0c1 100644
|
||||
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068,
|
||||
@@ -5395,6 +5404,7 @@ static struct pci_device_id mptsas_pci_table[] = {
|
||||
@@ -5395,6 +5399,7 @@ static struct pci_device_id mptsas_pci_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
@ -1151,7 +1141,7 @@ index 86f16f3ea478..0ad9759ab0c1 100644
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, mptsas_pci_table);
|
||||
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
|
||||
index 6c5920db1e9d..c20e21e3d70a 100644
|
||||
index 6c5920db1e9d..dfbc97b68e6a 100644
|
||||
--- a/drivers/message/fusion/mptspi.c
|
||||
+++ b/drivers/message/fusion/mptspi.c
|
||||
@@ -1238,12 +1238,17 @@ static struct spi_function_template mptspi_transport_functions = {
|
||||
@ -1172,15 +1162,10 @@ index 6c5920db1e9d..c20e21e3d70a 100644
|
||||
{0} /* Terminating entry */
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, mptspi_pci_table);
|
||||
@@ -1534,6 +1539,12 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
@@ -1534,6 +1539,7 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
0, 0, 0, 0, 5);
|
||||
|
||||
scsi_scan_host(sh);
|
||||
+
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK);
|
||||
+ pr_warn("MPTSPI MODULE IS NOT SUPPORTED\n");
|
||||
+#endif
|
||||
+
|
||||
return 0;
|
||||
|
||||
@ -1346,7 +1331,7 @@ index f35647c470af..e57357f23306 100644
|
||||
{
|
||||
}
|
||||
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
|
||||
index ae9baf801681..4e01e6192f16 100644
|
||||
index ae9baf801681..55648c5fe49e 100644
|
||||
--- a/drivers/pci/pci-driver.c
|
||||
+++ b/drivers/pci/pci-driver.c
|
||||
@@ -19,6 +19,7 @@
|
||||
@ -1357,90 +1342,19 @@ index ae9baf801681..4e01e6192f16 100644
|
||||
#include <linux/dma-map-ops.h>
|
||||
#include <linux/iommu.h>
|
||||
#include "pci.h"
|
||||
@@ -296,6 +297,83 @@ static struct attribute *pci_drv_attrs[] = {
|
||||
};
|
||||
ATTRIBUTE_GROUPS(pci_drv);
|
||||
|
||||
@@ -321,6 +322,12 @@ static long local_pci_probe(void *_ddi)
|
||||
*/
|
||||
pm_runtime_get_sync(dev);
|
||||
pci_dev->driver = pci_drv;
|
||||
+
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+/**
|
||||
+ * pci_hw_deprecated - Tell if a PCI device is deprecated
|
||||
+ * @ids: array of PCI device id structures to search in
|
||||
+ * @dev: the PCI device structure to match against
|
||||
+ *
|
||||
+ * Used by a driver to check whether this device is in its list of deprecated
|
||||
+ * devices. Returns the matching pci_device_id structure or %NULL if there is
|
||||
+ * no match.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+const struct pci_device_id *pci_hw_deprecated(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev)
|
||||
+{
|
||||
+ const struct pci_device_id *ret = pci_match_id(ids, dev);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ return NULL;
|
||||
+
|
||||
+ mark_hardware_deprecated(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
|
||||
+ dev->device, dev->vendor, pci_name(dev));
|
||||
+ return ret;
|
||||
+}
|
||||
+EXPORT_SYMBOL(pci_hw_deprecated);
|
||||
+
|
||||
+/**
|
||||
+ * pci_hw_unmaintained - Tell if a PCI device is unmaintained
|
||||
+ * @ids: array of PCI device id structures to search in
|
||||
+ * @dev: the PCI device structure to match against
|
||||
+ *
|
||||
+ * Used by a driver to check whether this device is in its list of unmaintained
|
||||
+ * devices. Returns the matching pci_device_id structure or %NULL if there is
|
||||
+ * no match.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+const struct pci_device_id *pci_hw_unmaintained(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev)
|
||||
+{
|
||||
+ const struct pci_device_id *ret = pci_match_id(ids, dev);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ return NULL;
|
||||
+
|
||||
+ mark_hardware_unmaintained(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
|
||||
+ dev->device, dev->vendor, pci_name(dev));
|
||||
+ return ret;
|
||||
+}
|
||||
+EXPORT_SYMBOL(pci_hw_unmaintained);
|
||||
+
|
||||
+/**
|
||||
+ * pci_hw_disabled - Tell if a PCI device is disabled
|
||||
+ * @ids: array of PCI device id structures to search in
|
||||
+ * @dev: the PCI device structure to match against
|
||||
+ *
|
||||
+ * Used by a driver to check whether this device is in its list of disabled
|
||||
+ * devices. Returns the matching pci_device_id structure or %NULL if there is
|
||||
+ * no match.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+const struct pci_device_id *pci_hw_disabled(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev)
|
||||
+{
|
||||
+ const struct pci_device_id *ret = pci_match_id(ids, dev);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ return NULL;
|
||||
+
|
||||
+ mark_hardware_disabled(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
|
||||
+ dev->device, dev->vendor, pci_name(dev));
|
||||
+ return ret;
|
||||
+}
|
||||
+EXPORT_SYMBOL(pci_hw_disabled);
|
||||
+ if (pci_rh_check_status(pci_dev))
|
||||
+ return -EACCES;
|
||||
+#endif
|
||||
+
|
||||
struct drv_dev_and_id {
|
||||
struct pci_driver *drv;
|
||||
struct pci_dev *dev;
|
||||
rc = pci_drv->probe(pci_dev, ddi->id);
|
||||
if (!rc)
|
||||
return rc;
|
||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
||||
index 321156ca273d..fc399e56ec8f 100644
|
||||
--- a/drivers/pci/quirks.c
|
||||
@ -1859,10 +1773,10 @@ index ab088c662e88..f974f9d9a7c5 100644
|
||||
enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var)
|
||||
{
|
||||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
|
||||
index 0d91e0af0125..d83e42ef8dd5 100644
|
||||
index 0d91e0af0125..9fbf61a303bc 100644
|
||||
--- a/include/linux/kernel.h
|
||||
+++ b/include/linux/kernel.h
|
||||
@@ -481,4 +481,25 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
||||
@@ -481,4 +481,18 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
||||
/* OTHER_WRITABLE? Generally considered a bad idea. */ \
|
||||
BUILD_BUG_ON_ZERO((perms) & 2) + \
|
||||
(perms))
|
||||
@ -1871,18 +1785,11 @@ index 0d91e0af0125..d83e42ef8dd5 100644
|
||||
+
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+void mark_hardware_unmaintained(const char *driver_name, char *fmt, ...);
|
||||
+void mark_driver_unmaintained(const char *driver_name);
|
||||
+void mark_hardware_deprecated(const char *driver_name, char *fmt, ...);
|
||||
+void mark_driver_deprecated(const char *driver_name);
|
||||
+void mark_hardware_disabled(const char *driver_name, char *fmt, ...);
|
||||
+void mark_tech_preview(const char *msg, struct module *mod);
|
||||
+void mark_partner_supported(const char *msg, struct module *mod);
|
||||
+void init_rh_check_status(char *fn_name);
|
||||
+#else
|
||||
+static inline void mark_hardware_unmaintained(const char *driver_name, char *fmt, ...) { }
|
||||
+static inline void mark_driver_unmaintained(const char *driver_name) { }
|
||||
+static inline void mark_hardware_deprecated(const char *driver_name, char *fmt, ...) { }
|
||||
+static inline void mark_driver_deprecated(const char *driver_name) { }
|
||||
+static inline void mark_hardware_disabled(const char *driver_name, char *fmt, ...) { }
|
||||
+static inline void mark_tech_preview(const char *msg, struct module *mod) { }
|
||||
+static inline void mark_partner_supported(const char *msg, struct module *mod) { }
|
||||
+#endif
|
||||
@ -1902,7 +1809,7 @@ index 7308a1a7599b..a3aa26339b43 100644
|
||||
#ifdef CONFIG_PERF_EVENTS
|
||||
LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type)
|
||||
diff --git a/include/linux/module.h b/include/linux/module.h
|
||||
index a98e188cf37b..2eef4246c2c9 100644
|
||||
index a98e188cf37b..059c2f633ef6 100644
|
||||
--- a/include/linux/module.h
|
||||
+++ b/include/linux/module.h
|
||||
@@ -418,6 +418,7 @@ struct module {
|
||||
@ -1913,6 +1820,15 @@ index a98e188cf37b..2eef4246c2c9 100644
|
||||
struct kobject *holders_dir;
|
||||
|
||||
/* Exported symbols */
|
||||
@@ -988,4 +989,8 @@ static inline unsigned long find_kallsyms_symbol_value(struct module *mod,
|
||||
|
||||
#endif /* CONFIG_MODULES && CONFIG_KALLSYMS */
|
||||
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+void module_rh_check_status(const char * module_name);
|
||||
+#endif
|
||||
+
|
||||
#endif /* _LINUX_MODULE_H */
|
||||
diff --git a/include/linux/panic.h b/include/linux/panic.h
|
||||
index 6717b15e798c..8e1d3eae1686 100644
|
||||
--- a/include/linux/panic.h
|
||||
@ -1943,32 +1859,28 @@ index 6717b15e798c..8e1d3eae1686 100644
|
||||
|
||||
struct taint_flag {
|
||||
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
||||
index c69a2cc1f412..27da72fdff38 100644
|
||||
index c69a2cc1f412..b9ae5eb4c66d 100644
|
||||
--- a/include/linux/pci.h
|
||||
+++ b/include/linux/pci.h
|
||||
@@ -1560,6 +1560,22 @@ int pci_add_dynid(struct pci_driver *drv,
|
||||
@@ -1560,6 +1560,7 @@ int pci_add_dynid(struct pci_driver *drv,
|
||||
unsigned long driver_data);
|
||||
const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
|
||||
struct pci_dev *dev);
|
||||
+
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+const struct pci_device_id *pci_hw_deprecated(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev);
|
||||
+const struct pci_device_id *pci_hw_unmaintained(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev);
|
||||
+const struct pci_device_id *pci_hw_disabled(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev);
|
||||
+#else
|
||||
+static inline const struct pci_device_id *pci_hw_deprecated(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev) { return NULL; }
|
||||
+static inline const struct pci_device_id *pci_hw_unmaintained(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev) { return NULL; }
|
||||
+static inline const struct pci_device_id *pci_hw_disabled(const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev) {return NULL; }
|
||||
+#endif
|
||||
int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
|
||||
int pass);
|
||||
|
||||
@@ -2578,6 +2579,10 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
|
||||
return false;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+bool pci_rh_check_status(struct pci_dev *pci_dev);
|
||||
+#endif
|
||||
+
|
||||
#if defined(CONFIG_PCIEPORTBUS) || defined(CONFIG_EEH)
|
||||
void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type);
|
||||
#endif
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
new file mode 100644
|
||||
index 000000000000..c7b42c1f1681
|
||||
@ -2525,6 +2437,20 @@ index 32828502f09e..b5c27505fa16 100644
|
||||
#endif /* CONFIG_SECURITY */
|
||||
|
||||
#if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE)
|
||||
diff --git a/init/main.c b/init/main.c
|
||||
index ad920fac325c..5ff72cc9c7e3 100644
|
||||
--- a/init/main.c
|
||||
+++ b/init/main.c
|
||||
@@ -1147,6 +1147,9 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
|
||||
*/
|
||||
strreplace(fn_name, ' ', '\0');
|
||||
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ init_rh_check_status(fn_name);
|
||||
+#endif
|
||||
list_for_each_entry(entry, &blacklisted_initcalls, next) {
|
||||
if (!strcmp(fn_name, entry->buf)) {
|
||||
pr_debug("initcall %s blacklisted\n", fn_name);
|
||||
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||
index 3947122d618b..5b9462a450a1 100644
|
||||
--- a/kernel/Makefile
|
||||
@ -2586,7 +2512,7 @@ index a2aef900519c..b872a64be8fd 100644
|
||||
}
|
||||
|
||||
diff --git a/kernel/module/main.c b/kernel/module/main.c
|
||||
index 59b1d067e528..b49c20c89bed 100644
|
||||
index 59b1d067e528..0b1c207dcd4f 100644
|
||||
--- a/kernel/module/main.c
|
||||
+++ b/kernel/module/main.c
|
||||
@@ -528,6 +528,7 @@ static struct module_attribute modinfo_##field = { \
|
||||
@ -2605,6 +2531,18 @@ index 59b1d067e528..b49c20c89bed 100644
|
||||
&modinfo_initstate,
|
||||
&modinfo_coresize,
|
||||
#ifdef CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC
|
||||
@@ -2794,6 +2796,11 @@ static int early_mod_check(struct load_info *info, int flags)
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ if (get_modinfo(info, "intree"))
|
||||
+ module_rh_check_status(info->name);
|
||||
+#endif
|
||||
+
|
||||
err = rewrite_section_headers(info, flags);
|
||||
if (err)
|
||||
return err;
|
||||
diff --git a/kernel/module/signing.c b/kernel/module/signing.c
|
||||
index a2ff4242e623..f0d2be1ee4f1 100644
|
||||
--- a/kernel/module/signing.c
|
||||
@ -2654,14 +2592,10 @@ index 10effe40a3fa..f49ce6660929 100644
|
||||
/**
|
||||
diff --git a/kernel/rh_messages.c b/kernel/rh_messages.c
|
||||
new file mode 100644
|
||||
index 000000000000..018800f35ff2
|
||||
index 000000000000..48a6bb6c9b38
|
||||
--- /dev/null
|
||||
+++ b/kernel/rh_messages.c
|
||||
@@ -0,0 +1,209 @@
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
+#define DEV_DESC_LEN 256
|
||||
@@ -0,0 +1,414 @@
|
||||
+/*
|
||||
+ * The following functions are used by Red Hat to indicate to users that
|
||||
+ * hardware and drivers are unsupported, or have limited support in RHEL major
|
||||
@ -2679,6 +2613,11 @@ index 000000000000..018800f35ff2
|
||||
+ * related fixes until they are disabled.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/pci.h>
|
||||
+#include "rh_messages.h"
|
||||
+
|
||||
+/**
|
||||
+ * mark_hardware_unmaintained() - Mark hardware as unmaintained.
|
||||
+ * @driver_name: driver name
|
||||
@ -2687,13 +2626,16 @@ index 000000000000..018800f35ff2
|
||||
+ *
|
||||
+ * Called to notify users that the device will no longer be tested on a routine
|
||||
+ * basis and driver code associated with this device is no longer being updated.
|
||||
+ * Red Hat may fix security-related and critical issues. Support for this device
|
||||
+ * will be disabled in a future major release and users deploying this device
|
||||
+ * should plan to replace the device in production systems.
|
||||
+ * Red Hat may, at their own discretion, fix security-related and critical
|
||||
+ * issues. Support for this device will be disabled in a future major release
|
||||
+ * and users deploying this device should plan to replace the device in
|
||||
+ * production systems.
|
||||
+ *
|
||||
+ * This function should be used when the driver's usage can be tied to a
|
||||
+ * specific hardware device. For example, a network device driver loading on a
|
||||
+ * specific device that is no longer maintained by the manufacturer.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void mark_hardware_unmaintained(const char *driver_name, char *fmt, ...)
|
||||
+{
|
||||
@ -2702,33 +2644,13 @@ index 000000000000..018800f35ff2
|
||||
+
|
||||
+ va_start(args, fmt);
|
||||
+ vsnprintf(device_description, DEV_DESC_LEN, fmt, args);
|
||||
+ pr_crit("Warning: Unmaintained hardware is detected: %s:%s\n", driver_name,
|
||||
+ device_description);
|
||||
+ pr_crit(RH_UNMAINT_HW,
|
||||
+ driver_name, device_description);
|
||||
+ va_end(args);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_hardware_unmaintained);
|
||||
+
|
||||
+/**
|
||||
+ * mark_driver_unmaintained() - Mark a driver as unmaintained.
|
||||
+ * @driver_name: driver name
|
||||
+ *
|
||||
+ * Called to notify users that a driver will no longer be tested on a routine
|
||||
+ * basis and the driver code is no longer being updated. Red Hat may fix
|
||||
+ * security-related and critical issues. Support for this driver will be
|
||||
+ * disabled in a future major release, and users should replace any affected
|
||||
+ * devices in production systems.
|
||||
+ *
|
||||
+ * This function should be used when a driver's usage cannot be tied to a
|
||||
+ * specific hardware device. For example, a network bonding driver or a higher
|
||||
+ * level storage layer driver that is no longer maintained upstream.
|
||||
+ */
|
||||
+void mark_driver_unmaintained(const char *driver_name)
|
||||
+{
|
||||
+ pr_crit("Warning: Unmaintained driver is detected: %s\n", driver_name);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_driver_unmaintained);
|
||||
+
|
||||
+/**
|
||||
+ * mark_hardware_deprecated() - Mark hardware as deprecated.
|
||||
+ * @driver_name: driver name
|
||||
+ * @fmt: format for device description
|
||||
@ -2742,6 +2664,8 @@ index 000000000000..018800f35ff2
|
||||
+ * This function should be used when the driver's usage can be tied to a
|
||||
+ * specific hardware device. For example, a network device driver loading on a
|
||||
+ * specific device that is no longer maintained by the manufacturer.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void mark_hardware_deprecated(const char *driver_name, char *fmt, ...)
|
||||
+{
|
||||
@ -2750,32 +2674,10 @@ index 000000000000..018800f35ff2
|
||||
+
|
||||
+ va_start(args, fmt);
|
||||
+ vsnprintf(device_description, DEV_DESC_LEN, fmt, args);
|
||||
+ pr_crit("Warning: Deprecated Hardware is detected: %s:%s will not be maintained in a future major release and may be disabled\n",
|
||||
+ pr_crit(RH_DEPRECATED_HW,
|
||||
+ driver_name, device_description);
|
||||
+ va_end(args);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_hardware_deprecated);
|
||||
+
|
||||
+/**
|
||||
+ * mark_driver_deprecated() - Mark a driver as deprecated.
|
||||
+ * @driver_name: driver name
|
||||
+ *
|
||||
+ * Called to notify users that support for this driver is planned to be
|
||||
+ * unmaintained in a future major release, and will eventually be disabled in a
|
||||
+ * future major release. This driver should not be used in new production
|
||||
+ * environments and users should replace any affected devices in production
|
||||
+ * systems.
|
||||
+ *
|
||||
+ * This function should be used when a driver's usage cannot be tied to a
|
||||
+ * specific hardware device. For example, a network bonding driver or a higher
|
||||
+ * level storage layer driver that is no longer maintained upstream.
|
||||
+ */
|
||||
+void mark_driver_deprecated(const char *driver_name)
|
||||
+{
|
||||
+ pr_crit("Warning: Deprecated Driver is detected: %s will not be maintained in a future major release and may be disabled\n",
|
||||
+ driver_name);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_driver_deprecated);
|
||||
+
|
||||
+/**
|
||||
+ * mark_hardware_disabled() - Mark a driver as removed.
|
||||
@ -2791,19 +2693,199 @@ index 000000000000..018800f35ff2
|
||||
+ * This function should be used when the driver's usage can be tied to a
|
||||
+ * specific hardware device. For example, a network device driver loading on a
|
||||
+ * specific device that is no longer maintained by the manufacturer.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void mark_hardware_disabled(const char *driver_name, char *fmt, ...)
|
||||
+static void mark_hardware_disabled(const char *driver_name, char *fmt, ...)
|
||||
+{
|
||||
+ char device_description[DEV_DESC_LEN];
|
||||
+ va_list args;
|
||||
+
|
||||
+ va_start(args, fmt);
|
||||
+ vsnprintf(device_description, DEV_DESC_LEN, fmt, args);
|
||||
+ pr_crit("Warning: Disabled Hardware is detected: %s:%s is no longer enabled in this release.\n",
|
||||
+ pr_crit(RH_DISABLED_HW,
|
||||
+ driver_name, device_description);
|
||||
+ va_end(args);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_hardware_disabled);
|
||||
+
|
||||
+#ifdef CONFIG_PCI
|
||||
+/**
|
||||
+ * pci_hw_deprecated() - Mark a PCI device deprecated.
|
||||
+ * @dev: the PCI device structure to match against
|
||||
+ *
|
||||
+ * Called to check if this @dev is in the list of deprecated devices.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+static void pci_hw_deprecated(struct pci_dev *dev)
|
||||
+{
|
||||
+ const struct pci_device_id *ret = pci_match_id(rh_deprecated_pci_devices, dev);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ return;
|
||||
+
|
||||
+ mark_hardware_deprecated(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
|
||||
+ dev->device, dev->vendor, pci_name(dev));
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * pci_hw_unmaintained() - Mark a PCI device unmaintained.
|
||||
+ * @dev: the PCI device structure to match against
|
||||
+ *
|
||||
+ * Called to check if this @dev is in the list of unmaintained devices.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+static void pci_hw_unmaintained(struct pci_dev *dev)
|
||||
+{
|
||||
+ const struct pci_device_id *ret = pci_match_id(rh_unmaintained_pci_devices, dev);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ return;
|
||||
+
|
||||
+ mark_hardware_unmaintained(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
|
||||
+ dev->device, dev->vendor, pci_name(dev));
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * pci_hw_disabled() - Mark a PCI device disabled.
|
||||
+ * @dev: the PCI device structure to match against
|
||||
+ *
|
||||
+ * Called to check if this @dev is in the list of disabled devices.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+static bool pci_hw_disabled(struct pci_dev *dev)
|
||||
+{
|
||||
+ const struct pci_device_id *ret = pci_match_id(rh_disabled_pci_devices, dev);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ return false;
|
||||
+
|
||||
+ mark_hardware_disabled(dev_driver_string(&dev->dev), "%04X:%04X @ %s",
|
||||
+ dev->device, dev->vendor, pci_name(dev));
|
||||
+ return true;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+/**
|
||||
+ * driver_unmaintained() - check to see if a driver is unmaintained
|
||||
+ * @module_name: module name
|
||||
+ *
|
||||
+ * Called to notify users that a driver will no longer be tested on a routine
|
||||
+ * basis and the driver code is no longer being updated. Red Hat may fix
|
||||
+ * security-related and critical issues. Support for this driver will be
|
||||
+ * disabled in a future major release, and users should replace any affected
|
||||
+ * devices in production systems.
|
||||
+ *
|
||||
+ * This function should be used when a driver's usage cannot be tied to a
|
||||
+ * specific hardware device. For example, a network bonding driver or a higher
|
||||
+ * level storage layer driver that is no longer maintained upstream.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+static void driver_unmaintained(const char* module_name)
|
||||
+{
|
||||
+ int i = 0;
|
||||
+
|
||||
+ while (rh_unmaintained_drivers[i]) {
|
||||
+ if (strcmp(rh_unmaintained_drivers[i], module_name) == 0) {
|
||||
+ pr_crit(RH_UNMAINT_DR, module_name);
|
||||
+ return;
|
||||
+ }
|
||||
+ i++;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * driver_deprecated() - check to see if a driver is deprecated
|
||||
+ * @driver_name: module name
|
||||
+ *
|
||||
+ * Called to notify users that support for this driver is planned to be
|
||||
+ * unmaintained in a future major release, and will eventually be disabled in a
|
||||
+ * future major release. This driver should not be used in new production
|
||||
+ * environments and users should replace any affected devices in production
|
||||
+ * systems.
|
||||
+ *
|
||||
+ * This function should be used when a driver's usage cannot be tied to a
|
||||
+ * specific hardware device. For example, a network bonding driver or a higher
|
||||
+ * level storage layer driver that is no longer maintained upstream.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+static void driver_deprecated(const char* module_name)
|
||||
+{
|
||||
+ int i = 0;
|
||||
+
|
||||
+ while (rh_deprecated_drivers[i]) {
|
||||
+ if (strcmp(rh_deprecated_drivers[i], module_name) == 0) {
|
||||
+ pr_crit(RH_DEPRECATED_DR, module_name);
|
||||
+ return;
|
||||
+ }
|
||||
+ i++;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/* There is no driver_disabled() function. Disabled drivers are configured off ;). */
|
||||
+
|
||||
+/**
|
||||
+ * init_fn_unmaintained - check to see if a built-in driver is unmaintained.
|
||||
+ * @fn_name: module's module_init function name
|
||||
+ *
|
||||
+ * Called to notify users that a built-in driver will no longer be tested on a routine
|
||||
+ * basis and the built-in driver code is no longer being updated. Red Hat may fix
|
||||
+ * security-related and critical issues. Support for this built-in driver will be
|
||||
+ * disabled in a future major release, and users should replace any affected
|
||||
+ * devices in production systems.
|
||||
+ *
|
||||
+ * This function should be used when a built-in driver's usage cannot be tied to a
|
||||
+ * specific hardware device. For example, a network bonding driver or a higher
|
||||
+ * level storage layer driver that is no longer maintained upstream.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+
|
||||
+static void init_fn_unmaintained(char* fn_name)
|
||||
+{
|
||||
+ int i = 0;
|
||||
+
|
||||
+ while (rh_unmaintained_init_fns[i]) {
|
||||
+ if (strcmp(rh_unmaintained_init_fns[i], fn_name) == 0) {
|
||||
+ pr_crit(RH_UNMAINT_DR, fn_name);
|
||||
+ return;
|
||||
+ }
|
||||
+ i++;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * init_fn_deprecated() - check to see if a built-in driver is deprecated
|
||||
+ * @fn_name: module's module_init function name
|
||||
+ *
|
||||
+ * Called to notify users that support for this built-in driver is planned to be
|
||||
+ * unmaintained in a future major release, and will eventually be disabled in a
|
||||
+ * future major release. This driver should not be used in new production
|
||||
+ * environments and users should replace any affected devices in production
|
||||
+ * systems.
|
||||
+ *
|
||||
+ * This function should be used when a built-in driver's usage cannot be tied to a
|
||||
+ * specific hardware device. For example, a network bonding driver or a higher
|
||||
+ * level storage layer driver that is no longer maintained upstream.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+static void init_fn_deprecated(char* fn_name)
|
||||
+{
|
||||
+ int i = 0;
|
||||
+
|
||||
+ while (rh_deprecated_init_fns[i]) {
|
||||
+ if (strcmp(rh_deprecated_init_fns[i], fn_name) == 0) {
|
||||
+ pr_crit(RH_DEPRECATED_DR, fn_name);
|
||||
+ return;
|
||||
+ }
|
||||
+ i++;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * mark_tech_preview() - Mark driver or kernel subsystem as 'Tech Preview'
|
||||
@ -2815,6 +2897,8 @@ index 000000000000..018800f35ff2
|
||||
+ * minor release. The next RHEL minor release may contain full support for
|
||||
+ * this driver. Red Hat does not guarantee that bugs reported against this
|
||||
+ * driver or subsystem will be resolved.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void mark_tech_preview(const char *msg, struct module *mod)
|
||||
+{
|
||||
@ -2827,9 +2911,7 @@ index 000000000000..018800f35ff2
|
||||
+ str = mod->name;
|
||||
+#endif
|
||||
+
|
||||
+ pr_warn("TECH PREVIEW: %s may not be fully supported.\n"
|
||||
+ "Please review provided documentation for limitations.\n",
|
||||
+ (str ? str : "kernel"));
|
||||
+ pr_warn(RH_TECH_PREVIEW, (str ? str : "kernel"));
|
||||
+ add_taint(TAINT_AUX, LOCKDEP_STILL_OK);
|
||||
+#ifdef CONFIG_MODULES
|
||||
+ if (mod)
|
||||
@ -2842,31 +2924,207 @@ index 000000000000..018800f35ff2
|
||||
+ * mark_partner_supported() - Mark driver or kernel subsystem as 'Partner Supported'
|
||||
+ * @msg: Driver or kernel subsystem name
|
||||
+ *
|
||||
+ * Called to clarify the support status of a driver. This does TAINT the
|
||||
+ * kernel. Calling this function indicates that the driver or subsystem is
|
||||
+ * supported by one of our partners and not by Red Hat directly.
|
||||
+ * Called to minimize the support status of a new driver. This does TAINT the
|
||||
+ * kernel. Calling this function indicates that the driver or subsystem
|
||||
+ * is not supported directly by Red Hat but by a partner engineer.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void mark_partner_supported(const char *msg, struct module *mod)
|
||||
+{
|
||||
+ const char *str = NULL;
|
||||
+ const char *str = NULL;
|
||||
+
|
||||
+ if (msg)
|
||||
+ str = msg;
|
||||
+ if (msg)
|
||||
+ str = msg;
|
||||
+#ifdef CONFIG_MODULES
|
||||
+ else if (mod)
|
||||
+ str = mod->name;
|
||||
+#endif
|
||||
+
|
||||
+ pr_warn("Notice: %s is a Partner Supported GPL module and not supported directly by Red Hat.\n"
|
||||
+ "Please contact your provider for support.\n",
|
||||
+ (str ? str : "kernel"));
|
||||
+ add_taint(TAINT_PARTNER_SUPPORTED, LOCKDEP_STILL_OK);
|
||||
+ pr_warn(RH_PARTNER_SUPPORTED, (str ? str : "kernel"));
|
||||
+ add_taint(TAINT_PARTNER_SUPPORTED, LOCKDEP_STILL_OK);
|
||||
+#ifdef CONFIG_MODULES
|
||||
+ if (mod)
|
||||
+ mod->taints |= (1U << TAINT_PARTNER_SUPPORTED);
|
||||
+ if (mod)
|
||||
+ mod->taints |= (1U << TAINT_PARTNER_SUPPORTED);
|
||||
+#endif
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_partner_supported);
|
||||
+
|
||||
+/*
|
||||
+ *
|
||||
+ * Functions called by 'main' kernel code.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifdef CONFIG_PCI
|
||||
+/**
|
||||
+ * pci_rh_check_status - checks the status of a PCI device.
|
||||
+ * @pci_dev: PCI device to be examined
|
||||
+ *
|
||||
+ * This function is called by the PCI driver subsystem to check the status of a
|
||||
+ * PCI device.
|
||||
+ *
|
||||
+ * This function returns true if the PCI device is disabled, and false otherwise.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+bool pci_rh_check_status(struct pci_dev *pci_dev)
|
||||
+{
|
||||
+ if (pci_dev->driver->driver.owner != NULL) {
|
||||
+ if (!test_bit(TAINT_OOT_MODULE, &pci_dev->driver->driver.owner->taints)) {
|
||||
+ pci_hw_unmaintained(pci_dev);
|
||||
+ pci_hw_deprecated(pci_dev);
|
||||
+ return pci_hw_disabled(pci_dev);
|
||||
+ }
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+/** module_rh_check_status - checks the status of a module.
|
||||
+ * @module_name: Name of module to be examined
|
||||
+ *
|
||||
+ * This function is called by the module loading code to check the status of a
|
||||
+ * module.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void module_rh_check_status(const char * module_name)
|
||||
+{
|
||||
+ driver_unmaintained(module_name);
|
||||
+ driver_deprecated(module_name);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * init_rh_check_status - checks the status of a built-in module.
|
||||
+ * @fn_name: init function of module to be examined
|
||||
+ *
|
||||
+ * This function is called by the init code to check the status of a built-in module.
|
||||
+ * When a module is built-in, the module_init() function is converted into an initcall.
|
||||
+ * The initcall is the called during boot with the other system initcalls.
|
||||
+ *
|
||||
+ * Reserved for Internal Red Hat use only.
|
||||
+ */
|
||||
+void init_rh_check_status(char *fn_name)
|
||||
+{
|
||||
+ init_fn_deprecated(fn_name);
|
||||
+ init_fn_unmaintained(fn_name);
|
||||
+}
|
||||
diff --git a/kernel/rh_messages.h b/kernel/rh_messages.h
|
||||
new file mode 100644
|
||||
index 000000000000..616692b1ac11
|
||||
--- /dev/null
|
||||
+++ b/kernel/rh_messages.h
|
||||
@@ -0,0 +1,109 @@
|
||||
+/*
|
||||
+ * WARNING: This file is auto-generated by an internal Red Hat script and,
|
||||
+ * in general, should not be modified by hand.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * The following tables are used by Red Hat to define what hardware and drivers
|
||||
+ * are unsupported, or have limited support in RHEL major and minor releases.
|
||||
+ *
|
||||
+ * Generally, the process of disabling a driver or device in RHEL requires the
|
||||
+ * driver or device to be marked as 'deprecated' in all existing releases, and
|
||||
+ * then either 'unmaintained' or 'disabled' in a future release.
|
||||
+ *
|
||||
+ * In general, deprecated and unmaintained drivers continue to receive security
|
||||
+ * related fixes until they are disabled.
|
||||
+ */
|
||||
+
|
||||
+#ifndef __RH_MESSAGES_H
|
||||
+#define __RH_MESSAGES_H
|
||||
+
|
||||
+#include <linux/version.h>
|
||||
+#include <linux/pci.h>
|
||||
+
|
||||
+#define DEV_DESC_LEN 256
|
||||
+
|
||||
+#define RH_UNMAINT_HW "Warning: Unmaintained Hardware is detected: %s:%s\n"
|
||||
+
|
||||
+#define RH_UNMAINT_DR "Warning: Unmaintained driver is detected: %s\n"
|
||||
+
|
||||
+#define RH_DEPRECATED_HW "Warning: Deprecated Hardware is detected: %s:%s " \
|
||||
+ "will not be maintained in a future major release " \
|
||||
+ "and may be disabled\n"
|
||||
+
|
||||
+#define RH_DEPRECATED_DR "Warning: Deprecated Driver is detected: %s will " \
|
||||
+ "not be maintained in a future major release and " \
|
||||
+ "may be disabled\n"
|
||||
+
|
||||
+#define RH_DISABLED_HW "Warning: Disabled Hardware is detected: %s:%s is " \
|
||||
+ "no longer enabled in this release.\n"
|
||||
+
|
||||
+#define RH_TECH_PREVIEW "TECH PREVIEW: %s may not be fully supported.\n" \
|
||||
+ "Please review provided documentation for " \
|
||||
+ "limitations.\n"
|
||||
+
|
||||
+#define RH_PARTNER_SUPPORTED "Warning: %s is a Partner supported GPL " \
|
||||
+ "module and not supported directly by Red Hat.\n"
|
||||
+
|
||||
+#if RHEL_MAJOR == 9
|
||||
+
|
||||
+static const char *rh_deprecated_drivers[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const char *rh_deprecated_init_fns[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const char *rh_unmaintained_drivers[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const char *rh_unmaintained_init_fns[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const struct pci_device_id rh_deprecated_pci_devices[] = {
|
||||
+ {0} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const struct pci_device_id rh_disabled_pci_devices[] = {
|
||||
+ {0} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const struct pci_device_id rh_unmaintained_pci_devices[] = {
|
||||
+ {0} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+#else /* RHEL-10 */
|
||||
+
|
||||
+static const char *rh_deprecated_drivers[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const char *rh_deprecated_init_fns[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const char *rh_unmaintained_drivers[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const char *rh_unmaintained_init_fns[] = {
|
||||
+ 0 /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const struct pci_device_id rh_deprecated_pci_devices[] = {
|
||||
+ {0} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const struct pci_device_id rh_disabled_pci_devices[] = {
|
||||
+ {0} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+static const struct pci_device_id rh_unmaintained_pci_devices[] = {
|
||||
+ {0} /* Terminating entry */
|
||||
+};
|
||||
+#endif /* RHEL_MAJOR */
|
||||
+
|
||||
+#endif /* __RH_MESSAGES_H */
|
||||
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
|
||||
index b29b29707f10..e176487ebf1f 100644
|
||||
--- a/scripts/mod/modpost.c
|
||||
|
6
sources
6
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (linux-6.5-rc6.tar.xz) = e5ac3513eb366e10cbf27c1b7994fa830626aa20c5fd6ec261b6aee7267c22000ecc31b0ec94d154c864bc361eca5539cad08006f96d6312fd3038dd9727323a
|
||||
SHA512 (kernel-abi-stablelists-6.5.0.tar.bz2) = 6107f982f8ee7bb003c3338f39f7be48ea12e7d14fcc99fc193b4ca7e100409de12320451fab7b806b24d661a1937dd53e6a36093563bd3b8405b0834d627add
|
||||
SHA512 (kernel-kabi-dw-6.5.0.tar.bz2) = 2705fa93054d143dce4ee74cfe2e3906c19b97ec7118ad1a95dd18c999929dd66aab267dbdfcf5be71988de0eb5073ce52169d62dd30e491475fab6bddc48a5a
|
||||
SHA512 (linux-6.5-rc6-27-g91aa6c412d7f.tar.xz) = 0b12eafe62eac159bad74bebcf3e9201bf6a6a3376a69bf508a293c622ac9f5cb1a9bc32430a7fb551d4f9a2bb0b96f0ae0923856b1f919b1021c22b5a95d212
|
||||
SHA512 (kernel-abi-stablelists-6.5.0.tar.bz2) = 4237bd59883c06ceb29d3f119260ceff32a22402da3e0e90b181584bbee56af585cd8a1ae9f27937dbb51afd895b507cbe2bf4887812fe64fb1823b5b3ea6d4f
|
||||
SHA512 (kernel-kabi-dw-6.5.0.tar.bz2) = 3c9b4444bf1fe89cb4a08cfc05999e2b6c4233c254caad3f737e93b7dcfb0b5e6634a284ac368f5c0155564865d36f06d55575c419c03745fbe221ab6a942b3b
|
||||
|
Loading…
Reference in New Issue
Block a user