Cleanups to prepare for stable Fedora
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
This commit is contained in:
parent
47a895f435
commit
8341d1868d
@ -1,240 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Wed, 13 Nov 2019 14:44:31 -0500
|
||||
Subject: [PATCH] Add Red Hat tainting
|
||||
|
||||
Message-id: <20191113144431.9403-5-labbott@redhat.com>
|
||||
Patchwork-id: 286078
|
||||
O-Subject: [ARK INTERNAL PATCHv2 4/4] [redhat] Add Red Hat tainting
|
||||
Bugzilla:
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
This is a combination of the following commits including support
|
||||
for adding CONFIG_RH_DEPRECATED support
|
||||
|
||||
rh_taint: add support
|
||||
|
||||
Message-id: <1524831536-47239-1-git-send-email-darcari@redhat.com>
|
||||
Patchwork-id: 211655
|
||||
O-Subject: [RHEL8.0 BZ 1565704 v2] rh_taint: add support
|
||||
Bugzilla: 1565704
|
||||
RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1565704
|
||||
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=15910441
|
||||
Upstream: RHEL Only
|
||||
Test: Sanity boot of brew build. Previous private build testing of functions.
|
||||
|
||||
rh_taint.c adds the following functions which are utilized by Red Hat to
|
||||
indicate limited or no support for hardware and/or drivers.
|
||||
|
||||
mark_hardware_unsupported
|
||||
mark_hardware_deprecated
|
||||
mark_tech_preview
|
||||
|
||||
See code comments for usage.
|
||||
|
||||
RHEL8 change: TAINT_AUX will be used in place of TAINT_TECH_PREVIEW as it
|
||||
limits the number RHEL only changes that must be made to the kernel.
|
||||
|
||||
If at a later date it is determined that additional flags are required,
|
||||
the associated RHEL only infrastructure can be added at that time.
|
||||
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
rh_taint: add support for marking driver as unsupported
|
||||
|
||||
Message-id: <f42d35b07bd02f34b14a6341a219c80b21a8aff9.1524523802.git.jtoppins@redhat.com>
|
||||
Patchwork-id: 211020
|
||||
O-Subject: [RHEL8.0] rh_taint: add support for marking driver as unsupported
|
||||
Bugzilla: 1565704
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: David Arcari <darcari@redhat.com>
|
||||
|
||||
In some cases a driver needs to be enabled by Red Hat to support internal
|
||||
testing but the driver is not intended to be supported on customer hardware.
|
||||
This adds a function "make_driver_unsupported()" to facilitate such
|
||||
situations. The function will print a kernel log message.
|
||||
|
||||
Bugzilla: 1565704
|
||||
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=15873552
|
||||
Tested: compile only
|
||||
|
||||
Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
rh_taint: correct loaddable module support dependencies
|
||||
|
||||
Message-id: <20181123111337.26898-5-prudo@redhat.com>
|
||||
Patchwork-id: 233658
|
||||
O-Subject: [ARK PATCH RESEND v2 4/8] [kernel] rh_taint: correct loaddable module support dependencies
|
||||
Bugzilla: 1652266
|
||||
RH-Acked-by: Jakub Racek <jracek@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: 1652266
|
||||
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=19252944
|
||||
Upstream Status: RHEL_only
|
||||
|
||||
The kernel configuration for the s390/zfcpdump kernel variant turns
|
||||
loaddable module support off. The build breaks in rh_taint.c due to
|
||||
compiler errors caused by dereferencing struct module variables which
|
||||
is just a declaration if CONFIG_MODULES is not set.
|
||||
|
||||
To solve this build break, access struct module members only if
|
||||
CONFIG_MODULES is enabled.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
||||
---
|
||||
include/linux/kernel.h | 15 +++++++
|
||||
kernel/Makefile | 2 +
|
||||
kernel/rh_taint.c | 93 ++++++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 110 insertions(+)
|
||||
create mode 100644 kernel/rh_taint.c
|
||||
|
||||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
|
||||
index 82d91547d122..b82db0c0caec 100644
|
||||
--- a/include/linux/kernel.h
|
||||
+++ b/include/linux/kernel.h
|
||||
@@ -1038,4 +1038,19 @@ 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))
|
||||
+
|
||||
+struct module;
|
||||
+
|
||||
+#ifdef CONFIG_RH_DISABLE_DEPRECATED
|
||||
+void mark_hardware_unsupported(const char *msg);
|
||||
+void mark_hardware_deprecated(const char *msg);
|
||||
+void mark_tech_preview(const char *msg, struct module *mod);
|
||||
+void mark_driver_unsupported(const char *name);
|
||||
+#else
|
||||
+static inline void mark_hardware_unsupported(const char *msg) { }
|
||||
+static inline void mark_hardware_deprecated(const char *msg) { }
|
||||
+static inline void mark_tech_preview(const char *msg, struct module *mod) { }
|
||||
+static inline void mark_driver_unsupported(const char *name) { }
|
||||
+#endif
|
||||
+
|
||||
#endif
|
||||
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||
index f3218bc5ec69..c0a4904413b5 100644
|
||||
--- a/kernel/Makefile
|
||||
+++ b/kernel/Makefile
|
||||
@@ -12,6 +12,8 @@ obj-y = fork.o exec_domain.o panic.o \
|
||||
notifier.o ksysfs.o cred.o reboot.o \
|
||||
async.o range.o smpboot.o ucount.o
|
||||
|
||||
+obj-$(CONFIG_RH_DISABLE_DEPRECATED) += rh_taint.o
|
||||
+
|
||||
obj-$(CONFIG_MODULES) += kmod.o
|
||||
obj-$(CONFIG_MULTIUSER) += groups.o
|
||||
|
||||
diff --git a/kernel/rh_taint.c b/kernel/rh_taint.c
|
||||
new file mode 100644
|
||||
index 000000000000..8d1641710ed7
|
||||
--- /dev/null
|
||||
+++ b/kernel/rh_taint.c
|
||||
@@ -0,0 +1,93 @@
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
+/*
|
||||
+ * 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
|
||||
+ * and minor releases. These functions output loud warning messages to the end
|
||||
+ * user and should be USED WITH CAUTION.
|
||||
+ *
|
||||
+ * Any use of these functions _MUST_ be documented in the RHEL Release Notes,
|
||||
+ * and have approval of management.
|
||||
+ */
|
||||
+
|
||||
+/**
|
||||
+ * mark_hardware_unsupported() - Mark hardware, class, or type as unsupported.
|
||||
+ * @msg: Hardware name, class, or type
|
||||
+ *
|
||||
+ * Called to mark a device, class of devices, or types of devices as not having
|
||||
+ * support in any RHEL minor release. This does not TAINT the kernel. Red Hat
|
||||
+ * will not fix bugs against this hardware in this minor release. Red Hat may
|
||||
+ * declare support in a future major or minor update release. This cannot be
|
||||
+ * used to mark drivers unsupported.
|
||||
+ */
|
||||
+void mark_hardware_unsupported(const char *msg)
|
||||
+{
|
||||
+ /* Print one single message */
|
||||
+ pr_crit("Warning: %s - this hardware has not undergone testing by Red Hat and might not be certified. Please consult https://hardware.redhat.com for certified hardware.\n", msg);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_hardware_unsupported);
|
||||
+
|
||||
+/**
|
||||
+ * mark_hardware_deprecated() - Mark hardware, class, or type as deprecated.
|
||||
+ * @msg: Hardware name, class, or type
|
||||
+ *
|
||||
+ * Called to minimize the support status of a previously supported device in
|
||||
+ * a minor release. This does not TAINT the kernel. Marking hardware
|
||||
+ * deprecated is usually done in conjunction with the hardware vendor. Future
|
||||
+ * RHEL major releases may not include this driver. Driver updates and fixes
|
||||
+ * for this device will be limited to critical issues in future minor releases.
|
||||
+ */
|
||||
+void mark_hardware_deprecated(const char *msg)
|
||||
+{
|
||||
+ pr_crit("Warning: %s - this hardware is not recommended for new deployments. It continues to be supported in this RHEL release, but it is likely to be removed in the next major release. Driver updates and fixes for this device will be limited to critical issues. Please contact Red Hat Support or your device's hardware vendor for additional information.\n", msg);
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_hardware_deprecated);
|
||||
+
|
||||
+/**
|
||||
+ * mark_tech_preview() - Mark driver or kernel subsystem as 'Tech Preview'
|
||||
+ * @msg: Driver or kernel subsystem name
|
||||
+ *
|
||||
+ * Called to minimize the support status of a new driver. This does TAINT the
|
||||
+ * kernel. Calling this function indicates that the driver or subsystem has
|
||||
+ * had limited testing and is not marked for full support within this RHEL
|
||||
+ * 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.
|
||||
+ */
|
||||
+void mark_tech_preview(const char *msg, struct module *mod)
|
||||
+{
|
||||
+ const char *str = NULL;
|
||||
+
|
||||
+ if (msg)
|
||||
+ str = msg;
|
||||
+#ifdef CONFIG_MODULES
|
||||
+ else if (mod && mod->name)
|
||||
+ 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"));
|
||||
+ add_taint(TAINT_AUX, LOCKDEP_STILL_OK);
|
||||
+#ifdef CONFIG_MODULES
|
||||
+ if (mod)
|
||||
+ mod->taints |= (1U << TAINT_AUX);
|
||||
+#endif
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_tech_preview);
|
||||
+
|
||||
+/**
|
||||
+ * mark_driver_unsupported - drivers that we know we don't want to support
|
||||
+ * @name: the name of the driver
|
||||
+ *
|
||||
+ * In some cases Red Hat has chosen to build a driver for internal QE
|
||||
+ * use. Use this function to mark those drivers as unsupported for
|
||||
+ * customers.
|
||||
+ */
|
||||
+void mark_driver_unsupported(const char *name)
|
||||
+{
|
||||
+ pr_crit("Warning: %s - This driver has not undergone sufficient testing by Red Hat for this release and therefore cannot be used in production systems.\n",
|
||||
+ name ? name : "kernel");
|
||||
+}
|
||||
+EXPORT_SYMBOL(mark_driver_unsupported);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,303 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Wed, 13 Nov 2019 14:44:30 -0500
|
||||
Subject: [PATCH] Add support for deprecating processors
|
||||
|
||||
Message-id: <20191113144431.9403-4-labbott@redhat.com>
|
||||
Patchwork-id: 286081
|
||||
O-Subject: [ARK INTERNAL PATCHv2 3/4] [redhat] Add support for deprecating processors
|
||||
Bugzilla:
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
This is the squashed version of the following patches
|
||||
modifed to use the new CONFIG_RH_DISABLE_DEPRECATED option
|
||||
|
||||
add rh_check_supported
|
||||
|
||||
Message-id: <1525313397-75200-1-git-send-email-darcari@redhat.com>
|
||||
Patchwork-id: 212189
|
||||
O-Subject: [RHEL8.0 BZ 1565717 v2] x86: add rh_check_supported
|
||||
Bugzilla: 1565717
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
RH-Acked-by: Mikulas Patocka <mpatocka@redhat.com>
|
||||
|
||||
Description:
|
||||
|
||||
Add code to verify that the booted x86 processor is supported by
|
||||
Red Hat. In cases where the processor is not supported a critical
|
||||
message is logged.
|
||||
|
||||
Initially the supported set of processors for RHEL8 remains the same
|
||||
as RHEL7.
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1565717
|
||||
Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=15966242
|
||||
|
||||
Test: Booted brew build on supported (Haswell) and unsupported processor (CNL)
|
||||
and achieved desired results.
|
||||
|
||||
Upstream: RHEL Only
|
||||
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
Cc: Mikulas Patocka <mpatocka@redhat.com>
|
||||
Cc: Dave Young <dyoung@redhat.com>
|
||||
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
update rh_check_supported processor list
|
||||
|
||||
Message-id: <1530618602-17477-1-git-send-email-darcari@redhat.com>
|
||||
Patchwork-id: 223452
|
||||
O-Subject: [RHEL8.0 BZ 1595918] x86: update rh_check_supported processor list
|
||||
Bugzilla: 1595918
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1595918
|
||||
Upstream Status: RHEL_only
|
||||
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16916208
|
||||
Tested: Verified on a varity of supported and unsupported Intel and AMD systems.
|
||||
Results as expected.
|
||||
|
||||
In RHEL8, we are marking some of the older processors as unsupported. No code
|
||||
is being removed; however, the older processors are not supported and as such
|
||||
are not candidates for certification.
|
||||
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
Cc: Prarit Bhargava <prarit@redhat.com>
|
||||
Cc: Steve Best <sbest@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
Signed-off-by: Jakub Racek <jracek@redhat.com>
|
||||
refresh: rename FAM6_ATOM again, see f2c4db1bd
|
||||
|
||||
mark whiskey-lake processor supported
|
||||
|
||||
Message-id: <1533125629-12870-1-git-send-email-darcari@redhat.com>
|
||||
Patchwork-id: 225809
|
||||
O-Subject: [ BZ 1609604] mark whiskey-lake processor supported
|
||||
Bugzilla: 1609604
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1609604
|
||||
Build Info: https://brewweb.devel.redhat.com/taskinfo?taskID=17474338
|
||||
Upstream Status: RHEL Only
|
||||
Tested: Successful excecution of platform-test suite.
|
||||
|
||||
Whiskey Lake is cpu model 142 with stepping 11. Stepping > 11 for cpu model
|
||||
142 is not supported.
|
||||
|
||||
For model 158, the highest supported stepping is 10.
|
||||
|
||||
Cc: Prarit Bhargava <prarit@redhat.com>
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
Cc: Dave Young <dyoung@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
mark intel knights landing and knights mill unsupported
|
||||
|
||||
Message-id: <1533580277-126323-1-git-send-email-darcari@redhat.com>
|
||||
Patchwork-id: 226187
|
||||
O-Subject: [RHEL8.0 BZ 1610493] mark intel knights landing and knights mill unsupported
|
||||
Bugzilla: 1610493
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1610493
|
||||
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=17625348
|
||||
|
||||
Tested: verified on KNL/KNM system
|
||||
Upstream Status: RHEL Only
|
||||
Depends: http://bugzilla.redhat.com/1609604
|
||||
|
||||
We are marking KNL/KNM processors as unsupported. No code is being removed;
|
||||
however, the older processors are not supported and as such are not
|
||||
candidates for certification.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Cc: Prarit Bhargava <prarit@redhat.com>
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
Cc: Dave Young <dyoung@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
arch/x86/kernel/cpu/common.c | 1 +
|
||||
arch/x86/kernel/setup.c | 132 ++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 132 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
|
||||
index 95c090a45b4b..bcc6d2df56c0 100644
|
||||
--- a/arch/x86/kernel/cpu/common.c
|
||||
+++ b/arch/x86/kernel/cpu/common.c
|
||||
@@ -1236,6 +1236,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
|
||||
cpu_detect(c);
|
||||
get_cpu_vendor(c);
|
||||
get_cpu_cap(c);
|
||||
+ get_model_name(c); /* RHEL: get model name for unsupported check */
|
||||
get_cpu_address_sizes(c);
|
||||
setup_force_cpu_cap(X86_FEATURE_CPUID);
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index a3767e74c758..a1b8cb9a2579 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <asm/unwind.h>
|
||||
#include <asm/vsyscall.h>
|
||||
#include <linux/vmalloc.h>
|
||||
+#include <asm/intel-family.h>
|
||||
|
||||
/*
|
||||
* max_low_pfn_mapped: highest directly mapped pfn < 4 GB
|
||||
@@ -753,7 +754,132 @@ static void __init trim_low_memory_range(void)
|
||||
{
|
||||
memblock_reserve(0, ALIGN(reserve_low, PAGE_SIZE));
|
||||
}
|
||||
-
|
||||
+
|
||||
+static bool valid_amd_processor(__u8 family, const char *model_id)
|
||||
+{
|
||||
+ bool valid;
|
||||
+
|
||||
+ switch(family) {
|
||||
+ case 0x15:
|
||||
+ valid = true;
|
||||
+ break;
|
||||
+
|
||||
+ case 0x17:
|
||||
+ valid = strstr(model_id, "AMD EPYC 7");
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ valid = false;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return valid;
|
||||
+}
|
||||
+
|
||||
+static bool valid_intel_processor(__u8 family, __u8 model, __u8 stepping)
|
||||
+{
|
||||
+ bool valid;
|
||||
+
|
||||
+ if (family != 6)
|
||||
+ return false;
|
||||
+
|
||||
+ switch(model) {
|
||||
+ case INTEL_FAM6_ATOM_GOLDMONT_D:
|
||||
+ case INTEL_FAM6_ATOM_GOLDMONT_PLUS:
|
||||
+
|
||||
+ case INTEL_FAM6_BROADWELL:
|
||||
+ case INTEL_FAM6_BROADWELL_G:
|
||||
+ case INTEL_FAM6_BROADWELL_X:
|
||||
+ case INTEL_FAM6_BROADWELL_D:
|
||||
+
|
||||
+ case INTEL_FAM6_HASWELL:
|
||||
+ case INTEL_FAM6_HASWELL_G:
|
||||
+ case INTEL_FAM6_HASWELL_L:
|
||||
+ case INTEL_FAM6_HASWELL_X:
|
||||
+ valid = true;
|
||||
+ break;
|
||||
+
|
||||
+ case INTEL_FAM6_KABYLAKE:
|
||||
+ valid = (stepping <= 10);
|
||||
+ break;
|
||||
+
|
||||
+ case INTEL_FAM6_KABYLAKE_L:
|
||||
+ valid = (stepping <= 11);
|
||||
+ break;
|
||||
+
|
||||
+ case INTEL_FAM6_SKYLAKE_L:
|
||||
+ case INTEL_FAM6_SKYLAKE:
|
||||
+ case INTEL_FAM6_SKYLAKE_X:
|
||||
+ /* stepping > 4 is Cascade Lake and is not supported */
|
||||
+ valid = (stepping <= 4);
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ valid = false;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return valid;
|
||||
+}
|
||||
+
|
||||
+static void rh_check_supported(void)
|
||||
+{
|
||||
+ bool guest;
|
||||
+
|
||||
+ guest = (x86_hyper_type != X86_HYPER_NATIVE || boot_cpu_has(X86_FEATURE_HYPERVISOR));
|
||||
+
|
||||
+ /* RHEL supports single cpu on guests only */
|
||||
+ 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 this kernel, single threaded, single CPU 64-bit physical systems are unsupported.");
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * If the RHEL kernel does not support this hardware, the kernel will
|
||||
+ * attempt to boot, but no support is provided for this hardware
|
||||
+ */
|
||||
+ switch (boot_cpu_data.x86_vendor) {
|
||||
+ case X86_VENDOR_AMD:
|
||||
+ if (!valid_amd_processor(boot_cpu_data.x86,
|
||||
+ boot_cpu_data.x86_model_id)) {
|
||||
+ pr_crit("Detected CPU family %xh model %d\n",
|
||||
+ boot_cpu_data.x86,
|
||||
+ boot_cpu_data.x86_model);
|
||||
+ mark_hardware_unsupported("AMD Processor");
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case X86_VENDOR_INTEL:
|
||||
+ if (!valid_intel_processor(boot_cpu_data.x86,
|
||||
+ boot_cpu_data.x86_model,
|
||||
+ boot_cpu_data.x86_stepping)) {
|
||||
+ pr_crit("Detected CPU family %d model %d stepping %d\n",
|
||||
+ boot_cpu_data.x86,
|
||||
+ boot_cpu_data.x86_model,
|
||||
+ boot_cpu_data.x86_stepping);
|
||||
+ mark_hardware_unsupported("Intel Processor");
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ pr_crit("Detected processor %s %s\n",
|
||||
+ boot_cpu_data.x86_vendor_id,
|
||||
+ boot_cpu_data.x86_model_id);
|
||||
+ mark_hardware_unsupported("Processor");
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Due to the complexity of x86 lapic & ioapic enumeration, and PCI IRQ
|
||||
+ * routing, ACPI is required for x86. acpi=off is a valid debug kernel
|
||||
+ * parameter, so just print out a loud warning in case something
|
||||
+ * goes wrong (which is most of the time).
|
||||
+ */
|
||||
+ if (acpi_disabled && !guest)
|
||||
+ pr_crit("ACPI has been disabled or is not available on this hardware. This may result in a single cpu boot, incorrect PCI IRQ routing, or boot failure.\n");
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Dump out kernel offset information on panic.
|
||||
*/
|
||||
@@ -1250,6 +1376,10 @@ void __init setup_arch(char **cmdline_p)
|
||||
efi_apply_memmap_quirks();
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_RH_DISABLE_DEPRECATED
|
||||
+ rh_check_supported();
|
||||
+#endif
|
||||
+
|
||||
unwind_init();
|
||||
}
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,36 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Fri, 10 Jul 2020 16:18:59 +0100
|
||||
Subject: [PATCH] Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL
|
||||
only
|
||||
|
||||
The ACPI prefernce is RHEL specific, in Fedora we use upstream defaults so
|
||||
it doesn't randomly change the expectations as to how certain hardware works
|
||||
that generally isn't classed as "enterprise". So wrap it in the special RHEL
|
||||
check as it should be for the ARK kernels.
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
CC: Mark Salter <msalter@redhat.com>
|
||||
---
|
||||
arch/arm64/kernel/acpi.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
|
||||
index c2a7e30e2143..169b753903d1 100644
|
||||
--- a/arch/arm64/kernel/acpi.c
|
||||
+++ b/arch/arm64/kernel/acpi.c
|
||||
@@ -40,7 +40,11 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */
|
||||
EXPORT_SYMBOL(acpi_pci_disabled);
|
||||
|
||||
static bool param_acpi_off __initdata;
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
static bool param_acpi_on __initdata = true;
|
||||
+#else
|
||||
+static bool param_acpi_on __initdata;
|
||||
+#endif
|
||||
static bool param_acpi_force __initdata;
|
||||
|
||||
static int __init parse_acpi(char *arg)
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,58 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Don Dutile <ddutile@redhat.com>
|
||||
Date: Tue, 24 Jul 2018 22:29:16 -0400
|
||||
Subject: [PATCH] IB/rxe: Mark Soft-RoCE Transport driver as tech-preview
|
||||
|
||||
Message-id: <20180724222916.19362-1-ddutile@redhat.com>
|
||||
Patchwork-id: 225418
|
||||
O-Subject: [PATCH RHEL-8.0] IB/rxe: Mark Soft-RoCE Transport driver as tech-preview.
|
||||
Bugzilla: 1605216
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Honggang Li <honli@redhat.com>
|
||||
|
||||
The Soft-RoCE driver implements the InfiniBand RDMA transport
|
||||
over the Linux network stack. It enables a system with a
|
||||
standard Ethernet adapter to interoperate with a RoCE
|
||||
adapter or with another system running the RXE driver.
|
||||
|
||||
Unfortunately, a wide range of tests and/or use-cases have shown
|
||||
that the driver is not ready for enterprise use, and upstream bug
|
||||
fixing may not be complete for RHEL-8.0.
|
||||
Thus, recommendation from driver maintainer is to mark it as
|
||||
tech-preview. It is expected that future bug fixes will enable it
|
||||
to be upgraded to fully supported. In the mean time, it works
|
||||
in a number of use cases, and can be used to demonstrate upstream
|
||||
fixes on failing cases.
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1605216
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=17344161
|
||||
|
||||
Testing:
|
||||
Simple boot test, and loading of rxe driver to show tech-preview
|
||||
msg is generated in dmesg log.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Donald Dutile <ddutile@redhat.com
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/infiniband/sw/rxe/rxe.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/infiniband/sw/rxe/rxe.c b/drivers/infiniband/sw/rxe/rxe.c
|
||||
index 5642eefb4ba1..01c8d750b9e0 100644
|
||||
--- a/drivers/infiniband/sw/rxe/rxe.c
|
||||
+++ b/drivers/infiniband/sw/rxe/rxe.c
|
||||
@@ -336,6 +336,8 @@ static int __init rxe_module_init(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
+ mark_tech_preview("Soft-RoCE Transport Driver", THIS_MODULE);
|
||||
+
|
||||
/* initialize slab caches for managed objects */
|
||||
err = rxe_cache_init();
|
||||
if (err) {
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,64 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Wed, 13 Nov 2019 14:44:28 -0500
|
||||
Subject: [PATCH] Introduce CONFIG_RH_DISABLE_DEPRECATED
|
||||
|
||||
Message-id: <20191113144431.9403-2-labbott@redhat.com>
|
||||
Patchwork-id: 286080
|
||||
O-Subject: [ARK INTERNAL PATCHv2 1/4] [redhat] Introduce CONFIG_RH_DISABLE_DEPRECATED
|
||||
Bugzilla:
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
For many drivers that RHEL doesn't want to support, we've typically deleted
|
||||
PCI ids from the tree. This precludes those drivers from being used at all
|
||||
which is fine for RHEL but a problem if we want to use a similar source base
|
||||
for Fedora. Instead of just deleting IDs, introduce a config
|
||||
CONFIG_RH_DISABLE_DEPRECATED. This way RHEL can remove IDs while still allowing
|
||||
kernels to be built with the option off from the same source.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
Kconfig | 2 ++
|
||||
Kconfig.redhat | 17 +++++++++++++++++
|
||||
2 files changed, 19 insertions(+)
|
||||
create mode 100644 Kconfig.redhat
|
||||
|
||||
diff --git a/Kconfig b/Kconfig
|
||||
index 745bc773f567..f57ff40109d7 100644
|
||||
--- a/Kconfig
|
||||
+++ b/Kconfig
|
||||
@@ -30,3 +30,5 @@ source "lib/Kconfig"
|
||||
source "lib/Kconfig.debug"
|
||||
|
||||
source "Documentation/Kconfig"
|
||||
+
|
||||
+source "Kconfig.redhat"
|
||||
diff --git a/Kconfig.redhat b/Kconfig.redhat
|
||||
new file mode 100644
|
||||
index 000000000000..733a26bd887a
|
||||
--- /dev/null
|
||||
+++ b/Kconfig.redhat
|
||||
@@ -0,0 +1,17 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
+#
|
||||
+# Red Hat specific options
|
||||
+#
|
||||
+
|
||||
+menu "Red Hat options"
|
||||
+
|
||||
+config RH_DISABLE_DEPRECATED
|
||||
+ bool "Remove support for deprecated features"
|
||||
+ help
|
||||
+ Red Hat may choose to deprecate certain features in its kernels.
|
||||
+ Enable this option to remove support for hardware that is no
|
||||
+ longer supported.
|
||||
+
|
||||
+ Unless you want a restricted kernel, say N here.
|
||||
+
|
||||
+endmenu
|
||||
--
|
||||
2.26.2
|
||||
|
240
0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
Normal file
240
0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
Normal file
@ -0,0 +1,240 @@
|
||||
From 9134295c0515492b1ab7733c0290b2afde336d6b Mon Sep 17 00:00:00 2001
|
||||
From: Vidya Sagar <vidyas@nvidia.com>
|
||||
Date: Sat, 11 Jan 2020 00:45:00 +0530
|
||||
Subject: [PATCH] PCI: Add MCFG quirks for Tegra194 host controllers
|
||||
|
||||
The PCIe controller in Tegra194 SoC is not completely ECAM-compliant.
|
||||
With the current hardware design limitations in place, ECAM can be enabled
|
||||
only for one controller (C5 controller to be precise) with bus numbers
|
||||
starting from 160 instead of 0. A different approach is taken to avoid this
|
||||
abnormal way of enabling ECAM for just one controller but to enable
|
||||
configuration space access for all the other controllers. In this approach,
|
||||
ops are added through MCFG quirk mechanism which access the configuration
|
||||
spaces by dynamically programming iATU (internal AddressTranslation Unit)
|
||||
to generate respective configuration accesses just like the way it is
|
||||
done in DesignWare core sub-system.
|
||||
|
||||
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
|
||||
Acked-by: Thierry Reding <treding@nvidia.com>
|
||||
[ Updated by jonathanh@nvidia.com only permit building the Tegra194
|
||||
PCIe driver into the kernel and not as a module ]
|
||||
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
|
||||
---
|
||||
drivers/acpi/pci_mcfg.c | 7 ++
|
||||
drivers/pci/controller/dwc/Kconfig | 10 +-
|
||||
drivers/pci/controller/dwc/Makefile | 2 +-
|
||||
drivers/pci/controller/dwc/pcie-tegra194.c | 102 +++++++++++++++++++++
|
||||
include/linux/pci-ecam.h | 1 +
|
||||
5 files changed, 117 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
|
||||
index 54b36b7ad47d9..6573d495d9c1f 100644
|
||||
--- a/drivers/acpi/pci_mcfg.c
|
||||
+++ b/drivers/acpi/pci_mcfg.c
|
||||
@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = {
|
||||
THUNDER_ECAM_QUIRK(2, 12),
|
||||
THUNDER_ECAM_QUIRK(2, 13),
|
||||
|
||||
+ { "NVIDIA", "TEGRA194", 1, 0, MCFG_BUS_ANY, &tegra194_pcie_ops},
|
||||
+ { "NVIDIA", "TEGRA194", 1, 1, MCFG_BUS_ANY, &tegra194_pcie_ops},
|
||||
+ { "NVIDIA", "TEGRA194", 1, 2, MCFG_BUS_ANY, &tegra194_pcie_ops},
|
||||
+ { "NVIDIA", "TEGRA194", 1, 3, MCFG_BUS_ANY, &tegra194_pcie_ops},
|
||||
+ { "NVIDIA", "TEGRA194", 1, 4, MCFG_BUS_ANY, &tegra194_pcie_ops},
|
||||
+ { "NVIDIA", "TEGRA194", 1, 5, MCFG_BUS_ANY, &tegra194_pcie_ops},
|
||||
+
|
||||
#define XGENE_V1_ECAM_MCFG(rev, seg) \
|
||||
{"APM ", "XGENE ", rev, seg, MCFG_BUS_ANY, \
|
||||
&xgene_v1_pcie_ecam_ops }
|
||||
diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
|
||||
index 044a3761c44f2..e4ee4bf9ac64a 100644
|
||||
--- a/drivers/pci/controller/dwc/Kconfig
|
||||
+++ b/drivers/pci/controller/dwc/Kconfig
|
||||
@@ -247,25 +247,27 @@ config PCI_MESON
|
||||
implement the driver.
|
||||
|
||||
config PCIE_TEGRA194
|
||||
- tristate
|
||||
+ bool
|
||||
|
||||
config PCIE_TEGRA194_HOST
|
||||
- tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
|
||||
+ bool "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
|
||||
depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
|
||||
depends on PCI_MSI_IRQ_DOMAIN
|
||||
select PCIE_DW_HOST
|
||||
select PHY_TEGRA194_P2U
|
||||
select PCIE_TEGRA194
|
||||
+ default y if ARCH_TEGRA_194_SOC
|
||||
help
|
||||
Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
|
||||
work in host mode. There are two instances of PCIe controllers in
|
||||
Tegra194. This controller can work either as EP or RC. In order to
|
||||
enable host-specific features PCIE_TEGRA194_HOST must be selected and
|
||||
in order to enable device-specific features PCIE_TEGRA194_EP must be
|
||||
- selected. This uses the DesignWare core.
|
||||
+ selected. This uses the DesignWare core. ACPI platforms with Tegra194
|
||||
+ don't need to enable this.
|
||||
|
||||
config PCIE_TEGRA194_EP
|
||||
- tristate "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode"
|
||||
+ bool "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode"
|
||||
depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
|
||||
depends on PCI_ENDPOINT
|
||||
select PCIE_DW_EP
|
||||
diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile
|
||||
index a751553fa0dbd..dbb9818765566 100644
|
||||
--- a/drivers/pci/controller/dwc/Makefile
|
||||
+++ b/drivers/pci/controller/dwc/Makefile
|
||||
@@ -17,7 +17,6 @@ obj-$(CONFIG_PCIE_INTEL_GW) += pcie-intel-gw.o
|
||||
obj-$(CONFIG_PCIE_KIRIN) += pcie-kirin.o
|
||||
obj-$(CONFIG_PCIE_HISI_STB) += pcie-histb.o
|
||||
obj-$(CONFIG_PCI_MESON) += pci-meson.o
|
||||
-obj-$(CONFIG_PCIE_TEGRA194) += pcie-tegra194.o
|
||||
obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o
|
||||
obj-$(CONFIG_PCIE_UNIPHIER_EP) += pcie-uniphier-ep.o
|
||||
|
||||
@@ -34,4 +33,5 @@ obj-$(CONFIG_PCIE_UNIPHIER_EP) += pcie-uniphier-ep.o
|
||||
ifdef CONFIG_PCI
|
||||
obj-$(CONFIG_ARM64) += pcie-al.o
|
||||
obj-$(CONFIG_ARM64) += pcie-hisi.o
|
||||
+obj-$(CONFIG_ARM64) += pcie-tegra194.o
|
||||
endif
|
||||
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
|
||||
index 92b77f7d83546..7b3d581795197 100644
|
||||
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
|
||||
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
|
||||
@@ -22,6 +22,8 @@
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_pci.h>
|
||||
#include <linux/pci.h>
|
||||
+#include <linux/pci-acpi.h>
|
||||
+#include <linux/pci-ecam.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
@@ -324,6 +326,103 @@ struct tegra_pcie_dw_of_data {
|
||||
enum dw_pcie_device_mode mode;
|
||||
};
|
||||
|
||||
+#if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)
|
||||
+struct tegra194_pcie_acpi {
|
||||
+ void __iomem *config_base;
|
||||
+ void __iomem *iatu_base;
|
||||
+ void __iomem *dbi_base;
|
||||
+};
|
||||
+
|
||||
+static int tegra194_acpi_init(struct pci_config_window *cfg)
|
||||
+{
|
||||
+ struct device *dev = cfg->parent;
|
||||
+ struct tegra194_pcie_acpi *pcie;
|
||||
+
|
||||
+ pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
|
||||
+ if (!pcie)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ pcie->config_base = cfg->win;
|
||||
+ pcie->iatu_base = cfg->win + SZ_256K;
|
||||
+ pcie->dbi_base = cfg->win + SZ_512K;
|
||||
+ cfg->priv = pcie;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static inline void atu_reg_write(struct tegra194_pcie_acpi *pcie, int index,
|
||||
+ u32 val, u32 reg)
|
||||
+{
|
||||
+ u32 offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
|
||||
+
|
||||
+ writel(val, pcie->iatu_base + offset + reg);
|
||||
+}
|
||||
+
|
||||
+static void program_outbound_atu(struct tegra194_pcie_acpi *pcie, int index,
|
||||
+ int type, u64 cpu_addr, u64 pci_addr, u64 size)
|
||||
+{
|
||||
+ atu_reg_write(pcie, index, lower_32_bits(cpu_addr),
|
||||
+ PCIE_ATU_LOWER_BASE);
|
||||
+ atu_reg_write(pcie, index, upper_32_bits(cpu_addr),
|
||||
+ PCIE_ATU_UPPER_BASE);
|
||||
+ atu_reg_write(pcie, index, lower_32_bits(pci_addr),
|
||||
+ PCIE_ATU_LOWER_TARGET);
|
||||
+ atu_reg_write(pcie, index, lower_32_bits(cpu_addr + size - 1),
|
||||
+ PCIE_ATU_LIMIT);
|
||||
+ atu_reg_write(pcie, index, upper_32_bits(pci_addr),
|
||||
+ PCIE_ATU_UPPER_TARGET);
|
||||
+ atu_reg_write(pcie, index, type, PCIE_ATU_CR1);
|
||||
+ atu_reg_write(pcie, index, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
|
||||
+}
|
||||
+
|
||||
+static void __iomem *tegra194_map_bus(struct pci_bus *bus,
|
||||
+ unsigned int devfn, int where)
|
||||
+{
|
||||
+ struct pci_config_window *cfg = bus->sysdata;
|
||||
+ struct tegra194_pcie_acpi *pcie = cfg->priv;
|
||||
+ u32 busdev;
|
||||
+ int type;
|
||||
+
|
||||
+ if (bus->number < cfg->busr.start || bus->number > cfg->busr.end)
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (bus->number == cfg->busr.start) {
|
||||
+ if (PCI_SLOT(devfn) == 0)
|
||||
+ return pcie->dbi_base + where;
|
||||
+ else
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) |
|
||||
+ PCIE_ATU_FUNC(PCI_FUNC(devfn));
|
||||
+
|
||||
+ if (bus->parent->number == cfg->busr.start) {
|
||||
+ if (PCI_SLOT(devfn) == 0)
|
||||
+ type = PCIE_ATU_TYPE_CFG0;
|
||||
+ else
|
||||
+ return NULL;
|
||||
+ } else {
|
||||
+ type = PCIE_ATU_TYPE_CFG1;
|
||||
+ }
|
||||
+
|
||||
+ program_outbound_atu(pcie, PCIE_ATU_REGION_INDEX0, type,
|
||||
+ cfg->res.start, busdev, SZ_256K);
|
||||
+ return (void __iomem *)(pcie->config_base + where);
|
||||
+}
|
||||
+
|
||||
+const struct pci_ecam_ops tegra194_pcie_ops = {
|
||||
+ .bus_shift = 20,
|
||||
+ .init = tegra194_acpi_init,
|
||||
+ .pci_ops = {
|
||||
+ .map_bus = tegra194_map_bus,
|
||||
+ .read = pci_generic_config_read,
|
||||
+ .write = pci_generic_config_write,
|
||||
+ }
|
||||
+};
|
||||
+#endif /* defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) */
|
||||
+
|
||||
+#ifdef CONFIG_PCIE_TEGRA194
|
||||
+
|
||||
static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci)
|
||||
{
|
||||
return container_of(pci, struct tegra_pcie_dw, pci);
|
||||
@@ -2405,3 +2504,6 @@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match);
|
||||
MODULE_AUTHOR("Vidya Sagar <vidyas@nvidia.com>");
|
||||
MODULE_DESCRIPTION("NVIDIA PCIe host controller driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
+
|
||||
+#endif /* CONFIG_PCIE_TEGRA194 */
|
||||
+
|
||||
diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
|
||||
index 1af5cb02ef7f9..3fb16ada505a0 100644
|
||||
--- a/include/linux/pci-ecam.h
|
||||
+++ b/include/linux/pci-ecam.h
|
||||
@@ -57,6 +57,7 @@ extern const struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */
|
||||
extern const struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
|
||||
extern const struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
|
||||
extern const struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */
|
||||
+extern const struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_PCI_HOST_COMMON)
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,65 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Chauvet <kwizart@gmail.com>
|
||||
Date: Mon, 20 Apr 2020 18:43:04 +0200
|
||||
Subject: [PATCH] PCI: tegra: Revert raw_violation_fixup for tegra124
|
||||
|
||||
As reported in https://bugzilla.kernel.org/206217 , raw_violation_fixup
|
||||
is causing more harm than good in some common use-cases.
|
||||
|
||||
This patch as RFC is a partial revert of the 191cd6fb5 commit:
|
||||
"PCI: tegra: Add SW fixup for RAW violations"
|
||||
that was first introduced in 5.3 kernel.
|
||||
This fix the following regression since then.
|
||||
|
||||
When using both the network NIC and I/O on MMC this can lead to the
|
||||
following message on jetson-tk1:
|
||||
|
||||
NETDEV WATCHDOG: enp1s0 (r8169): transmit queue 0 timed out
|
||||
|
||||
and
|
||||
|
||||
pcieport 0000:00:02.0: AER: Uncorrected (Non-Fatal) error received: 0000:01:00.0
|
||||
r8169 0000:01:00.0: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)
|
||||
r8169 0000:01:00.0: AER: device [10ec:8168] error status/mask=00004000/00400000
|
||||
r8169 0000:01:00.0: AER: [14] CmpltTO (First)
|
||||
r8169 0000:01:00.0: AER: can't recover (no error_detected callback)
|
||||
pcieport 0000:00:02.0: AER: device recovery failed
|
||||
|
||||
After that, the ethernet NIC isn't functional anymore even after reloading
|
||||
the module.
|
||||
After a reboot, this is reproducible by copying a large file over the
|
||||
ethernet NIC to the MMC.
|
||||
For some reasons this cannot be reproduced when the same file is copied
|
||||
to a tmpfs.
|
||||
|
||||
This patch is RFC because it requires more understanding from Nvidia.
|
||||
- Is the fixup (available in l4t downstrem) still needed for upstream ?
|
||||
- Is there a need to update the fixup values for upstream ?
|
||||
- If the fixup is reverted, does the hw bug can still be seen with
|
||||
upstream ?
|
||||
|
||||
Others can also provides more understanding:
|
||||
- Conditions to reproduce the bug (or not)...
|
||||
|
||||
Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
|
||||
Reviewed-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
|
||||
---
|
||||
drivers/pci/controller/pci-tegra.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
|
||||
index 235b456698fc..d5a4a167ffa1 100644
|
||||
--- a/drivers/pci/controller/pci-tegra.c
|
||||
+++ b/drivers/pci/controller/pci-tegra.c
|
||||
@@ -2470,7 +2470,7 @@ static const struct tegra_pcie_soc tegra124_pcie = {
|
||||
.program_uphy = true,
|
||||
.update_clamp_threshold = true,
|
||||
.program_deskew_time = false,
|
||||
- .raw_violation_fixup = true,
|
||||
+ .raw_violation_fixup = false,
|
||||
.update_fc_timer = false,
|
||||
.has_cache_bars = false,
|
||||
.ectl.enable = false,
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Cline <jcline@redhat.com>
|
||||
Date: Tue, 17 Sep 2019 17:11:03 +0000
|
||||
Subject: [PATCH] Pull the RHEL version defines out of the Makefile
|
||||
|
||||
This is done via the kernel-put-RHEL-info-into-generated-headers.patch
|
||||
in the rhpatches branch.
|
||||
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
Makefile | 9 ++-------
|
||||
1 file changed, 2 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 48a7abae02d2..2d826a14824a 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -16,6 +16,7 @@ PHONY := _all
|
||||
_all:
|
||||
|
||||
# Set RHEL variables
|
||||
+# Use this spot to avoid future merge conflicts
|
||||
include Makefile.rhelver
|
||||
|
||||
# We are using a recursive build, so we need to do a little thinking
|
||||
@@ -1172,13 +1173,7 @@ endef
|
||||
define filechk_version.h
|
||||
echo \#define LINUX_VERSION_CODE $(shell \
|
||||
expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
|
||||
- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
|
||||
- echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \
|
||||
- echo '#define RHEL_MINOR $(RHEL_MINOR)'; \
|
||||
- echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \
|
||||
- echo '#define RHEL_RELEASE_CODE \
|
||||
- $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \
|
||||
- echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"'
|
||||
+ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
|
||||
endef
|
||||
|
||||
$(version_h): FORCE
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,113 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Dick Kennedy <dkennedy@redhat.com>
|
||||
Date: Fri, 14 Feb 2020 15:09:41 -0500
|
||||
Subject: [PATCH] Removing Obsolete hba pci-ids from rhel8
|
||||
|
||||
Message-id: <1525206184-20470-1-git-send-email-dkennedy@redhat.com>
|
||||
Patchwork-id: 212089
|
||||
O-Subject: [RHEL8 PATCH e-stor] Removing Obsolete hba pci-ids from rhel8.
|
||||
Bugzilla: 1572321
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
These adapters printed an Obsolete Unsupported message is rhel7. They
|
||||
are being removed for rhel8
|
||||
|
||||
brew-id: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID^U948800
|
||||
bugzilla: 1572321
|
||||
tested on: rhel-storage-44 and on rhel-storage-07
|
||||
|
||||
RHEL Specific
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Backport Notes: Simplify by filtering using pci_ids
|
||||
-
|
||||
---
|
||||
drivers/scsi/lpfc/lpfc_ids.h | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h
|
||||
index d48414e295a0..ba0e384412c9 100644
|
||||
--- a/drivers/scsi/lpfc/lpfc_ids.h
|
||||
+++ b/drivers/scsi/lpfc/lpfc_ids.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/pci.h>
|
||||
|
||||
const struct pci_device_id lpfc_id_table[] = {
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_VIPER,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FIREFLY,
|
||||
@@ -54,14 +55,19 @@ const struct pci_device_id lpfc_id_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#endif
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#endif
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HORNET,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#endif
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP,
|
||||
@@ -70,6 +76,7 @@ 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, },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_TFLY,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP101,
|
||||
@@ -80,6 +87,7 @@ const struct pci_device_id lpfc_id_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#endif
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID,
|
||||
@@ -92,6 +100,7 @@ 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, },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_VF,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_PF,
|
||||
@@ -102,18 +111,23 @@ const struct pci_device_id lpfc_id_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_SERVERENGINE, PCI_DEVICE_ID_TOMCAT,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#endif
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FALCON,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BALIUS,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#endif
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{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, },
|
||||
+#endif
|
||||
{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,
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,81 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Don Zickus <dzickus@redhat.com>
|
||||
Date: Tue, 3 Mar 2020 09:35:28 -0500
|
||||
Subject: [PATCH] Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES
|
||||
|
||||
The intent of RH_DISABLE_DEPRECATED was to provide Red Hat a
|
||||
simple way to disable drivers it did not want to support in RHEL.
|
||||
|
||||
As the config option was applied to more drivers and infra, it became
|
||||
clear the option was being used for not only deprecating drivers (which
|
||||
implied limited support) to disabling drivers (implying no support).
|
||||
|
||||
Using the word 'deprecated' seemed confusing in the second scenario.
|
||||
Rename the option to be more generic and useable across more parts
|
||||
of the kernel tree.
|
||||
|
||||
The new wording is RHEL_DIFFERENCES.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
---
|
||||
Kconfig.redhat | 2 +-
|
||||
arch/x86/kernel/setup.c | 2 +-
|
||||
include/linux/kernel.h | 2 +-
|
||||
kernel/Makefile | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Kconfig.redhat b/Kconfig.redhat
|
||||
index 733a26bd887a..effb81d04bfd 100644
|
||||
--- a/Kconfig.redhat
|
||||
+++ b/Kconfig.redhat
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
menu "Red Hat options"
|
||||
|
||||
-config RH_DISABLE_DEPRECATED
|
||||
+config RHEL_DIFFERENCES
|
||||
bool "Remove support for deprecated features"
|
||||
help
|
||||
Red Hat may choose to deprecate certain features in its kernels.
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index 19d57bfc12f9..e677bb144835 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1372,7 +1372,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
efi_apply_memmap_quirks();
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_RH_DISABLE_DEPRECATED
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
rh_check_supported();
|
||||
#endif
|
||||
|
||||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
|
||||
index 0a0081b10edb..cfaaa6a234d4 100644
|
||||
--- a/include/linux/kernel.h
|
||||
+++ b/include/linux/kernel.h
|
||||
@@ -1058,7 +1058,7 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
||||
|
||||
struct module;
|
||||
|
||||
-#ifdef CONFIG_RH_DISABLE_DEPRECATED
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
void mark_hardware_unsupported(const char *msg);
|
||||
void mark_hardware_deprecated(const char *msg);
|
||||
void mark_tech_preview(const char *msg, struct module *mod);
|
||||
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||
index c0a4904413b5..1a0c362cddfb 100644
|
||||
--- a/kernel/Makefile
|
||||
+++ b/kernel/Makefile
|
||||
@@ -12,7 +12,7 @@ obj-y = fork.o exec_domain.o panic.o \
|
||||
notifier.o ksysfs.o cred.o reboot.o \
|
||||
async.o range.o smpboot.o ucount.o
|
||||
|
||||
-obj-$(CONFIG_RH_DISABLE_DEPRECATED) += rh_taint.o
|
||||
+obj-$(CONFIG_RHEL_DIFFERENCES) += rh_taint.o
|
||||
|
||||
obj-$(CONFIG_MODULES) += kmod.o
|
||||
obj-$(CONFIG_MULTIUSER) += groups.o
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Sun, 12 Jul 2020 13:39:32 +0100
|
||||
Subject: [PATCH] Revert "dt-bindings: Add doc for Pine64 Pinebook Pro"
|
||||
|
||||
This reverts commit ec0f66d2bc5ffd2a06eaf254ad314153e557cb7c.
|
||||
|
||||
This is already upstream and not sure why it still applies but we
|
||||
don't need it any more.
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/rockchip.yaml | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
|
||||
index ed808148b6a7..d4a4045092df 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
|
||||
@@ -425,11 +425,6 @@ properties:
|
||||
- const: pine64,rockpro64
|
||||
- const: rockchip,rk3399
|
||||
|
||||
- - description: Pine64 PinebookPro
|
||||
- items:
|
||||
- - const: pine64,pinebook-pro
|
||||
- - const: rockchip,rk3399
|
||||
-
|
||||
- description: Radxa Rock
|
||||
items:
|
||||
- const: radxa,rock
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Raghava Aditya Renukunta <rrenukun@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:38 -0500
|
||||
Subject: [PATCH] aacraid: Remove depreciated device and vendor PCI id's
|
||||
|
||||
Message-id: <20180315040041.9449.8525.stgit@dhcp187-32.khw.lab.eng.bos.redhat.com>
|
||||
Patchwork-id: 206793
|
||||
O-Subject: [RHEL8 e-stor PATCH] scsi: aacraid: Remove depreciated device and vendor PCI id's
|
||||
Bugzilla: 1495307
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id95307
|
||||
Brew Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID552286
|
||||
Upstream Status: N/A (RHEL 8 internal)
|
||||
Tested: Code Review
|
||||
|
||||
Remove Vendor PCI ID and Device PCI ID of depreciated devices from
|
||||
aacraid pci table, preventing these device from attaching to the aacraid
|
||||
driver.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Raghava Aditya Renukunta <rrenukun@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/scsi/aacraid/linit.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
|
||||
index a308e86a97f1..4d84f95a50ce 100644
|
||||
--- a/drivers/scsi/aacraid/linit.c
|
||||
+++ b/drivers/scsi/aacraid/linit.c
|
||||
@@ -78,6 +78,7 @@ char aac_driver_version[] = AAC_DRIVER_FULL_VERSION;
|
||||
* Note: The last field is used to index into aac_drivers below.
|
||||
*/
|
||||
static const struct pci_device_id aac_pci_tbl[] = {
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{ 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */
|
||||
{ 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */
|
||||
{ 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */
|
||||
@@ -145,6 +146,7 @@ static const struct pci_device_id aac_pci_tbl[] = {
|
||||
{ 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */
|
||||
{ 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */
|
||||
{ 0x9005, 0x0288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 61 }, /* Adaptec NEMER/ARK Catch All */
|
||||
+#endif
|
||||
{ 0x9005, 0x028b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 62 }, /* Adaptec PMC Series 6 (Tupelo) */
|
||||
{ 0x9005, 0x028c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 63 }, /* Adaptec PMC Series 7 (Denali) */
|
||||
{ 0x9005, 0x028d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 64 }, /* Adaptec PMC Series 8 */
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,56 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Salter <msalter@redhat.com>
|
||||
Date: Fri, 11 May 2018 21:01:17 -0400
|
||||
Subject: [PATCH] acpi: prefer booting with ACPI over DTS
|
||||
|
||||
Message-id: <20180511210117.10457-1-msalter@redhat.com>
|
||||
Patchwork-id: 214708
|
||||
O-Subject: [RHEL-8 BZ1576869] [RHEL only] acpi: prefer booting with ACPI over DTS
|
||||
Bugzilla: 1576869
|
||||
RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Bhupesh Sharma <bhsharma@redhat.com>
|
||||
RH-Acked-by: Dean Nelson <dnelson@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1576869
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16208479
|
||||
Testing: Verified kernel defaults to ACPI on Mustang
|
||||
|
||||
From: Jonathan Toppins <jtoppins@redhat.com>
|
||||
|
||||
This patch forces ACPI boot tables to be preferred over DTS.
|
||||
|
||||
Currently for ACPI to be used a user either has to set acpi=on on the
|
||||
kernel command line or make sure any device tree passed to the kernel
|
||||
is empty. If the dtb passed to the kernel is non-empty then device-tree
|
||||
will be chosen as the boot method of choice.
|
||||
|
||||
RHEL does not wish to support this boot method so change table boot
|
||||
preferences to use ACPI. In the event ACPI table checks fail the kernel
|
||||
will fallback to using DTS to boot.
|
||||
|
||||
Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
arch/arm64/kernel/acpi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
|
||||
index a7586a4db142..c2a7e30e2143 100644
|
||||
--- a/arch/arm64/kernel/acpi.c
|
||||
+++ b/arch/arm64/kernel/acpi.c
|
||||
@@ -40,7 +40,7 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */
|
||||
EXPORT_SYMBOL(acpi_pci_disabled);
|
||||
|
||||
static bool param_acpi_off __initdata;
|
||||
-static bool param_acpi_on __initdata;
|
||||
+static bool param_acpi_on __initdata = true;
|
||||
static bool param_acpi_force __initdata;
|
||||
|
||||
static int __init parse_acpi(char *arg)
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,83 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Eugene Syromiatnikov <esyr@redhat.com>
|
||||
Date: Thu, 14 Jun 2018 16:35:59 -0400
|
||||
Subject: [PATCH] add Red Hat-specific taint flags
|
||||
|
||||
Message-id: <56f71e5f8cf63afd0cdb1c4550c625cc90d59a75.1528991395.git.esyr@redhat.com>
|
||||
Patchwork-id: 8249
|
||||
O-Subject: [kernel team] [RHEL8 PATCH v4 1/5] kernel: add Red Hat-specific taint flags
|
||||
Bugzilla: 1559877
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
|
||||
|
||||
Based on RHEL 7 commit "Backport RH specific TAINT flags" by Prarit
|
||||
Bhargava.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1559877
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16716594
|
||||
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
include/linux/kernel.h | 19 ++++++++++++++++++-
|
||||
kernel/panic.c | 14 ++++++++++++++
|
||||
2 files changed, 32 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
|
||||
index b82db0c0caec..28be75396242 100644
|
||||
--- a/include/linux/kernel.h
|
||||
+++ b/include/linux/kernel.h
|
||||
@@ -603,7 +603,24 @@ extern enum system_states {
|
||||
#define TAINT_LIVEPATCH 15
|
||||
#define TAINT_AUX 16
|
||||
#define TAINT_RANDSTRUCT 17
|
||||
-#define TAINT_FLAGS_COUNT 18
|
||||
+/* Start of Red Hat-specific taint flags */
|
||||
+#define TAINT_18 18
|
||||
+#define TAINT_19 19
|
||||
+#define TAINT_20 20
|
||||
+#define TAINT_21 21
|
||||
+#define TAINT_22 22
|
||||
+#define TAINT_23 23
|
||||
+#define TAINT_24 24
|
||||
+#define TAINT_25 25
|
||||
+#define TAINT_26 26
|
||||
+#define TAINT_27 27
|
||||
+/* Bits 28 - 31 are reserved for Red Hat use only */
|
||||
+#define TAINT_RESERVED28 28
|
||||
+#define TAINT_RESERVED29 29
|
||||
+#define TAINT_RESERVED30 30
|
||||
+#define TAINT_RESERVED31 31
|
||||
+/* End of Red Hat-specific taint flags */
|
||||
+#define TAINT_FLAGS_COUNT 32
|
||||
#define TAINT_FLAGS_MAX ((1UL << TAINT_FLAGS_COUNT) - 1)
|
||||
|
||||
struct taint_flag {
|
||||
diff --git a/kernel/panic.c b/kernel/panic.c
|
||||
index e2157ca387c8..534bc76e43da 100644
|
||||
--- a/kernel/panic.c
|
||||
+++ b/kernel/panic.c
|
||||
@@ -386,6 +386,20 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
|
||||
[ TAINT_LIVEPATCH ] = { 'K', ' ', true },
|
||||
[ TAINT_AUX ] = { 'X', ' ', true },
|
||||
[ TAINT_RANDSTRUCT ] = { 'T', ' ', true },
|
||||
+ [ TAINT_18 ] = { '?', '-', false },
|
||||
+ [ TAINT_19 ] = { '?', '-', false },
|
||||
+ [ TAINT_20 ] = { '?', '-', false },
|
||||
+ [ TAINT_21 ] = { '?', '-', false },
|
||||
+ [ TAINT_22 ] = { '?', '-', false },
|
||||
+ [ TAINT_23 ] = { '?', '-', false },
|
||||
+ [ TAINT_24 ] = { '?', '-', false },
|
||||
+ [ TAINT_25 ] = { '?', '-', false },
|
||||
+ [ TAINT_26 ] = { '?', '-', false },
|
||||
+ [ TAINT_27 ] = { '?', '-', false },
|
||||
+ [ TAINT_RESERVED28 ] = { '?', '-', false },
|
||||
+ [ TAINT_RESERVED29 ] = { '?', '-', false },
|
||||
+ [ TAINT_RESERVED30 ] = { '?', '-', false },
|
||||
+ [ TAINT_RESERVED31 ] = { '?', '-', false },
|
||||
};
|
||||
|
||||
/**
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,96 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Maurizio Lombardi <mlombard@redhat.com>
|
||||
Date: Mon, 18 Jun 2018 12:51:25 -0400
|
||||
Subject: [PATCH] add pci_hw_vendor_status()
|
||||
|
||||
Message-id: <1529326285-28560-1-git-send-email-mlombard@redhat.com>
|
||||
Patchwork-id: 222337
|
||||
O-Subject: [RHEL8 PATCH] pci: add pci_hw_vendor_status()
|
||||
Bugzilla: 1590829
|
||||
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
|
||||
This patch adds pci_hw_vendor_status() like in RHEL7 which should be called
|
||||
during the driver's probe to identify deprecated devices.
|
||||
|
||||
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1590829
|
||||
Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=16761315
|
||||
|
||||
See RHEL7 commits e0dddd9a63403ec82077ed410074fc6485873d4b and
|
||||
3fcddde5ddf4b190c84ce9d83d56a75137513bd7
|
||||
|
||||
RHEL_only.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/pci/pci-driver.c | 29 +++++++++++++++++++++++++++++
|
||||
include/linux/pci.h | 4 ++++
|
||||
2 files changed, 33 insertions(+)
|
||||
|
||||
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
|
||||
index da6510af1221..2ec02cbfda72 100644
|
||||
--- a/drivers/pci/pci-driver.c
|
||||
+++ b/drivers/pci/pci-driver.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <linux/kexec.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/acpi.h>
|
||||
+#include <linux/kernel.h>
|
||||
#include "pci.h"
|
||||
#include "pcie/portdrv.h"
|
||||
|
||||
@@ -278,6 +279,34 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
|
||||
return found_id;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * pci_hw_vendor_status - Tell if a PCI device is supported by the HW vendor
|
||||
+ * @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 unsupported
|
||||
+ * 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_vendor_status(
|
||||
+ const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev)
|
||||
+{
|
||||
+ char devinfo[64];
|
||||
+ const struct pci_device_id *ret = pci_match_id(ids, dev);
|
||||
+
|
||||
+ if (ret) {
|
||||
+ snprintf(devinfo, sizeof(devinfo), "%s %s",
|
||||
+ dev_driver_string(&dev->dev), dev_name(&dev->dev));
|
||||
+ mark_hardware_deprecated(devinfo);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+EXPORT_SYMBOL(pci_hw_vendor_status);
|
||||
+
|
||||
struct drv_dev_and_id {
|
||||
struct pci_driver *drv;
|
||||
struct pci_dev *dev;
|
||||
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
||||
index 34c1c4f45288..6d9a405feea5 100644
|
||||
--- a/include/linux/pci.h
|
||||
+++ b/include/linux/pci.h
|
||||
@@ -1406,6 +1406,10 @@ 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);
|
||||
+/* Reserved for Internal Red Hat use only */
|
||||
+const struct pci_device_id *pci_hw_vendor_status(
|
||||
+ const struct pci_device_id *ids,
|
||||
+ struct pci_dev *dev);
|
||||
int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
|
||||
int pass);
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,128 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Prarit Bhargava <prarit@redhat.com>
|
||||
Date: Thu, 11 Jun 2020 21:03:36 -0400
|
||||
Subject: [PATCH] arch/x86: Remove vendor specific CPU ID checks
|
||||
|
||||
Upstream Status: RHEL only
|
||||
|
||||
After discussions with Devel, QE, Support, and Certification we have
|
||||
decided to drop the CPU specific checks in rh_check_supported().
|
||||
Certification is adopting a new process in which CPU certifications will
|
||||
be tracked on https://catalog.redhat.com.
|
||||
|
||||
Remove the vendor specific CPU ID checks from rh_check_supported().
|
||||
|
||||
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
---
|
||||
arch/x86/kernel/setup.c | 85 -----------------------------------------
|
||||
1 file changed, 85 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index 6d31895c8e92..4e43f6957621 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -757,72 +757,6 @@ static void __init trim_low_memory_range(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
-static bool valid_amd_processor(__u8 family, const char *model_id)
|
||||
-{
|
||||
- bool valid;
|
||||
-
|
||||
- switch(family) {
|
||||
- case 0x15:
|
||||
- valid = true;
|
||||
- break;
|
||||
-
|
||||
- case 0x17:
|
||||
- valid = strstr(model_id, "AMD EPYC 7");
|
||||
- break;
|
||||
-
|
||||
- default:
|
||||
- valid = false;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- return valid;
|
||||
-}
|
||||
-
|
||||
-static bool valid_intel_processor(__u8 family, __u8 model, __u8 stepping)
|
||||
-{
|
||||
- bool valid;
|
||||
-
|
||||
- if (family != 6)
|
||||
- return false;
|
||||
-
|
||||
- switch(model) {
|
||||
- case INTEL_FAM6_ATOM_GOLDMONT_D:
|
||||
- case INTEL_FAM6_ATOM_GOLDMONT_PLUS:
|
||||
-
|
||||
- case INTEL_FAM6_BROADWELL:
|
||||
- case INTEL_FAM6_BROADWELL_G:
|
||||
- case INTEL_FAM6_BROADWELL_X:
|
||||
- case INTEL_FAM6_BROADWELL_D:
|
||||
-
|
||||
- case INTEL_FAM6_HASWELL:
|
||||
- case INTEL_FAM6_HASWELL_G:
|
||||
- case INTEL_FAM6_HASWELL_L:
|
||||
- case INTEL_FAM6_HASWELL_X:
|
||||
- valid = true;
|
||||
- break;
|
||||
-
|
||||
- case INTEL_FAM6_KABYLAKE:
|
||||
- valid = (stepping <= 10);
|
||||
- break;
|
||||
-
|
||||
- case INTEL_FAM6_KABYLAKE_L:
|
||||
- valid = (stepping <= 11);
|
||||
- break;
|
||||
-
|
||||
- case INTEL_FAM6_SKYLAKE_L:
|
||||
- case INTEL_FAM6_SKYLAKE:
|
||||
- case INTEL_FAM6_SKYLAKE_X:
|
||||
- /* stepping > 4 is Cascade Lake and is not supported */
|
||||
- valid = (stepping <= 4);
|
||||
- break;
|
||||
-
|
||||
- default:
|
||||
- valid = false;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- return valid;
|
||||
-}
|
||||
|
||||
static void rh_check_supported(void)
|
||||
{
|
||||
@@ -843,27 +777,8 @@ static void rh_check_supported(void)
|
||||
*/
|
||||
switch (boot_cpu_data.x86_vendor) {
|
||||
case X86_VENDOR_AMD:
|
||||
- if (!valid_amd_processor(boot_cpu_data.x86,
|
||||
- boot_cpu_data.x86_model_id)) {
|
||||
- pr_crit("Detected CPU family %xh model %d\n",
|
||||
- boot_cpu_data.x86,
|
||||
- boot_cpu_data.x86_model);
|
||||
- mark_hardware_unsupported("AMD Processor");
|
||||
- }
|
||||
- break;
|
||||
-
|
||||
case X86_VENDOR_INTEL:
|
||||
- if (!valid_intel_processor(boot_cpu_data.x86,
|
||||
- boot_cpu_data.x86_model,
|
||||
- boot_cpu_data.x86_stepping)) {
|
||||
- pr_crit("Detected CPU family %d model %d stepping %d\n",
|
||||
- boot_cpu_data.x86,
|
||||
- boot_cpu_data.x86_model,
|
||||
- boot_cpu_data.x86_stepping);
|
||||
- mark_hardware_unsupported("Intel Processor");
|
||||
- }
|
||||
break;
|
||||
-
|
||||
default:
|
||||
pr_crit("Detected processor %s %s\n",
|
||||
boot_cpu_data.x86_vendor_id,
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,71 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Leech <cleech@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:43 -0500
|
||||
Subject: [PATCH] be2iscsi: remove unsupported device IDs
|
||||
|
||||
Message-id: <20180503194032.1461134-1-cleech@redhat.com>
|
||||
Patchwork-id: 212454
|
||||
O-Subject: [RHEL8 PATCH e-stor] scsi: be2iscsi: remove unsupported device IDs
|
||||
Bugzilla: 1574502
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Tom Coughlan <coughlan@redhat.com>
|
||||
RH-Acked-by: Ewan Milne <emilne@redhat.com>
|
||||
|
||||
Bugzilla: 1574502
|
||||
Upstream Status: RHEL Specific
|
||||
Build Info: brew 15975638
|
||||
|
||||
BladeEngine 2 generation devices are deprecated in RHEL 7
|
||||
and not supported in RHEL 8
|
||||
|
||||
Signed-off-by: Chris Leech <cleech@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
be2iscsi: remove BE3 family support
|
||||
|
||||
Message-id: <1530890927-5792-1-git-send-email-mlombard@redhat.com>
|
||||
Patchwork-id: 223576
|
||||
O-Subject: [RHEL8 e-stor PATCH] be2iscsi: remove BE3 family support
|
||||
Bugzilla: 1598366
|
||||
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/show_bug.cgi?id98366
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID996775
|
||||
Upstream: RHEL-only, they tried to mark BE3 as unsupported
|
||||
in upstream kernel but the patch has been rejected.
|
||||
See: https://marc.info/?l=linux-scsi&m2835991600881&w=2
|
||||
|
||||
Broadcom doesn't want to provide support for the BE3 device family
|
||||
in RHEL8.
|
||||
|
||||
This patch removes the BE3's PCI-IDs.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/scsi/be2iscsi/be_main.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
|
||||
index 9b81cfbbc5c5..1ca08297939c 100644
|
||||
--- a/drivers/scsi/be2iscsi/be_main.c
|
||||
+++ b/drivers/scsi/be2iscsi/be_main.c
|
||||
@@ -370,11 +370,13 @@ 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[] = {
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{ PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) },
|
||||
{ PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2) },
|
||||
{ PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) },
|
||||
{ PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) },
|
||||
{ PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID3) },
|
||||
+#endif
|
||||
{ PCI_DEVICE(ELX_VENDOR_ID, OC_SKH_ID1) },
|
||||
{ 0 }
|
||||
};
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,53 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Eugene Syromiatnikov <esyr@redhat.com>
|
||||
Date: Thu, 14 Jun 2018 16:36:08 -0400
|
||||
Subject: [PATCH] bpf: Add tech preview taint for syscall
|
||||
|
||||
Message-id: <394af3a9985d1ad9ea6741cb95ff145312d106b9.1528991396.git.esyr@redhat.com>
|
||||
Patchwork-id: 8251
|
||||
O-Subject: [kernel team] [RHEL8 PATCH v4 3/5] [bpf] bpf: Add tech preview taint for syscall
|
||||
Bugzilla: 1559877
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
|
||||
|
||||
Adding tech preview taint for using the eBPF syscall.
|
||||
|
||||
Based on a RHEL 7 commit "bpf: Add tech preview taint for syscall" by
|
||||
Jiri Olsa.
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1559877
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16716594
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
|
||||
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
kernel/bpf/syscall.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
|
||||
index 60f70f31060e..628d0ba68106 100644
|
||||
--- a/kernel/bpf/syscall.c
|
||||
+++ b/kernel/bpf/syscall.c
|
||||
@@ -4094,11 +4094,17 @@ static int bpf_iter_create(union bpf_attr *attr)
|
||||
SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
|
||||
{
|
||||
union bpf_attr attr;
|
||||
+ static int marked;
|
||||
int err;
|
||||
|
||||
if (sysctl_unprivileged_bpf_disabled && !bpf_capable())
|
||||
return -EPERM;
|
||||
|
||||
+ if (!marked) {
|
||||
+ mark_tech_preview("eBPF syscall", NULL);
|
||||
+ marked = true;
|
||||
+ }
|
||||
+
|
||||
err = bpf_check_uarg_tail_zero(uattr, sizeof(attr), size);
|
||||
if (err)
|
||||
return err;
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,122 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Eugene Syromiatnikov <esyr@redhat.com>
|
||||
Date: Thu, 14 Jun 2018 16:36:02 -0400
|
||||
Subject: [PATCH] bpf: set unprivileged_bpf_disabled to 1 by default, add a
|
||||
boot parameter
|
||||
|
||||
Message-id: <133022c6c389ca16060bd20ef69199de0800200b.1528991396.git.esyr@redhat.com>
|
||||
Patchwork-id: 8250
|
||||
O-Subject: [kernel team] [RHEL8 PATCH v4 2/5] [bpf] bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter
|
||||
Bugzilla: 1561171
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
|
||||
|
||||
This patch sets kernel.unprivileged_bpf_disabled sysctl knob to 1
|
||||
by default, and provides an ability (in a form of a boot-time parameter)
|
||||
to reset it to 0, as it is impossible to do so in runtime. Since
|
||||
unprivileged BPF is considered unsupported, it also taints the kernel.
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1561171
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16716594
|
||||
Upstream: RHEL only. The patch (in a more generic form) has been
|
||||
proposed upstream[1] and subsequently rejected.
|
||||
|
||||
[1] https://lkml.org/lkml/2018/5/21/344
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
.../admin-guide/kernel-parameters.txt | 8 +++++++
|
||||
include/linux/kernel.h | 2 +-
|
||||
kernel/bpf/syscall.c | 21 ++++++++++++++++++-
|
||||
kernel/panic.c | 2 +-
|
||||
4 files changed, 30 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||
index fb95fad81c79..a43287854f8a 100644
|
||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||
@@ -5277,6 +5277,14 @@
|
||||
unknown_nmi_panic
|
||||
[X86] Cause panic on unknown NMI.
|
||||
|
||||
+ unprivileged_bpf_disabled=
|
||||
+ Format: { "0" | "1" }
|
||||
+ Sets the initial value of
|
||||
+ kernel.unprivileged_bpf_disabled sysctl knob.
|
||||
+ 0 - unprivileged bpf() syscall access is enabled.
|
||||
+ 1 - unprivileged bpf() syscall access is disabled.
|
||||
+ Default value is 1.
|
||||
+
|
||||
usbcore.authorized_default=
|
||||
[USB] Default USB device authorization:
|
||||
(default -1 = authorized except for wireless USB,
|
||||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
|
||||
index 28be75396242..0a0081b10edb 100644
|
||||
--- a/include/linux/kernel.h
|
||||
+++ b/include/linux/kernel.h
|
||||
@@ -618,7 +618,7 @@ extern enum system_states {
|
||||
#define TAINT_RESERVED28 28
|
||||
#define TAINT_RESERVED29 29
|
||||
#define TAINT_RESERVED30 30
|
||||
-#define TAINT_RESERVED31 31
|
||||
+#define TAINT_UNPRIVILEGED_BPF 31
|
||||
/* End of Red Hat-specific taint flags */
|
||||
#define TAINT_FLAGS_COUNT 32
|
||||
#define TAINT_FLAGS_MAX ((1UL << TAINT_FLAGS_COUNT) - 1)
|
||||
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
|
||||
index 0fd80ac81f70..60f70f31060e 100644
|
||||
--- a/kernel/bpf/syscall.c
|
||||
+++ b/kernel/bpf/syscall.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/nospec.h>
|
||||
#include <linux/audit.h>
|
||||
+#include <linux/init.h>
|
||||
#include <uapi/linux/btf.h>
|
||||
#include <linux/pgtable.h>
|
||||
#include <linux/bpf_lsm.h>
|
||||
@@ -48,7 +49,25 @@ static DEFINE_SPINLOCK(map_idr_lock);
|
||||
static DEFINE_IDR(link_idr);
|
||||
static DEFINE_SPINLOCK(link_idr_lock);
|
||||
|
||||
-int sysctl_unprivileged_bpf_disabled __read_mostly;
|
||||
+/* RHEL-only: default to 1 */
|
||||
+int sysctl_unprivileged_bpf_disabled __read_mostly = 1;
|
||||
+
|
||||
+static int __init unprivileged_bpf_setup(char *str)
|
||||
+{
|
||||
+ unsigned long disabled;
|
||||
+ if (!kstrtoul(str, 0, &disabled))
|
||||
+ sysctl_unprivileged_bpf_disabled = !!disabled;
|
||||
+
|
||||
+ if (!sysctl_unprivileged_bpf_disabled) {
|
||||
+ pr_warn("Unprivileged BPF has been enabled "
|
||||
+ "(unprivileged_bpf_disabled=0 has been supplied "
|
||||
+ "in boot parameters), tainting the kernel");
|
||||
+ add_taint(TAINT_UNPRIVILEGED_BPF, LOCKDEP_STILL_OK);
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+__setup("unprivileged_bpf_disabled=", unprivileged_bpf_setup);
|
||||
|
||||
static const struct bpf_map_ops * const bpf_map_types[] = {
|
||||
#define BPF_PROG_TYPE(_id, _name, prog_ctx_type, kern_ctx_type)
|
||||
diff --git a/kernel/panic.c b/kernel/panic.c
|
||||
index 534bc76e43da..e3bae852d92f 100644
|
||||
--- a/kernel/panic.c
|
||||
+++ b/kernel/panic.c
|
||||
@@ -399,7 +399,7 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
|
||||
[ TAINT_RESERVED28 ] = { '?', '-', false },
|
||||
[ TAINT_RESERVED29 ] = { '?', '-', false },
|
||||
[ TAINT_RESERVED30 ] = { '?', '-', false },
|
||||
- [ TAINT_RESERVED31 ] = { '?', '-', false },
|
||||
+ [ TAINT_UNPRIVILEGED_BPF ] = { 'u', ' ', false },
|
||||
};
|
||||
|
||||
/**
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Vadot <manu@freebsd.org>
|
||||
Date: Wed, 4 Mar 2020 22:30:22 +0100
|
||||
Subject: [PATCH] dt-bindings: Add doc for Pine64 Pinebook Pro
|
||||
|
||||
Add a compatible for Pine64 Pinebook Pro
|
||||
|
||||
Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
|
||||
Reviewed-by: Rob Herring <robh@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
|
||||
index d4a4045092df..ed808148b6a7 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
|
||||
@@ -425,6 +425,11 @@ properties:
|
||||
- const: pine64,rockpro64
|
||||
- const: rockchip,rk3399
|
||||
|
||||
+ - description: Pine64 PinebookPro
|
||||
+ items:
|
||||
+ - const: pine64,pinebook-pro
|
||||
+ - const: rockchip,rk3399
|
||||
+
|
||||
- description: Radxa Rock
|
||||
items:
|
||||
- const: radxa,rock
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,55 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Joseph Szczypek <jszczype@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:40 -0500
|
||||
Subject: [PATCH] hpsa: remove old cciss-based smartarray pci ids
|
||||
|
||||
Message-id: <1524750809-43700-2-git-send-email-jszczype@redhat.com>
|
||||
Patchwork-id: 211573
|
||||
O-Subject: [RHEL8 e-stor PATCH 1/2] hpsa: remove old cciss-based smartarray pci ids
|
||||
Bugzilla: 1471185
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>
|
||||
|
||||
Per discussion with Microsemi, the old PCI IDs for smartarrays
|
||||
originally used with the old cciss driver are not being
|
||||
supported with RHEL8. They are also not supported with RHEL7.
|
||||
Therefore the PCI IDs and the catch-all are being removed.
|
||||
|
||||
Acked-by: Don Brace <don.brace@microsemi.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
---
|
||||
drivers/scsi/hpsa.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
|
||||
index 81d0414e2117..a3c5be79a9cc 100644
|
||||
--- a/drivers/scsi/hpsa.c
|
||||
+++ b/drivers/scsi/hpsa.c
|
||||
@@ -82,7 +82,9 @@ MODULE_DESCRIPTION("Driver for HP Smart Array Controller version " \
|
||||
MODULE_SUPPORTED_DEVICE("HP Smart Array Controllers");
|
||||
MODULE_VERSION(HPSA_DRIVER_VERSION);
|
||||
MODULE_LICENSE("GPL");
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
MODULE_ALIAS("cciss");
|
||||
+#endif
|
||||
|
||||
static int hpsa_simple_mode;
|
||||
module_param(hpsa_simple_mode, int, S_IRUGO|S_IWUSR);
|
||||
@@ -144,10 +146,12 @@ 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},
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{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},
|
||||
+#endif
|
||||
{0,}
|
||||
};
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Toppins <jtoppins@redhat.com>
|
||||
Date: Tue, 24 Jul 2018 19:17:40 -0400
|
||||
Subject: [PATCH] ice: mark driver as tech-preview
|
||||
|
||||
Message-id: <f087de8dbe4e8eac9f0992cc34def0a07aba206d.1532459145.git.jtoppins@redhat.com>
|
||||
Patchwork-id: 8526
|
||||
O-Subject: [kernel team] [PATCH RHEL8 1/3] [redhat] ice: mark driver as tech-preview
|
||||
Bugzilla: 1495347
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
RH-Acked-by: Don Dutile <ddutile@redhat.com>
|
||||
RH-Acked-by: David S. Miller <davem@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Neil Horman <nhorman@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
|
||||
Upstream Status: RHEL-only
|
||||
Bugzilla: 1495347
|
||||
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=17334539
|
||||
Tested: booted and verified taint flags were set when the driver was loaded.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/net/ethernet/intel/ice/ice_main.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
|
||||
index 4cbd49c87568..aa9baa923fd9 100644
|
||||
--- a/drivers/net/ethernet/intel/ice/ice_main.c
|
||||
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
|
||||
@@ -3771,6 +3771,7 @@ static int __init ice_module_init(void)
|
||||
|
||||
pr_info("%s - version %s\n", ice_driver_string, ice_drv_ver);
|
||||
pr_info("%s\n", ice_copyright);
|
||||
+ mark_tech_preview(DRV_SUMMARY, THIS_MODULE);
|
||||
|
||||
ice_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, KBUILD_MODNAME);
|
||||
if (!ice_wq) {
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Tue, 23 Jul 2019 11:39:36 -0400
|
||||
Subject: [PATCH] [initial commit] Add Red Hat variables in the top level
|
||||
makefile
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
Makefile | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 3e4868a6498b..502f9a9a2806 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -15,6 +15,9 @@ NAME = Bobtail Squid
|
||||
PHONY := __all
|
||||
__all:
|
||||
|
||||
+# Set RHEL variables
|
||||
+include Makefile.rhelver
|
||||
+
|
||||
# We are using a recursive build, so we need to do a little thinking
|
||||
# to get the ordering right.
|
||||
#
|
||||
@@ -1160,7 +1163,13 @@ endef
|
||||
define filechk_version.h
|
||||
echo \#define LINUX_VERSION_CODE $(shell \
|
||||
expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
|
||||
- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
|
||||
+ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
|
||||
+ echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \
|
||||
+ echo '#define RHEL_MINOR $(RHEL_MINOR)'; \
|
||||
+ echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \
|
||||
+ echo '#define RHEL_RELEASE_CODE \
|
||||
+ $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \
|
||||
+ echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"'
|
||||
endef
|
||||
|
||||
$(version_h): FORCE
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,214 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Myron Stowe <myron.stowe@redhat.com>
|
||||
Date: Fri, 29 Jun 2018 20:05:41 -0400
|
||||
Subject: [PATCH] kABI: Add generic kABI macros to use for kABI workarounds
|
||||
|
||||
Message-id: <20180629200436.151355.18581.stgit@tak.stowe>
|
||||
Patchwork-id: 223206
|
||||
O-Subject: [RHEL8.0 PATCH v3] kABI: Add generic kABI macros to use for kABI workarounds
|
||||
Bugzilla: 1546831
|
||||
RH-Acked-by: Larry Woodman <lwoodman@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Some kernel subsystem maintainers have asked about kABI for RHEL8.0
|
||||
- getting kABI related "extension" structures and such into place. The
|
||||
consensus was to wait until the 4.17 re-base. Now that that's occurred,
|
||||
lets get this first step, kABI macros, into RHEL8.0 so developers will
|
||||
notice, and use, them in subsequent kABI related efforts.
|
||||
|
||||
Content taken from RHEL 7. No functional change intended.
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1546831
|
||||
Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=16694565
|
||||
Upstream Status: N/A (RHEL only)
|
||||
Testing: Passed through brew build.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Myron Stowe <myron.stowe@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 172 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 172 insertions(+)
|
||||
create mode 100644 include/linux/rh_kabi.h
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
new file mode 100644
|
||||
index 000000000000..e0d3353802bb
|
||||
--- /dev/null
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -0,0 +1,172 @@
|
||||
+/*
|
||||
+ * rh_kabi.h - Red Hat kABI abstraction header
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Don Zickus
|
||||
+ * Copyright (c) 2015-2017 Jiri Benc
|
||||
+ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa
|
||||
+ * Copyright (c) 2016-2018 Prarit Bhargava
|
||||
+ * Copyright (c) 2017 Paolo Abeni, Larry Woodman
|
||||
+ *
|
||||
+ * This file is released under the GPLv2.
|
||||
+ * See the file COPYING for more details.
|
||||
+ *
|
||||
+ * These kabi macros hide the changes from the kabi checker and from the
|
||||
+ * process that computes the exported symbols' checksums.
|
||||
+ * They have 2 variants: one (defined under __GENKSYMS__) used when
|
||||
+ * generating the checksums, and the other used when building the kernel's
|
||||
+ * binaries.
|
||||
+ *
|
||||
+ * The use of these macros does not guarantee that the usage and modification
|
||||
+ * of code is correct. As with all Red Hat only changes, an engineer must
|
||||
+ * explain why the use of the macro is valid in the patch containing the
|
||||
+ * changes.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifndef _LINUX_RH_KABI_H
|
||||
+#define _LINUX_RH_KABI_H
|
||||
+
|
||||
+#include <linux/compiler.h>
|
||||
+#include <linux/stringify.h>
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_CONST
|
||||
+ * Adds a new const modifier to a function parameter preserving the old
|
||||
+ * checksum.
|
||||
+ *
|
||||
+ * RH_KABI_DEPRECATE
|
||||
+ * Mark the element as deprecated and make it unusable by modules while
|
||||
+ * preserving kABI checksums.
|
||||
+ *
|
||||
+ * RH_KABI_DEPRECATE_FN
|
||||
+ * Mark the function pointer as deprecated and make it unusable by modules
|
||||
+ * while preserving kABI checksums.
|
||||
+ *
|
||||
+ * RH_KABI_EXTEND
|
||||
+ * Simple macro for adding a new element to a struct.
|
||||
+ *
|
||||
+ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify.
|
||||
+ *
|
||||
+ * RH_KABI_FILL_HOLE
|
||||
+ * Simple macro for filling a hole in a struct.
|
||||
+ *
|
||||
+ * RH_KABI_RENAME
|
||||
+ * Simple macro for renaming an element without changing its type. This
|
||||
+ * macro can be used in bitfields, for example.
|
||||
+ *
|
||||
+ * NOTE: does not include the final ';'
|
||||
+ *
|
||||
+ * RH_KABI_REPLACE
|
||||
+ * Simple replacement of _orig with a union of _orig and _new.
|
||||
+ *
|
||||
+ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new'
|
||||
+ * element while preserving size alignment with the '_orig' element.
|
||||
+ *
|
||||
+ * The #ifdef __GENKSYMS__ preserves the kABI agreement, while the anonymous
|
||||
+ * union structure preserves the size alignment (assuming the '_new' element
|
||||
+ * is not bigger than the '_orig' element).
|
||||
+ *
|
||||
+ * RH_KABI_REPLACE_UNSAFE
|
||||
+ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs.
|
||||
+ *
|
||||
+ * RH_KABI_FORCE_CHANGE
|
||||
+ * Force change of the symbol checksum. The argument of the macro is a
|
||||
+ * version for cases we need to do this more than once.
|
||||
+ *
|
||||
+ * This macro does the opposite: it changes the symbol checksum without
|
||||
+ * actually changing anything about the exported symbol. It is useful for
|
||||
+ * symbols that are not whitelisted, we're changing them in an
|
||||
+ * incompatible way and want to prevent 3rd party modules to silently
|
||||
+ * corrupt memory. Instead, by changing the symbol checksum, such modules
|
||||
+ * won't be loaded by the kernel. This macro should only be used as a
|
||||
+ * last resort when all other KABI workarounds have failed.
|
||||
+ *
|
||||
+ * NOTE
|
||||
+ * Don't use ';' after these macros as it messes up the kABI checker by
|
||||
+ * changing what the resulting token string looks like. Instead let this
|
||||
+ * macro add the ';' so it can be properly hidden from the kABI checker
|
||||
+ * (mainly for RH_KABI_EXTEND, but applied to all macros for uniformity).
|
||||
+ *
|
||||
+ */
|
||||
+#ifdef __GENKSYMS__
|
||||
+
|
||||
+# define RH_KABI_CONST
|
||||
+# define RH_KABI_EXTEND(_new)
|
||||
+# define RH_KABI_FILL_HOLE(_new)
|
||||
+# define RH_KABI_FORCE_CHANGE(ver) __attribute__((rh_kabi_change ## ver))
|
||||
+# define RH_KABI_RENAME(_orig, _new) _orig
|
||||
+
|
||||
+# define _RH_KABI_DEPRECATE(_type, _orig) _type _orig
|
||||
+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args)
|
||||
+# define _RH_KABI_REPLACE(_orig, _new) _orig
|
||||
+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging."
|
||||
+
|
||||
+# define RH_KABI_CONST const
|
||||
+# define RH_KABI_EXTEND(_new) _new;
|
||||
+# define RH_KABI_FILL_HOLE(_new) _new;
|
||||
+# define RH_KABI_FORCE_CHANGE(ver)
|
||||
+# define RH_KABI_RENAME(_orig, _new) _new
|
||||
+
|
||||
+
|
||||
+#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS)
|
||||
+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \
|
||||
+ union { \
|
||||
+ _Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}), \
|
||||
+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_new) " is larger than " __stringify(_orig) RH_KABI_ALIGN_WARNING); \
|
||||
+ _Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \
|
||||
+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \
|
||||
+ }
|
||||
+#else
|
||||
+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new)
|
||||
+#endif
|
||||
+
|
||||
+# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig
|
||||
+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \
|
||||
+ _type (* rh_reserved_##_orig)(_args)
|
||||
+# define _RH_KABI_REPLACE(_orig, _new) \
|
||||
+ union { \
|
||||
+ _new; \
|
||||
+ struct { \
|
||||
+ _orig; \
|
||||
+ } __UNIQUE_ID(rh_kabi_hide); \
|
||||
+ __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \
|
||||
+ }
|
||||
+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new
|
||||
+
|
||||
+#endif /* __GENKSYMS__ */
|
||||
+
|
||||
+/* semicolon added wrappers for the RH_KABI_REPLACE macros */
|
||||
+# define RH_KABI_DEPRECATE(_type, _orig) _RH_KABI_DEPRECATE(_type, _orig);
|
||||
+# define RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \
|
||||
+ _RH_KABI_DEPRECATE_FN(_type, _orig, _args);
|
||||
+# define RH_KABI_REPLACE(_orig, _new) _RH_KABI_REPLACE(_orig, _new);
|
||||
+# define RH_KABI_REPLACE_UNSAFE(_orig, _new) _RH_KABI_REPLACE_UNSAFE(_orig, _new);
|
||||
+/*
|
||||
+ * Macro for breaking up a random element into two smaller chunks using an
|
||||
+ * anonymous struct inside an anonymous union.
|
||||
+ */
|
||||
+# define RH_KABI_REPLACE2(orig, _new1, _new2) RH_KABI_REPLACE(orig, struct{ _new1; _new2;})
|
||||
+
|
||||
+# define RH_KABI_RESERVE(n) _RH_KABI_RESERVE(n);
|
||||
+/*
|
||||
+ * Simple wrappers to replace standard Red Hat reserved elements.
|
||||
+ */
|
||||
+# define RH_KABI_USE(n, _new) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), _new)
|
||||
+/*
|
||||
+ * Macros for breaking up a reserved element into two smaller chunks using
|
||||
+ * an anonymous struct inside an anonymous union.
|
||||
+ */
|
||||
+# define RH_KABI_USE2(n, _new1, _new2) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), struct{ _new1; _new2; })
|
||||
+
|
||||
+/*
|
||||
+ * We tried to standardize on Red Hat reserved names. These wrappers
|
||||
+ * leverage those common names making it easier to read and find in the
|
||||
+ * code.
|
||||
+ */
|
||||
+# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n
|
||||
+
|
||||
+#endif /* _LINUX_RH_KABI_H */
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,53 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Henzl <thenzl@redhat.com>
|
||||
Date: Thu, 9 Aug 2018 13:44:15 -0400
|
||||
Subject: [PATCH] kernel: add SUPPORT_REMOVED kernel taint
|
||||
|
||||
Message-id: <e9a9812a-6a4c-a205-e66a-1d47de58306a@redhat.com>
|
||||
Patchwork-id: 226423
|
||||
O-Subject: [RHEL-8.0 V4 01/10] kernel: add SUPPORT_REMOVED kernel taint
|
||||
Bugzilla: 1602033
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: Rob Evers <revers@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
|
||||
rh_taint, pci : add information about removed hardware
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
include/linux/kernel.h | 2 +-
|
||||
kernel/panic.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
|
||||
index cfaaa6a234d4..dab7302a3606 100644
|
||||
--- a/include/linux/kernel.h
|
||||
+++ b/include/linux/kernel.h
|
||||
@@ -613,7 +613,7 @@ extern enum system_states {
|
||||
#define TAINT_24 24
|
||||
#define TAINT_25 25
|
||||
#define TAINT_26 26
|
||||
-#define TAINT_27 27
|
||||
+#define TAINT_SUPPORT_REMOVED 27
|
||||
/* Bits 28 - 31 are reserved for Red Hat use only */
|
||||
#define TAINT_RESERVED28 28
|
||||
#define TAINT_RESERVED29 29
|
||||
diff --git a/kernel/panic.c b/kernel/panic.c
|
||||
index e3bae852d92f..8ab004b0f846 100644
|
||||
--- a/kernel/panic.c
|
||||
+++ b/kernel/panic.c
|
||||
@@ -395,7 +395,7 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
|
||||
[ TAINT_24 ] = { '?', '-', false },
|
||||
[ TAINT_25 ] = { '?', '-', false },
|
||||
[ TAINT_26 ] = { '?', '-', false },
|
||||
- [ TAINT_27 ] = { '?', '-', false },
|
||||
+ [ TAINT_SUPPORT_REMOVED ] = { 'h', ' ', false },
|
||||
[ TAINT_RESERVED28 ] = { '?', '-', false },
|
||||
[ TAINT_RESERVED29 ] = { '?', '-', false },
|
||||
[ TAINT_RESERVED30 ] = { '?', '-', false },
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,47 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Henzl <thenzl@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:37 -0500
|
||||
Subject: [PATCH] megaraid_sas: remove deprecated pci-ids
|
||||
|
||||
Message-id: <20180403143030.4971-2-thenzl@redhat.com>
|
||||
Patchwork-id: 7432
|
||||
O-Subject: [kernel team] [RHEL8 e-stor PATCH] megaraid_sas: remove deprecated pci-ids
|
||||
Bugzilla: 1509329
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
|
||||
bz#1509329
|
||||
brew - task_15594743
|
||||
|
||||
RH specific - remove EOL devices from the pci-id table
|
||||
(devices to remove were selected by Broadcom)
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/scsi/megaraid/megaraid_sas_base.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
|
||||
index 00668335c2af..219f95ab56f8 100644
|
||||
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
|
||||
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
|
||||
@@ -133,6 +133,7 @@ static void megasas_get_pd_info(struct megasas_instance *instance,
|
||||
*/
|
||||
static struct pci_device_id megasas_pci_table[] = {
|
||||
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{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)},
|
||||
@@ -151,6 +152,7 @@ static struct pci_device_id megasas_pci_table[] = {
|
||||
/* xscale IOP, vega */
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_PERC5)},
|
||||
/* xscale IOP */
|
||||
+#endif
|
||||
{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.26.2
|
||||
|
@ -1,151 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Mon, 7 Jan 2019 21:03:10 +0000
|
||||
Subject: [PATCH] modules: add rhelversion MODULE_INFO tag
|
||||
|
||||
There were several changes in the 5.0-rc1 kernel that required
|
||||
this patch to be rebased with some context diff.
|
||||
|
||||
Patchwork-id: 7379
|
||||
O-Subject: [kernel team] [RHEL8.0 BZ 1544999 1/2] modules: add rhelversion MODULE_INFO tag
|
||||
Bugzilla: 1544999
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Oleg Nesterov <oleg@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1544999
|
||||
|
||||
kernel-alt commit 9816b4b6ca5d4c0504d8806ce99442c90afbc8e6
|
||||
Author: Prarit Bhargava <prarit@redhat.com>
|
||||
Date: Fri Feb 9 18:09:26 2018 -0500
|
||||
|
||||
[kernel] modules: add rhelversion MODULE_INFO tag
|
||||
|
||||
Message-id: <20180209180926.5955-3-prarit@redhat.com>
|
||||
Patchwork-id: 205587
|
||||
O-Subject: [RHEL-ALT-7.5 BZ 1542796 2/2] modules: add rhelversion MODULE_INFO tag
|
||||
Bugzilla: 1542796
|
||||
RH-Acked-by: David Arcari <darcari@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1542796
|
||||
|
||||
rhel7 commit 9af8c3992ce5fff253c49abc0dedb3ec77badba4
|
||||
Author: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Date: Fri Sep 12 17:46:12 2014 -0400
|
||||
|
||||
[kernel] modules: add rhelversion MODULE_INFO tag
|
||||
|
||||
Message-id: <20140912174612.GS29420@redacted.bos.redhat.com>
|
||||
Patchwork-id: 94052
|
||||
O-Subject: [RHEL7.1 PATCH 2/6 v4] modules: add rhelversion MODULE_INFO tag
|
||||
Bugzilla: 1110315
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Johannes Weiner <jweiner@redhat.com>
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
|
||||
From: Kyle McMartin <kmcmarti@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1110315
|
||||
|
||||
>From kylem's RHEL8 post:
|
||||
|
||||
Let's not lose this ability in RHEL8. Sadly can't be applied to RHEL7
|
||||
because it breaks KABI due to the struct module change.
|
||||
|
||||
Inspired by bits of a147e4729d9920ccae2c717ca65c811cc0f93a1d in RHEL6,
|
||||
which got lost for RHEL7.0. :/
|
||||
|
||||
Kyle is correct and doing this would break RHEL7's KABI. I'm taking this
|
||||
patch in as a base and the next patch will resolve the KABI issues.
|
||||
|
||||
[v2]: dzickus, cleanup add_rhelversion()
|
||||
[v4]: resubmitted along with 16k stacks change
|
||||
|
||||
Signed-off-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Cc: Richard Guy Briggs <rgb@redhat.com>
|
||||
Cc: Peter Rajnoha <prajnoha@redhat.com>
|
||||
Cc: Laura Abbott <labbott@redhat.com>
|
||||
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
---
|
||||
include/linux/module.h | 1 +
|
||||
kernel/module.c | 2 ++
|
||||
scripts/mod/modpost.c | 8 ++++++++
|
||||
3 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/include/linux/module.h b/include/linux/module.h
|
||||
index 2e6670860d27..8c35a5db7d7e 100644
|
||||
--- a/include/linux/module.h
|
||||
+++ b/include/linux/module.h
|
||||
@@ -371,6 +371,7 @@ struct module {
|
||||
struct module_attribute *modinfo_attrs;
|
||||
const char *version;
|
||||
const char *srcversion;
|
||||
+ const char *rhelversion;
|
||||
struct kobject *holders_dir;
|
||||
|
||||
/* Exported symbols */
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index aa183c9ac0a2..dc323b3f5838 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -802,6 +802,7 @@ static struct module_attribute modinfo_##field = { \
|
||||
|
||||
MODINFO_ATTR(version);
|
||||
MODINFO_ATTR(srcversion);
|
||||
+MODINFO_ATTR(rhelversion);
|
||||
|
||||
static char last_unloaded_module[MODULE_NAME_LEN+1];
|
||||
|
||||
@@ -1266,6 +1267,7 @@ static struct module_attribute *modinfo_attrs[] = {
|
||||
&module_uevent,
|
||||
&modinfo_version,
|
||||
&modinfo_srcversion,
|
||||
+ &modinfo_rhelversion,
|
||||
&modinfo_initstate,
|
||||
&modinfo_coresize,
|
||||
&modinfo_initsize,
|
||||
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
|
||||
index 69341b36f271..dbc63328187c 100644
|
||||
--- a/scripts/mod/modpost.c
|
||||
+++ b/scripts/mod/modpost.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <errno.h>
|
||||
#include "modpost.h"
|
||||
#include "../../include/linux/license.h"
|
||||
+#include "../../include/generated/uapi/linux/version.h"
|
||||
|
||||
/* Are we using CONFIG_MODVERSIONS? */
|
||||
static int modversions = 0;
|
||||
@@ -2393,6 +2394,12 @@ static void write_buf(struct buffer *b, const char *fname)
|
||||
}
|
||||
}
|
||||
|
||||
+static void add_rhelversion(struct buffer *b, struct module *mod)
|
||||
+{
|
||||
+ buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR,
|
||||
+ RHEL_MINOR);
|
||||
+}
|
||||
+
|
||||
static void write_if_changed(struct buffer *b, const char *fname)
|
||||
{
|
||||
char *tmp;
|
||||
@@ -2645,6 +2652,7 @@ int main(int argc, char **argv)
|
||||
add_depends(&buf, mod);
|
||||
add_moddevtable(&buf, mod);
|
||||
add_srcversion(&buf, mod);
|
||||
+ add_rhelversion(&buf, mod);
|
||||
|
||||
sprintf(fname, "%s.mod.c", mod->name);
|
||||
write_if_changed(&buf, fname);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,71 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Cline <jcline@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:36 -0500
|
||||
Subject: [PATCH] mpt*: remove certain deprecated pci-ids
|
||||
|
||||
Message-id: <20190708192032.20922-1-jcline@redhat.com>
|
||||
Patchwork-id: 266421
|
||||
O-Subject: [ARK INTERNAL PATCH] mpt*: remove certain deprecated pci-ids
|
||||
Bugzilla:
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Commit 8f8384503e40 ("scsi: mpt3sas: Add support for NVMe Switch
|
||||
Adapter") introduced a new PCI device ID which broke the patch context.
|
||||
|
||||
Message-id: <20180403143030.4971-1-thenzl@redhat.com>
|
||||
Patchwork-id: 7431
|
||||
O-Subject: [kernel team] [RHEL8 e-stor PATCH] mpt*: remove certain deprecated pci-ids
|
||||
Bugzilla: 1511953
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
|
||||
bz#1511953
|
||||
brew - task_15594743
|
||||
|
||||
RH specific - remove EOL devices from the pci-id table
|
||||
(devices to remove were selected by Broadcom)
|
||||
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
|
||||
index 08fc4b381056..1305a2b72536 100644
|
||||
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
|
||||
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
|
||||
@@ -11033,6 +11033,7 @@ bool scsih_ncq_prio_supp(struct scsi_device *sdev)
|
||||
* The pci device ids are defined in mpi/mpi2_cnfg.h.
|
||||
*/
|
||||
static const struct pci_device_id mpt3sas_pci_table[] = {
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
/* Spitfire ~ 2004 */
|
||||
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2004,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
@@ -11051,6 +11052,7 @@ static const struct pci_device_id mpt3sas_pci_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2116_2,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
+#endif
|
||||
/* Thunderbolt ~ 2208 */
|
||||
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_1,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
@@ -11075,9 +11077,11 @@ static const struct pci_device_id mpt3sas_pci_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SWITCH_MPI_EP_1,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
/* SSS6200 */
|
||||
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SSS6200,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
+#endif
|
||||
/* Fury ~ 3004 and 3008 */
|
||||
{ MPI2_MFGPAGE_VENDORID_LSI, MPI25_MFGPAGE_DEVID_SAS3004,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:46 -0500
|
||||
Subject: [PATCH] mptsas: Taint kernel if mptsas is loaded
|
||||
|
||||
Author: Tomas Henzl <thenzl@redhat.com>
|
||||
Date: Thu Jan 31 16:54:50 2019 -0500
|
||||
|
||||
[message] mptsas: Taint kernel if mptsas is loaded
|
||||
|
||||
Message-id: <20190131165452.7562-2-thenzl@redhat.com>
|
||||
Patchwork-id: 239764
|
||||
O-Subject: [RHEL8 e-stor 1/3] mptsas: Taint kernel if mptsas is loaded
|
||||
Bugzilla: 1666730
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
|
||||
RHEL-only
|
||||
|
||||
We are only keeping it to ease developer transitions, we're not
|
||||
supporting it, so mark it as unsupported by tainting the kernel and
|
||||
issuing an impossible to misunderstand message to the log
|
||||
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
drivers/message/fusion/mptsas.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
|
||||
index 6a79cd0ebe2b..c17614cd6ed8 100644
|
||||
--- a/drivers/message/fusion/mptsas.c
|
||||
+++ b/drivers/message/fusion/mptsas.c
|
||||
@@ -5290,6 +5290,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
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,58 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:47 -0500
|
||||
Subject: [PATCH] mptsas: pci-id table changes
|
||||
|
||||
Author: Tomas Henzl <thenzl@redhat.com>
|
||||
Date: Thu Jan 31 16:54:51 2019 -0500
|
||||
|
||||
[message] mptsas: pci-id table changes
|
||||
|
||||
Message-id: <20190131165452.7562-3-thenzl@redhat.com>
|
||||
Patchwork-id: 239765
|
||||
O-Subject: [RHEL8 e-stor 2/3] mptsas: pci-id table changes
|
||||
Bugzilla: 1666730
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
|
||||
RHEL-only
|
||||
|
||||
We want to provide this driver only for the virtualisation use case,
|
||||
so we remove all other entries from the pci-id table and add only the
|
||||
single entry needed for virtualisation.
|
||||
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
drivers/message/fusion/mptsas.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
|
||||
index c17614cd6ed8..ca44a35ec411 100644
|
||||
--- a/drivers/message/fusion/mptsas.c
|
||||
+++ b/drivers/message/fusion/mptsas.c
|
||||
@@ -5358,6 +5358,10 @@ static void mptsas_remove(struct pci_dev *pdev)
|
||||
}
|
||||
|
||||
static struct pci_device_id mptsas_pci_table[] = {
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068,
|
||||
+ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID },
|
||||
+#else
|
||||
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064,
|
||||
PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068,
|
||||
@@ -5370,6 +5374,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 },
|
||||
+#endif
|
||||
{0} /* Terminating entry */
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, mptsas_pci_table);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:48 -0500
|
||||
Subject: [PATCH] mptspi: Taint kernel if mptspi is loaded
|
||||
|
||||
Author: Tomas Henzl <thenzl@redhat.com>
|
||||
Date: Thu Jan 10 16:11:43 2019 -0500
|
||||
|
||||
[message] mptspi: Taint kernel if mptspi is loaded
|
||||
|
||||
Message-id: <20190110161145.5117-2-thenzl@redhat.com>
|
||||
Patchwork-id: 237188
|
||||
O-Subject: [RHEL-8.0 e-stor 1/3] mptspi: Taint kernel if mptspi is loaded
|
||||
Bugzilla: 1651803
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
|
||||
RHEL-only
|
||||
We are only keeping it to ease developer transitions, we're not
|
||||
supporting it, so mark it as unsupported by tainting the kernel and
|
||||
issuing an impossible to misunderstand message to the log
|
||||
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
drivers/message/fusion/mptspi.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
|
||||
index eabc4de5816c..c028f5944694 100644
|
||||
--- a/drivers/message/fusion/mptspi.c
|
||||
+++ b/drivers/message/fusion/mptspi.c
|
||||
@@ -1534,6 +1534,12 @@ 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;
|
||||
|
||||
out_mptspi_probe:
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,56 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:45 -0500
|
||||
Subject: [PATCH] mptspi: pci-id table changes
|
||||
|
||||
Author: Tomas Henzl <thenzl@redhat.com>
|
||||
Date: Thu Jan 10 16:11:44 2019 -0500
|
||||
|
||||
[message] mptspi: pci-id table changes
|
||||
|
||||
Message-id: <20190110161145.5117-3-thenzl@redhat.com>
|
||||
Patchwork-id: 237190
|
||||
O-Subject: [RHEL-8.0 e-stor 2/3] mptspi: pci-id table changes
|
||||
Bugzilla: 1651803
|
||||
RH-Acked-by: Maurizio Lombardi <mlombard@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
|
||||
RHEL-only
|
||||
We want to provide this driver only for the virtualisation use case,
|
||||
so we remove all other entries from the pci-id table and add only the
|
||||
single entry needed for virtualisation.
|
||||
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
drivers/message/fusion/mptspi.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
|
||||
index c028f5944694..1f458e35effb 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 = {
|
||||
*/
|
||||
|
||||
static struct pci_device_id mptspi_pci_table[] = {
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030,
|
||||
+ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID },
|
||||
+#else
|
||||
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030,
|
||||
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 },
|
||||
+#endif
|
||||
{0} /* Terminating entry */
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, mptspi_pci_table);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,82 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Mon, 7 Jan 2019 20:55:21 +0000
|
||||
Subject: [PATCH] put RHEL info into generated headers
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1663728
|
||||
|
||||
Commit 43fee2b23895 ("kbuild: do not redirect the first prerequisite for
|
||||
filechk") upstream introduced some context diff. This just fixes that up.
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1544999
|
||||
|
||||
kernel-alt commit b3bbf3db12b8a48491eb4175eae25eb907f092ac
|
||||
Author: Prarit Bhargava <prarit@redhat.com>
|
||||
Date: Fri Feb 9 18:09:25 2018 -0500
|
||||
|
||||
[kernel] put RHEL info into generated headers
|
||||
|
||||
Message-id: <20180209180926.5955-2-prarit@redhat.com>
|
||||
Patchwork-id: 205585
|
||||
O-Subject: [RHEL-ALT-7.5 BZ 1542796 1/2] put RHEL info into generated headers
|
||||
Bugzilla: 1542796
|
||||
RH-Acked-by: David Arcari <darcari@redhat.com>
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Steve Best <sbest@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1542796
|
||||
|
||||
rhel7 commit 6199c642a685fba61a298901190659dbedb7c3c3
|
||||
Author: Jarod Wilson <jarod@redhat.com>
|
||||
Date: Thu Oct 10 20:14:33 2013 -0400
|
||||
|
||||
[redhat] put RHEL info into generated headers
|
||||
|
||||
Message-id: <1381436073-8850-1-git-send-email-jarod@redhat.com>
|
||||
Patchwork-id: 69475
|
||||
O-Subject: [RHEL7 PATCH] [redhat] put RHEL info into generated headers
|
||||
Bugzilla:
|
||||
RH-Acked-by: Neil Horman <nhorman@redhat.com>
|
||||
RH-Acked-by: Rafael Aquini <aquini@redhat.com>
|
||||
RH-Acked-by: Kyle McMartin <kmcmarti@redhat.com>
|
||||
|
||||
While glancing at the differences between RHEL6 and RHEL7's modifications to the
|
||||
top-level Makefile, some discrepancies popped up... This brings RHEL7 in line
|
||||
with all of the customizations we make in RHEL6 to get distro info propagated.
|
||||
|
||||
Signed-off-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Cc: Herton R. Krzesinski <herton@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
---
|
||||
Makefile | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 24a4c1b97bb0..37cfb39d77af 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1217,7 +1217,13 @@ endef
|
||||
define filechk_version.h
|
||||
echo \#define LINUX_VERSION_CODE $(shell \
|
||||
expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
|
||||
- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
|
||||
+ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
|
||||
+ echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \
|
||||
+ echo '#define RHEL_MINOR $(RHEL_MINOR)'; \
|
||||
+ echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \
|
||||
+ echo '#define RHEL_RELEASE_CODE \
|
||||
+ $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \
|
||||
+ echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"'
|
||||
endef
|
||||
|
||||
$(version_h): FORCE
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,79 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Cline <jcline@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:44 -0500
|
||||
Subject: [PATCH] qla2xxx: Remove PCI IDs of deprecated adapter
|
||||
|
||||
Message-id: <20190708192223.21890-1-jcline@redhat.com>
|
||||
Patchwork-id: 266422
|
||||
O-Subject: [ARK INTERNAL PATCH] qla2xxx: Remove PCI IDs of deprecated adapter
|
||||
Bugzilla:
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Commit ecc89f25e225 ("scsi: qla2xxx: Add Device ID for ISP28XX")
|
||||
introduced addition device IDs which broke the patch context.
|
||||
|
||||
Message-id: <20180503234750.33648-1-hmadhani@redhat.com>
|
||||
Patchwork-id: 212501
|
||||
O-Subject: [RHEL 8 e-stor PATCH v2] qla2xxx: Remove PCI IDs of deprecated adapter
|
||||
Bugzilla: 1572233
|
||||
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>
|
||||
RH-Acked-by: Chris Leech <cleech@redhat.com>
|
||||
RH-Acked-by: Tom Coughlan <coughlan@redhat.com>
|
||||
|
||||
Bugzilla:
|
||||
======== https://bugzilla.redhat.com/show_bug.cgi?id72233
|
||||
|
||||
commit none
|
||||
|
||||
Brewbuild:
|
||||
========== https://brewweb.engineering.redhat.com/brew/taskinfo?taskID977226
|
||||
|
||||
Tetsing:
|
||||
======= N/A. PCI IDs are removed as part of this patch
|
||||
|
||||
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
|
||||
Note: Simplified backport to just pci-ids
|
||||
---
|
||||
drivers/scsi/qla2xxx/qla_os.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
|
||||
index e92fad99338c..8dae589e7e50 100644
|
||||
--- a/drivers/scsi/qla2xxx/qla_os.c
|
||||
+++ b/drivers/scsi/qla2xxx/qla_os.c
|
||||
@@ -7766,6 +7766,7 @@ static const struct pci_error_handlers qla2xxx_err_handler = {
|
||||
};
|
||||
|
||||
static struct pci_device_id qla2xxx_pci_tbl[] = {
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{ 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) },
|
||||
@@ -7778,13 +7779,18 @@ static struct pci_device_id qla2xxx_pci_tbl[] = {
|
||||
{ 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) },
|
||||
+#endif
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2532) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2031) },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8001) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) },
|
||||
+#endif
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) },
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8044) },
|
||||
+#endif
|
||||
{ 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.26.2
|
||||
|
@ -1,56 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Chad Dupuis <cdupuis@redhat.com>
|
||||
Date: Thu, 2 Jan 2020 14:24:39 -0500
|
||||
Subject: [PATCH] qla4xxx: Remove deprecated PCI IDs from RHEL 8
|
||||
|
||||
Message-id: <1524063895-23086-1-git-send-email-cdupuis@redhat.com>
|
||||
Patchwork-id: 209742
|
||||
O-Subject: [RHEL 8 e-stor PATCH] qla4xxx: Remove depricated PCI IDs from RHEL 8.
|
||||
Bugzilla: 1518874
|
||||
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
|
||||
Bugzilla: 1518874
|
||||
|
||||
RHEL 8 specific
|
||||
|
||||
Brew build: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID822250
|
||||
|
||||
Three PCI device IDs are marked as deprecated in RHEL 7:
|
||||
|
||||
PCI_DEVICE_ID_QLOGIC_ISP8022
|
||||
PCI_DEVICE_ID_QLOGIC_ISP8324
|
||||
PCI_DEVICE_ID_QLOGIC_ISP8042
|
||||
|
||||
This patch removes them from the PCI table in RHEL 8 so the
|
||||
qla4xxx driver will not bind to the hardware.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
---
|
||||
drivers/scsi/qla4xxx/ql4_os.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
|
||||
index 5dc697ce8b5d..15f4bedc3a78 100644
|
||||
--- a/drivers/scsi/qla4xxx/ql4_os.c
|
||||
+++ b/drivers/scsi/qla4xxx/ql4_os.c
|
||||
@@ -9842,6 +9842,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = {
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
},
|
||||
+#ifndef CONFIG_RHEL_DIFFERENCES
|
||||
{
|
||||
.vendor = PCI_VENDOR_ID_QLOGIC,
|
||||
.device = PCI_DEVICE_ID_QLOGIC_ISP8022,
|
||||
@@ -9860,6 +9861,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = {
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
},
|
||||
+#endif
|
||||
{0, 0},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, qla4xxx_pci_tbl);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Prarit Bhargava <prarit@redhat.com>
|
||||
Date: Mon, 13 Apr 2020 10:00:48 -0400
|
||||
Subject: [PATCH] redhat: Replace hardware.redhat.com link in Unsupported
|
||||
message
|
||||
|
||||
Resending ... did not get any reviews.
|
||||
|
||||
P.
|
||||
|
||||
---8<---
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1810301
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=27902812
|
||||
Local Tree: git://git.engineering.redhat.com/users/prarit/rhel8 1810301
|
||||
|
||||
Upstream Status: RHEL only
|
||||
|
||||
For almost a decade, RHEL kernels have output the message
|
||||
|
||||
"this hardware has not undergone testing by Red Hat and might not be
|
||||
certified. Please consult https://hardware.redhat.com for certified
|
||||
hardware."
|
||||
|
||||
for unsupported hardware. This link should be now be updated to the
|
||||
new catalog.redhat.com location. The old hardware.redhat.com is now
|
||||
redirecting to catalog.redhat.com for older releases.
|
||||
|
||||
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
|
||||
Cc: David Arcari <darcari@redhat.com>
|
||||
---
|
||||
kernel/rh_taint.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel/rh_taint.c b/kernel/rh_taint.c
|
||||
index 8d1641710ed7..4050b6dead75 100644
|
||||
--- a/kernel/rh_taint.c
|
||||
+++ b/kernel/rh_taint.c
|
||||
@@ -24,7 +24,7 @@
|
||||
void mark_hardware_unsupported(const char *msg)
|
||||
{
|
||||
/* Print one single message */
|
||||
- pr_crit("Warning: %s - this hardware has not undergone testing by Red Hat and might not be certified. Please consult https://hardware.redhat.com for certified hardware.\n", msg);
|
||||
+ pr_crit("Warning: %s - this hardware has not undergone testing by Red Hat and might not be certified. Please consult https://catalog.redhat.com for certified hardware.\n", msg);
|
||||
}
|
||||
EXPORT_SYMBOL(mark_hardware_unsupported);
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,201 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Prarit Bhargava <prarit@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 11:52:16 +0100
|
||||
Subject: [PATCH] redhat: rh_kabi: Add macros to size and extend structs
|
||||
|
||||
RH-Acked-by: Ivan Vecera <ivecera@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
Upstream: RHEL-only
|
||||
|
||||
As noted in the reviews, there are some areas of future work:
|
||||
|
||||
1) A further restriction on the access of the extended struct fields
|
||||
would be to require the addition of an accessor function.
|
||||
2) Additional macros to use RH_KABI_EXTEND fields.
|
||||
3) Additional macros to mark extended struts' field for internal kernel
|
||||
versus module use.
|
||||
|
||||
The RHEL7 code contains macros to extend kernel structs. For example, the
|
||||
RH_KABI_EXTEND() can be used to extend a struct when used appropriately.
|
||||
This macro (and others similar to it) has a significant shortcoming as it
|
||||
cannot be used in the case where a struct is known to allocate the struct
|
||||
within a 3rd party module. For example, in RHELX.0, suppose there exists
|
||||
a struct,
|
||||
|
||||
struct in_kernel {
|
||||
int foo0;
|
||||
};
|
||||
|
||||
and an exported function,
|
||||
|
||||
void in_kernel_set_foo(struct in_kernel *ink)
|
||||
{
|
||||
...
|
||||
ink->foo0 = 0xBA5EBA11;
|
||||
...
|
||||
}
|
||||
|
||||
Let's also suppose a struct in_kernel is statically defined within a 3rd
|
||||
party module, or dynamically allocated as
|
||||
|
||||
struct in_kernel *3rd_party_ink;
|
||||
...
|
||||
ink = kmalloc(sizeof(*3rd_party_ink), GFP_KERNEL);
|
||||
...
|
||||
|
||||
In RHELX.1, suppose the struct is expanded by
|
||||
|
||||
struct in_kernel {
|
||||
int foo0;
|
||||
RH_KABI_EXTEND(foo1)
|
||||
};
|
||||
|
||||
and the exported function is modified as
|
||||
|
||||
void in_kernel_set_foo(struct in_kernel *ink)
|
||||
{
|
||||
...
|
||||
ink->foo0 = 0xBA5EBA11;
|
||||
ink->foo1 = 0xBA5EBA11;
|
||||
...
|
||||
}
|
||||
|
||||
The 3rd party module, compiled against RHELX.0, will not have allocated
|
||||
memory for foo1, and in_kernel_set_foo() will reference garbage in memory.
|
||||
|
||||
To fix this problem, Jiri Benc came up with an great solution that should
|
||||
be unified for all future RHELX.0 expansions of structs. RHEL7 commit
|
||||
e33a3c136b56 ("[net] introduce net_device_ops_extended") adds a size
|
||||
parameter to net_device_ops that can be queried to validate memory
|
||||
accesses. In the patch, net_device_ops is expanded by embedding a
|
||||
net_device_ops_extended struct and addig a size parameter. The size
|
||||
parameter is used to compare the offset of a parameter in the
|
||||
net_device_ops_extended struct to the size of the struct at compile time,
|
||||
and if valid, the memory access can be programmatically allowed to occur.
|
||||
|
||||
I have taken his idea and created several new standard macros that allow
|
||||
structs to be expanded by embedding a new struct or by adding a pointer
|
||||
to a new struct.
|
||||
|
||||
There are, however, some rules that must be followed when using these
|
||||
new macros:
|
||||
|
||||
1. The default name of the extended struct is ##name##_rh. For example,
|
||||
pci_dev_rh, device_rh, net_device_ops_rh, etc.
|
||||
2. _rh structs cannot be shrunk in size as such changes would break the
|
||||
size & offset comparison.
|
||||
3. The size field _must_ be set at the spot of allocation for use. Use of the
|
||||
_rh fields without setting the size field via RH_KABI_SET_SIZE|_PTR() is
|
||||
invalid in the kernel or in a 3rd party module.
|
||||
4. These new macros do not preclude expansions like
|
||||
|
||||
struct in_kernel_rh {
|
||||
};
|
||||
|
||||
struct in_kernel {
|
||||
...
|
||||
RH_KABI_EXTEND(void *ptr1)
|
||||
RH_KABI_EXTEND(void *ptr2)
|
||||
RH_KABI_EXTEND(void *ptr3)
|
||||
RH_KABI_EXTEND(void *ptr4)
|
||||
RH_KABI_SIZE_AND_EXTEND_PTR(in_kernel)
|
||||
};
|
||||
|
||||
These macros are generally intended for pre-KABI freeze use, however,
|
||||
there may be cases where these macros can be used post-KABI freeze.
|
||||
Due to the design of RH_KABI_EXTEND() which embeds __GENKSYMS__ care must
|
||||
be taken when using RH_KABI_SIZE_AND_EXTEND|_PTR() post-KABI freeze to
|
||||
ensure that structs are not embedded within another struct, verifying
|
||||
offsets, etc.
|
||||
|
||||
Add RH_KABI_SIZE_AND_EXTEND(), RH_KABI_SIZE_AND_EXTEND_PTR(), and
|
||||
other macros that allow for safe expansion of structs.
|
||||
|
||||
v2: Cleanup comments.
|
||||
v3: Cleanup comments.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 64 +++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 64 insertions(+)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index 87f2bd530df7..d551df994583 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -186,4 +186,68 @@
|
||||
|
||||
#define RH_KABI_EXCLUDE(_elem) _RH_KABI_EXCLUDE(_elem);
|
||||
|
||||
+/*
|
||||
+ * RHEL macros to extend structs.
|
||||
+ *
|
||||
+ * base struct: The struct being extended. For example, pci_dev.
|
||||
+ * extended struct: The Red Hat struct being added to the base struct.
|
||||
+ * For example, pci_dev_rh.
|
||||
+ *
|
||||
+ * These macros should be used to extend structs before KABI freeze.
|
||||
+ * They can be used post-KABI freeze in the limited case of the base
|
||||
+ * struct not being embedded in another struct.
|
||||
+ *
|
||||
+ * Extended structs cannot be shrunk in size as changes will break
|
||||
+ * the size & offset comparison.
|
||||
+ *
|
||||
+ * Extended struct elements are not guaranteed for access by modules unless
|
||||
+ * explicitly commented as such in the declaration of the extended struct or
|
||||
+ * the element in the extended struct.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_SIZE_AND_EXTEND|_PTR() extends a struct by embedding or adding
|
||||
+ * a pointer in a base struct. The name of the new struct is the name
|
||||
+ * of the base struct appended with _rh.
|
||||
+ */
|
||||
+#define RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \
|
||||
+ size_t _struct##_size_rh; \
|
||||
+ RH_KABI_EXCLUDE(struct _struct##_rh *_struct##_rh)
|
||||
+
|
||||
+#define RH_KABI_SIZE_AND_EXTEND(_struct) \
|
||||
+ size_t _struct##_size_rh; \
|
||||
+ RH_KABI_EXCLUDE(struct _struct##_rh _struct##_rh)
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_SET_SIZE calculates and sets the size of the extended struct and
|
||||
+ * stores it in the size_rh field for structs that are dynamically allocated.
|
||||
+ * This macro MUST be called when expanding a base struct with
|
||||
+ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the allocation site
|
||||
+ * regardless of being allocated in the kernel or a module.
|
||||
+ */
|
||||
+#define RH_KABI_SET_SIZE(_name, _struct) ({ \
|
||||
+ _name._struct##_size_rh = sizeof(struct _struct##_rh); \
|
||||
+})
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_INIT_SIZE calculates and sets the size of the extended struct and
|
||||
+ * stores it in the size_rh field for structs that are statically allocated.
|
||||
+ * This macro MUST be called when expanding a base struct with
|
||||
+ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the declaration site
|
||||
+ * regardless of being allocated in the kernel or a module.
|
||||
+ */
|
||||
+#define RH_KABI_INIT_SIZE(_struct) \
|
||||
+ ._struct##_size_rh = sizeof(struct _struct##_rh),
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_CHECK_EXT verifies allocated memory exists. This MUST be called to
|
||||
+ * verify that memory in the _rh struct is valid, and can be called
|
||||
+ * regardless if RH_KABI_SIZE_AND_EXTEND or RH_KABI_SIZE_AND_EXTEND_PTR is
|
||||
+ * used.
|
||||
+ */
|
||||
+#define RH_KABI_CHECK_EXT(_ptr, _struct, _field) ({ \
|
||||
+ size_t __off = offsetof(struct _struct##_rh, _field); \
|
||||
+ _ptr->_struct##_size_rh > __off ? true : false; \
|
||||
+})
|
||||
+
|
||||
#endif /* _LINUX_RH_KABI_H */
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,47 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Camuso <tcamuso@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 11:52:17 +0100
|
||||
Subject: [PATCH] redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference
|
||||
operator
|
||||
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
|
||||
Since this macro is intended to record the sizeof extension structs that
|
||||
are dynamically allocated, using the structure dereference operator '->'
|
||||
is a better choice, else the macro would have to be invoked with the
|
||||
_name argument dereferenced as (*_name).
|
||||
|
||||
Also added a short note explaining that, unlike the other RH_KABI
|
||||
macros that are invoked from within structs, this macro is invoked
|
||||
outside a struct and therefore needs a semicolon termination.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Tony Camuso <tcamuso@redhat.com>
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index d551df994583..9a4fea93ad99 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -224,9 +224,11 @@
|
||||
* This macro MUST be called when expanding a base struct with
|
||||
* RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the allocation site
|
||||
* regardless of being allocated in the kernel or a module.
|
||||
+ * Note: since this macro is intended to be invoked outside of a struct,
|
||||
+ * a semicolon is necessary at the end of the line where it is invoked.
|
||||
*/
|
||||
#define RH_KABI_SET_SIZE(_name, _struct) ({ \
|
||||
- _name._struct##_size_rh = sizeof(struct _struct##_rh); \
|
||||
+ _name->_struct##_size_rh = sizeof(struct _struct##_rh); \
|
||||
})
|
||||
|
||||
/*
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Don Dutile <ddutile@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 11:52:18 +0100
|
||||
Subject: [PATCH] redhat: rh_kabi: Indirect EXTEND macros so nesting of other
|
||||
macros will resolve.
|
||||
|
||||
RH-Acked-by: Neil Horman <nhorman@redhat.com>
|
||||
RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
|
||||
Upstream status: RHEL only
|
||||
|
||||
rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Suggested-by: Jiri Benc <jbenc@redhat.com>
|
||||
Signed-off-by: Donald Dutile <ddutile@redhat.com>
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index 9a4fea93ad99..cdc636d3013d 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -210,13 +210,17 @@
|
||||
* a pointer in a base struct. The name of the new struct is the name
|
||||
* of the base struct appended with _rh.
|
||||
*/
|
||||
-#define RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \
|
||||
+#define _RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \
|
||||
size_t _struct##_size_rh; \
|
||||
RH_KABI_EXCLUDE(struct _struct##_rh *_struct##_rh)
|
||||
+#define RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \
|
||||
+ _RH_KABI_SIZE_AND_EXTEND_PTR(_struct)
|
||||
|
||||
-#define RH_KABI_SIZE_AND_EXTEND(_struct) \
|
||||
+#define _RH_KABI_SIZE_AND_EXTEND(_struct) \
|
||||
size_t _struct##_size_rh; \
|
||||
RH_KABI_EXCLUDE(struct _struct##_rh _struct##_rh)
|
||||
+#define RH_KABI_SIZE_AND_EXTEND(_struct) \
|
||||
+ _RH_KABI_SIZE_AND_EXTEND(_struct)
|
||||
|
||||
/*
|
||||
* RH_KABI_SET_SIZE calculates and sets the size of the extended struct and
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,67 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Benc <jbenc@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 11:52:20 +0100
|
||||
Subject: [PATCH] redhat: rh_kabi add a comment with warning about
|
||||
RH_KABI_EXCLUDE usage
|
||||
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
|
||||
Upstream status: RHEL only
|
||||
|
||||
We've seen attempts of incorrect RH_KABI_EXCLUDE usage. The macro is
|
||||
dangerous and any structure marked by it becomes fragile. It completely
|
||||
mutes the kABI checker and a future attempt to whitelist anything using
|
||||
a structure annotated by RH_KABI_EXCLUDE will generate easily broken, error
|
||||
prone code. Also, it bypasses module loading checks for the structure and
|
||||
can lead to kernel crashes triggered by 3rd party modules unless carefully
|
||||
prevented by RH_KABI_FORCE_CHANGE.
|
||||
|
||||
As such, it should not be used routinely. The only valid usage is a code
|
||||
heavily in flux upstream that is going to be refactored and turned upside
|
||||
down, which is indirectly whitelisted and which we expect to need
|
||||
backported.
|
||||
|
||||
Any usage of this macro requires deep understanding of how kABI works.
|
||||
|
||||
Add a big fat warning to stop the misuse.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index 4debb7aaad48..b90601e8a657 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -2,7 +2,7 @@
|
||||
* rh_kabi.h - Red Hat kABI abstraction header
|
||||
*
|
||||
* Copyright (c) 2014 Don Zickus
|
||||
- * Copyright (c) 2015-2017 Jiri Benc
|
||||
+ * Copyright (c) 2015-2018 Jiri Benc
|
||||
* Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa
|
||||
* Copyright (c) 2016-2018 Prarit Bhargava
|
||||
* Copyright (c) 2017 Paolo Abeni, Larry Woodman
|
||||
@@ -93,7 +93,16 @@
|
||||
* corrupt memory. Instead, by changing the symbol checksum, such modules
|
||||
* won't be loaded by the kernel. This macro should only be used as a
|
||||
* last resort when all other KABI workarounds have failed.
|
||||
+ *
|
||||
* RH_KABI_EXCLUDE
|
||||
+ * !!! WARNING: DANGEROUS, DO NOT USE unless you are aware of all the !!!
|
||||
+ * !!! implications. This should be used ONLY EXCEPTIONALLY and only !!!
|
||||
+ * !!! under specific circumstances. Very likely, this macro does not !!!
|
||||
+ * !!! do what you expect it to do. Note that any usage of this macro !!!
|
||||
+ * !!! MUST be paired with a RH_KABI_FORCE_CHANGE annotation of !!!
|
||||
+ * !!! a suitable symbol (or an equivalent safeguard) and the commit !!!
|
||||
+ * !!! log MUST explain why the chosen solution is appropriate. !!!
|
||||
+ *
|
||||
* Exclude the element from checksum generation. Any such element is
|
||||
* considered not to be part of the kABI whitelist and may be changed at
|
||||
* will. Note however that it's the responsibility of the developer
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,65 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Benc <jbenc@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 11:52:21 +0100
|
||||
Subject: [PATCH] redhat: rh_kabi: deduplication friendly structs
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Acked-by: Bruno Meneguele <bmeneg@redhat.com>
|
||||
RH-Acked-by: Jesper Brouer <brouer@redhat.com>
|
||||
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
|
||||
RH-Acked-by: Jiri Olsa <jolsa@redhat.com>
|
||||
RH-Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
|
||||
|
||||
Upstream status: RHEL only
|
||||
|
||||
We don't really need the field names to be globally unique, it is enough
|
||||
when they are unique in the given struct. Since structs do not generally
|
||||
span mutliple files, using the line number is enough to ensure an unique
|
||||
identifier. It means that we can't use two RH_KABI_RENAME macros on the same
|
||||
line but that's not happening anyway.
|
||||
|
||||
This allows pahole to deduplicate the type info of structs using kABI
|
||||
macros, lowering the size of vmlinuz from 26M to 8.5M.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index b90601e8a657..ea9c136bf884 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -163,6 +163,8 @@
|
||||
# define __RH_KABI_CHECK_SIZE(_item, _size)
|
||||
#endif
|
||||
|
||||
+#define RH_KABI_UNIQUE_ID __PASTE(rh_kabi_hidden_, __LINE__)
|
||||
+
|
||||
# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig
|
||||
# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \
|
||||
_type (* rh_reserved_##_orig)(_args)
|
||||
@@ -171,7 +173,7 @@
|
||||
_new; \
|
||||
struct { \
|
||||
_orig; \
|
||||
- } __UNIQUE_ID(rh_kabi_hide); \
|
||||
+ } RH_KABI_UNIQUE_ID; \
|
||||
__RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \
|
||||
}
|
||||
# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new
|
||||
@@ -218,7 +220,7 @@
|
||||
#define RH_KABI_EXTEND_WITH_SIZE(_new, _size) \
|
||||
RH_KABI_EXTEND(union { \
|
||||
_new; \
|
||||
- unsigned long __UNIQUE_ID(rh_kabi_reserved)[_size]; \
|
||||
+ unsigned long RH_KABI_UNIQUE_ID[_size]; \
|
||||
__RH_KABI_CHECK_SIZE(_new, 8 * (_size)); \
|
||||
})
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,101 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Benc <jbenc@redhat.com>
|
||||
Date: Wed, 19 Feb 2020 11:52:19 +0100
|
||||
Subject: [PATCH] redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
|
||||
RH-Acked-by: Hangbin Liu <haliu@redhat.com>
|
||||
|
||||
Upstream status: RHEL only
|
||||
|
||||
This allows addition of a struct into struct while reserving extra space.
|
||||
See the documentation in rh_kabi.h for details.
|
||||
|
||||
The check for size is automatically disabled in -debug kernels that have
|
||||
many fields larger than the production kernels (mutexes etc.) and that are
|
||||
not under kABI guarantee.
|
||||
|
||||
I'm also moving a misplaced comment for RH_KABI_FILL_HOLE.
|
||||
|
||||
(Pointed out by Sabrina:) We need to force align the added field to 8 byte
|
||||
offset. Otherwise, if the required alignment of the added field changed
|
||||
later (e.g. it was a structure with only a single field that was changed
|
||||
from int to char) and the previous field was smaller than long, it could
|
||||
lead to the whole union shifting position and offsets of the following
|
||||
fields could change. It's also safer to align the size, too.
|
||||
|
||||
Let the 'size' parameter specify number of longs to be added and not number
|
||||
of bytes. Note we assume a 64 bit architecture, which is the case for RHEL.
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 29 ++++++++++++++++++++++++++++-
|
||||
1 file changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index cdc636d3013d..4debb7aaad48 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -45,11 +45,24 @@
|
||||
* RH_KABI_EXTEND
|
||||
* Simple macro for adding a new element to a struct.
|
||||
*
|
||||
- * Warning: only use if a hole exists for _all_ arches. Use pahole to verify.
|
||||
+ * RH_KABI_EXTEND_WITH_SIZE
|
||||
+ * Adds a new element (usually a struct) to a struct and reserves extra
|
||||
+ * space for the new element. The provided 'size' is the total space to
|
||||
+ * be added in longs (i.e. it's 8 * 'size' bytes), including the size of
|
||||
+ * the added element. It is automatically checked that the new element
|
||||
+ * does not overflow the reserved space, now nor in the future. However,
|
||||
+ * no attempt is done to check the content of the added element (struct)
|
||||
+ * for kABI conformance - kABI checking inside the added element is
|
||||
+ * effectively switched off.
|
||||
+ * For any struct being added by RH_KABI_EXTEND_WITH_SIZE, it is
|
||||
+ * recommended its content to be documented as not covered by kABI
|
||||
+ * guarantee.
|
||||
*
|
||||
* RH_KABI_FILL_HOLE
|
||||
* Simple macro for filling a hole in a struct.
|
||||
*
|
||||
+ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify.
|
||||
+ *
|
||||
* RH_KABI_RENAME
|
||||
* Simple macro for renaming an element without changing its type. This
|
||||
* macro can be used in bitfields, for example.
|
||||
@@ -133,8 +146,12 @@
|
||||
_Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \
|
||||
__FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \
|
||||
}
|
||||
+# define __RH_KABI_CHECK_SIZE(_item, _size) \
|
||||
+ _Static_assert(sizeof(struct{_item;}) <= _size, \
|
||||
+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_item) " is larger than the reserved size (" __stringify(_size) " bytes)" RH_KABI_ALIGN_WARNING)
|
||||
#else
|
||||
# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new)
|
||||
+# define __RH_KABI_CHECK_SIZE(_item, _size)
|
||||
#endif
|
||||
|
||||
# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig
|
||||
@@ -186,6 +203,16 @@
|
||||
|
||||
#define RH_KABI_EXCLUDE(_elem) _RH_KABI_EXCLUDE(_elem);
|
||||
|
||||
+/*
|
||||
+ * Extending a struct while reserving extra space.
|
||||
+ */
|
||||
+#define RH_KABI_EXTEND_WITH_SIZE(_new, _size) \
|
||||
+ RH_KABI_EXTEND(union { \
|
||||
+ _new; \
|
||||
+ unsigned long __UNIQUE_ID(rh_kabi_reserved)[_size]; \
|
||||
+ __RH_KABI_CHECK_SIZE(_new, 8 * (_size)); \
|
||||
+ })
|
||||
+
|
||||
/*
|
||||
* RHEL macros to extend structs.
|
||||
*
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,104 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Racek <jracek@redhat.com>
|
||||
Date: Thu, 22 Nov 2018 12:59:45 +0100
|
||||
Subject: [PATCH] rh_kabi: introduce RH_KABI_EXCLUDE
|
||||
|
||||
Message-id: <1542891606-8048-24-git-send-email-jracek@redhat.com>
|
||||
Patchwork-id: 233503
|
||||
O-Subject: [ARK PATCH 23/44] [kernel] rh_kabi: introduce RH_KABI_EXCLUDE
|
||||
Bugzilla: 1652256
|
||||
RH-Acked-by: Don Zickus <dzickus@redhat.com>
|
||||
RH-Acked-by: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
From: Jiri Benc <jbenc@redhat.com>
|
||||
|
||||
Bugzilla: 1652256
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=19244562
|
||||
|
||||
rhel8 commit 1c588b1bbe6ea3e9e1701ccf10e22f73f687ad02
|
||||
Author: Jiri Benc <jbenc@redhat.com>
|
||||
Date: Wed Nov 21 17:15:39 2018 +0100
|
||||
|
||||
[kernel] rh_kabi: introduce RH_KABI_EXCLUDE
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1568551
|
||||
|
||||
Add a way to exclude certain fields of a structure that would be otherwise
|
||||
kABI whitelisted. The new RH_KABI_EXCLUDE macro serves two purposes:
|
||||
|
||||
1. Not adding the excluded fields to symbol checksums, making their later
|
||||
changes easier.
|
||||
|
||||
2. Document that the given fields are not considered to be kABI whitelisted
|
||||
by Red Hat.
|
||||
|
||||
Note that:
|
||||
|
||||
- This needs to be done _before_ the actual structure gets whitelisted.
|
||||
|
||||
- It still allows later conversion of the excluded fields to whitelist
|
||||
covered fields by simply changing RH_KABI_EXCLUDE to RH_KABI_EXTEND.
|
||||
|
||||
- The excluded fields can be modified at will but extra care needs to be
|
||||
taken to not cause problems with 3rd party drivers using the fields. See
|
||||
the comment inside the patch for details.
|
||||
|
||||
Signed-off-by: Jiri Benc <jbenc@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jakub Racek <jracek@redhat.com>
|
||||
---
|
||||
include/linux/rh_kabi.h | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
index e0d3353802bb..87f2bd530df7 100644
|
||||
--- a/include/linux/rh_kabi.h
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -80,6 +80,18 @@
|
||||
* corrupt memory. Instead, by changing the symbol checksum, such modules
|
||||
* won't be loaded by the kernel. This macro should only be used as a
|
||||
* last resort when all other KABI workarounds have failed.
|
||||
+ * RH_KABI_EXCLUDE
|
||||
+ * Exclude the element from checksum generation. Any such element is
|
||||
+ * considered not to be part of the kABI whitelist and may be changed at
|
||||
+ * will. Note however that it's the responsibility of the developer
|
||||
+ * changing the element to ensure 3rd party drivers using this element
|
||||
+ * won't panic, for example by not allowing them to be loaded. That can
|
||||
+ * be achieved by changing another, non-whitelisted symbol they use,
|
||||
+ * either by nature of the change or by using RH_KABI_FORCE_CHANGE.
|
||||
+ *
|
||||
+ * Also note that any change to the element must preserve its size. Change
|
||||
+ * of the size is not allowed and would constitute a silent kABI breakage.
|
||||
+ * Beware that the RH_KABI_EXCLUDE macro does not do any size checks.
|
||||
*
|
||||
* NOTE
|
||||
* Don't use ';' after these macros as it messes up the kABI checker by
|
||||
@@ -100,6 +112,7 @@
|
||||
# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args)
|
||||
# define _RH_KABI_REPLACE(_orig, _new) _orig
|
||||
# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig
|
||||
+# define _RH_KABI_EXCLUDE(_elem)
|
||||
|
||||
#else
|
||||
|
||||
@@ -137,6 +150,8 @@
|
||||
}
|
||||
# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new
|
||||
|
||||
+# define _RH_KABI_EXCLUDE(_elem) _elem
|
||||
+
|
||||
#endif /* __GENKSYMS__ */
|
||||
|
||||
/* semicolon added wrappers for the RH_KABI_REPLACE macros */
|
||||
@@ -169,4 +184,6 @@
|
||||
*/
|
||||
# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n
|
||||
|
||||
+#define RH_KABI_EXCLUDE(_elem) _RH_KABI_EXCLUDE(_elem);
|
||||
+
|
||||
#endif /* _LINUX_RH_KABI_H */
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,54 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Cline <jcline@redhat.com>
|
||||
Date: Tue, 23 Jul 2019 15:26:09 +0000
|
||||
Subject: [PATCH] tags.sh: Ignore redhat/rpm
|
||||
|
||||
Rebased for v5.3-rc1. Commit 95fd3f87bfbe ("kbuild: add a flag to force
|
||||
absolute path for srctree") changed the context.
|
||||
|
||||
Message-id: <20180529180112.28376-1-prarit@redhat.com>
|
||||
Patchwork-id: 8101
|
||||
O-Subject: [kernel team] [RHEL8.0 BZ 1582586] scripts/tags.sh: Ignore redhat/rpm
|
||||
Bugzilla: 1582586
|
||||
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
||||
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
||||
RH-Acked-by: Neil Horman <nhorman@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/1582586
|
||||
Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=16502319
|
||||
|
||||
RHEL_only.
|
||||
|
||||
If 'make cscope' is run on a tree which has had 'make rh-rpm',
|
||||
'make rh-cross-*', etc., on it, the tags information contains entries
|
||||
from the redhat/rpm/ directories.
|
||||
|
||||
Ignore the tags search in redhat/rpm.
|
||||
|
||||
Backport of RHEL7 464ad7779507 ("[scripts] tags.sh: ignore redhat/rpm").
|
||||
|
||||
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
|
||||
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
||||
|
||||
Upstream Status: RHEL only
|
||||
Signed-off-by: Jeremy Cline <jcline@redhat.com>
|
||||
---
|
||||
scripts/tags.sh | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/scripts/tags.sh b/scripts/tags.sh
|
||||
index 4e18ae5282a6..805341c0aaf3 100755
|
||||
--- a/scripts/tags.sh
|
||||
+++ b/scripts/tags.sh
|
||||
@@ -16,6 +16,8 @@ fi
|
||||
ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )"
|
||||
# tags and cscope files should also ignore MODVERSION *.mod.c files
|
||||
ignore="$ignore ( -name *.mod.c ) -prune -o"
|
||||
+# RHEL tags and cscope should also ignore redhat/rpm
|
||||
+ignore="$ignore ( -path redhat/rpm ) -prune -o"
|
||||
|
||||
# Use make KBUILD_ABS_SRCTREE=1 {tags|cscope}
|
||||
# to force full paths for a non-O= build
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,61 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Don Zickus <dzickus@redhat.com>
|
||||
Date: Thu, 14 May 2020 10:30:51 -0400
|
||||
Subject: [PATCH] x86: Fix compile issues with rh_check_supported()
|
||||
|
||||
Upstream status: RHEL only
|
||||
|
||||
The function rh_check_supported is a RHEL function to limit the
|
||||
platforms RHEL does not want to support.
|
||||
|
||||
To avoid imposing this requirement on Fedora, the function was
|
||||
wrapped with CONFIG_RHEL_DIFFERENCES so Fedora can disable this.
|
||||
|
||||
However, this has a few compile warnings that need to be cleaned up
|
||||
when disabled.
|
||||
|
||||
Move CONFIG_RHEL_DIFFERENCES to include the functions themselves
|
||||
instead of the call. As the unused functions created warnings.
|
||||
|
||||
V2: modified stub definition
|
||||
|
||||
Signed-off-by: Don Zickus <dzickus@redhat.com>
|
||||
---
|
||||
arch/x86/kernel/setup.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index e677bb144835..6d31895c8e92 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -756,6 +756,7 @@ static void __init trim_low_memory_range(void)
|
||||
memblock_reserve(0, ALIGN(reserve_low, PAGE_SIZE));
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
static bool valid_amd_processor(__u8 family, const char *model_id)
|
||||
{
|
||||
bool valid;
|
||||
@@ -880,6 +881,9 @@ static void rh_check_supported(void)
|
||||
if (acpi_disabled && !guest)
|
||||
pr_crit("ACPI has been disabled or is not available on this hardware. This may result in a single cpu boot, incorrect PCI IRQ routing, or boot failure.\n");
|
||||
}
|
||||
+#else
|
||||
+#define rh_check_supported()
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Dump out kernel offset information on panic.
|
||||
@@ -1372,9 +1376,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
efi_apply_memmap_quirks();
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
rh_check_supported();
|
||||
-#endif
|
||||
|
||||
unwind_init();
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
101
0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch
Normal file
101
0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From 6acf1ba7596a051d6ff4092d22bf9c4ce210d9f5 Mon Sep 17 00:00:00 2001
|
||||
From: Vidya Sagar <vidyas@nvidia.com>
|
||||
Date: Sat, 11 Jan 2020 00:44:59 +0530
|
||||
Subject: [PATCH 2/2] arm64: tegra: Re-order PCIe aperture mappings to support
|
||||
ACPI boot
|
||||
|
||||
Re-order Tegra194's PCIe aperture mappings to have IO window moved to
|
||||
64-bit aperture and have the entire 32-bit aperture used for accessing
|
||||
the configuration space. This makes it to use the entire 32MB of the 32-bit
|
||||
aperture for ECAM purpose while booting through ACPI.
|
||||
|
||||
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
|
||||
---
|
||||
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 36 ++++++++++++------------
|
||||
1 file changed, 18 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
|
||||
index 4bc187a4eacdb..2b378fa06d19e 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
|
||||
@@ -1404,9 +1404,9 @@ pcie@14100000 {
|
||||
nvidia,aspm-l0s-entrance-latency-us = <3>;
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
- ranges = <0x81000000 0x0 0x30100000 0x0 0x30100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
||||
- 0xc3000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */
|
||||
- 0x82000000 0x0 0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
|
||||
+ ranges = <0xc3000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */
|
||||
+ 0x82000000 0x00 0x40000000 0x12 0x30000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */
|
||||
+ 0x81000000 0x00 0x00000000 0x12 0x3fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
|
||||
};
|
||||
|
||||
pcie@14120000 {
|
||||
@@ -1449,9 +1449,9 @@ pcie@14120000 {
|
||||
nvidia,aspm-l0s-entrance-latency-us = <3>;
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
- ranges = <0x81000000 0x0 0x32100000 0x0 0x32100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
||||
- 0xc3000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */
|
||||
- 0x82000000 0x0 0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
|
||||
+ ranges = <0xc3000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */
|
||||
+ 0x82000000 0x00 0x40000000 0x12 0x70000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */
|
||||
+ 0x81000000 0x00 0x00000000 0x12 0x7fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
|
||||
};
|
||||
|
||||
pcie@14140000 {
|
||||
@@ -1494,9 +1494,9 @@ pcie@14140000 {
|
||||
nvidia,aspm-l0s-entrance-latency-us = <3>;
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
- ranges = <0x81000000 0x0 0x34100000 0x0 0x34100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
||||
- 0xc3000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */
|
||||
- 0x82000000 0x0 0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
|
||||
+ ranges = <0xc3000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */
|
||||
+ 0x82000000 0x00 0x40000000 0x12 0xb0000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */
|
||||
+ 0x81000000 0x00 0x00000000 0x12 0xbfff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
|
||||
};
|
||||
|
||||
pcie@14160000 {
|
||||
@@ -1539,9 +1539,9 @@ pcie@14160000 {
|
||||
nvidia,aspm-l0s-entrance-latency-us = <3>;
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
- ranges = <0x81000000 0x0 0x36100000 0x0 0x36100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
||||
- 0xc3000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
|
||||
- 0x82000000 0x0 0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
|
||||
+ ranges = <0xc3000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
|
||||
+ 0x82000000 0x00 0x40000000 0x17 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */
|
||||
+ 0x81000000 0x00 0x00000000 0x17 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
|
||||
};
|
||||
|
||||
pcie@14180000 {
|
||||
@@ -1584,9 +1584,9 @@ pcie@14180000 {
|
||||
nvidia,aspm-l0s-entrance-latency-us = <3>;
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
- ranges = <0x81000000 0x0 0x38100000 0x0 0x38100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
||||
- 0xc3000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
|
||||
- 0x82000000 0x0 0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
|
||||
+ ranges = <0xc3000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
|
||||
+ 0x82000000 0x00 0x40000000 0x1b 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */
|
||||
+ 0x81000000 0x00 0x00000000 0x1b 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
|
||||
};
|
||||
|
||||
pcie@141a0000 {
|
||||
@@ -1633,9 +1633,9 @@ pcie@141a0000 {
|
||||
nvidia,aspm-l0s-entrance-latency-us = <3>;
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
- ranges = <0x81000000 0x0 0x3a100000 0x0 0x3a100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
||||
- 0xc3000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
|
||||
- 0x82000000 0x0 0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
|
||||
+ ranges = <0xc3000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
|
||||
+ 0x82000000 0x00 0x40000000 0x1f 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */
|
||||
+ 0x81000000 0x00 0x00000000 0x1f 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
|
||||
};
|
||||
|
||||
pcie_ep@14160000 {
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,48 @@
|
||||
From a58d581e212b3acbc65e56384e6bc60bb109f29a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Fri, 7 Aug 2020 15:51:42 +0100
|
||||
Subject: [PATCH] arm64: tegra: Use valid PWM period for VDD_GPU on Tegra210
|
||||
|
||||
From: Thierry Reding <treding@nvidia.com>
|
||||
|
||||
The PWM on Tegra210 can run at a maximum frequency of 48 MHz and cannot
|
||||
reach the minimum period is 5334 ns. The currently configured period of
|
||||
4880 ns is not within the valid range, so set it to 8000 ns. This value
|
||||
was taken from the downstream DTS files and seems to work fine.
|
||||
|
||||
Signed-off-by: Thierry Reding <treding@nvidia.com>
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 2 +-
|
||||
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
|
||||
index cc6ed45a2b485..e2e984a75f601 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
|
||||
@@ -346,7 +346,7 @@ regulators {
|
||||
vdd_gpu: regulator@100 {
|
||||
compatible = "pwm-regulator";
|
||||
reg = <100>;
|
||||
- pwms = <&pwm 1 4880>;
|
||||
+ pwms = <&pwm 1 8000>;
|
||||
regulator-name = "VDD_GPU";
|
||||
regulator-min-microvolt = <710000>;
|
||||
regulator-max-microvolt = <1320000>;
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
|
||||
index 9bc52fdb393c8..ebaac57853138 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
|
||||
@@ -789,7 +789,7 @@ vdd_cpu: regulator@5 {
|
||||
vdd_gpu: regulator@6 {
|
||||
compatible = "pwm-regulator";
|
||||
reg = <6>;
|
||||
- pwms = <&pwm 1 4880>;
|
||||
+ pwms = <&pwm 1 8000>;
|
||||
regulator-name = "VDD_GPU";
|
||||
regulator-min-microvolt = <710000>;
|
||||
regulator-max-microvolt = <1320000>;
|
||||
--
|
||||
2.26.2
|
||||
|
Loading…
Reference in New Issue
Block a user