|
|
1f73373 |
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
Jeremy Cline |
d1b6f8c |
From: Laura Abbott <labbott@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Date: Sun, 10 Feb 2019 01:27:54 +0000
|
|
Jeremy Cline |
d1b6f8c |
Subject: [PATCH] ipmi: do not configure ipmi for HPE m400
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1670017
|
|
Jeremy Cline |
d1b6f8c |
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=20147017
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Commit 913a89f009d9 ("ipmi: Don't initialize anything in the core until
|
|
Jeremy Cline |
d1b6f8c |
something uses it") added new locking which broke context.
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Message-id: <20180713142210.15700-1-tcamuso@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Patchwork-id: 224899
|
|
Jeremy Cline |
d1b6f8c |
O-Subject: [RHEL8 BZ 1583537 1/1] ipmi: do not configure ipmi for HPE m400
|
|
Jeremy Cline |
d1b6f8c |
Bugzilla: 1583537
|
|
Jeremy Cline |
d1b6f8c |
RH-Acked-by: Dean Nelson <dnelson@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
RH-Acked-by: Al Stone <ahs3@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
RH-Acked-by: Mark Salter <msalter@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
bugzilla:https://bugzilla.redhat.com/show_bug.cgi?id=1583537
|
|
Jeremy Cline |
d1b6f8c |
brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=17150528
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
RHEL-only
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
The ARM-based HPE m400 reports host-side ipmi as residing in intel
|
|
Jeremy Cline |
d1b6f8c |
port-io space, which does not exist in ARM processors. Therefore, when
|
|
Jeremy Cline |
d1b6f8c |
running on an m400, host-side ipmi configuration code must simply return
|
|
Jeremy Cline |
d1b6f8c |
zero without trying to configure the host-side ipmi.
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
This patch prevents panic on boot by averting attempts to configure
|
|
Jeremy Cline |
d1b6f8c |
host-side ipmi on this platform.
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Though HPE m400 is not certified with RHEL, and HPE has relegated it to
|
|
Jeremy Cline |
d1b6f8c |
EOL status, the platform is still used extensively in ARM development
|
|
Jeremy Cline |
d1b6f8c |
and test for RHEL.
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Testing:
|
|
Jeremy Cline |
d1b6f8c |
Boot without blacklisting ipmi and check to see that no ipmi modules
|
|
Jeremy Cline |
d1b6f8c |
are loaded.
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Signed-off-by: Tony Camuso <tcamuso@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
cc: Prarit Bhargava <prarit@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
cc: Brendan Conoboy <blc@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
cc: Jeff Bastian <jbastian@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
cc: Scott Herold <sherold@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
Upstream Status: RHEL only
|
|
Jeremy Cline |
d1b6f8c |
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Acked-by: Tony Camuso <tcamuso@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Acked-by: Dean Nelson <dnelson@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Acked-by: Jarod Wilson <jarod@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
Acked-by: Mark Salter <msalter@redhat.com>
|
|
Jeremy Cline |
d1b6f8c |
---
|
|
Jeremy Cline |
d1b6f8c |
drivers/char/ipmi/ipmi_dmi.c | 15 +++++++++++++++
|
|
Jeremy Cline |
d1b6f8c |
drivers/char/ipmi/ipmi_msghandler.c | 16 +++++++++++++++-
|
|
Jeremy Cline |
d1b6f8c |
2 files changed, 30 insertions(+), 1 deletion(-)
|
|
Jeremy Cline |
d1b6f8c |
|
|
Jeremy Cline |
d1b6f8c |
diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c
|
|
Jeremy Cline |
d1b6f8c |
index bbf7029e224b..cf7faa970dd6 100644
|
|
Jeremy Cline |
d1b6f8c |
--- a/drivers/char/ipmi/ipmi_dmi.c
|
|
Jeremy Cline |
d1b6f8c |
+++ b/drivers/char/ipmi/ipmi_dmi.c
|
|
Jeremy Cline |
d1b6f8c |
@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void)
|
|
Jeremy Cline |
d1b6f8c |
{
|
|
Jeremy Cline |
d1b6f8c |
const struct dmi_device *dev = NULL;
|
|
|
d176dfc |
|
|
Jeremy Cline |
d1b6f8c |
+#ifdef CONFIG_ARM64
|
|
Jeremy Cline |
d1b6f8c |
+ /* RHEL-only
|
|
Jeremy Cline |
d1b6f8c |
+ * If this is ARM-based HPE m400, return now, because that platform
|
|
Jeremy Cline |
d1b6f8c |
+ * reports the host-side ipmi address as intel port-io space, which
|
|
Jeremy Cline |
d1b6f8c |
+ * does not exist in the ARM architecture.
|
|
Jeremy Cline |
d1b6f8c |
+ */
|
|
Jeremy Cline |
d1b6f8c |
+ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME);
|
|
Jeremy Cline |
d1b6f8c |
+
|
|
Jeremy Cline |
d1b6f8c |
+ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) {
|
|
Jeremy Cline |
d1b6f8c |
+ pr_debug("%s does not support host ipmi\n", dmistr);
|
|
Jeremy Cline |
d1b6f8c |
+ return 0;
|
|
Jeremy Cline |
d1b6f8c |
+ }
|
|
Jeremy Cline |
d1b6f8c |
+ /* END RHEL-only */
|
|
Jeremy Cline |
d1b6f8c |
+#endif
|
|
Jeremy Cline |
d1b6f8c |
+
|
|
Jeremy Cline |
d1b6f8c |
while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev)))
|
|
Jeremy Cline |
d1b6f8c |
dmi_decode_ipmi((const struct dmi_header *) dev->device_data);
|
|
|
d176dfc |
|
|
Jeremy Cline |
d1b6f8c |
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
|
|
|
676c84f |
index e1b22fe0916c..894eda427214 100644
|
|
Jeremy Cline |
d1b6f8c |
--- a/drivers/char/ipmi/ipmi_msghandler.c
|
|
Jeremy Cline |
d1b6f8c |
+++ b/drivers/char/ipmi/ipmi_msghandler.c
|
|
|
676c84f |
@@ -34,6 +34,7 @@
|
|
Jeremy Cline |
d1b6f8c |
#include <linux/uuid.h>
|
|
Jeremy Cline |
d1b6f8c |
#include <linux/nospec.h>
|
|
|
676c84f |
#include <linux/vmalloc.h>
|
|
Jeremy Cline |
d1b6f8c |
+#include <linux/dmi.h>
|
|
|
d176dfc |
|
|
Jeremy Cline |
d1b6f8c |
#define IPMI_DRIVER_VERSION "39.2"
|
|
|
d176dfc |
|
|
|
676c84f |
@@ -5155,8 +5156,21 @@ static int __init ipmi_init_msghandler_mod(void)
|
|
Jeremy Cline |
d1b6f8c |
{
|
|
Jeremy Cline |
d1b6f8c |
int rv;
|
|
|
d176dfc |
|
|
Jeremy Cline |
d1b6f8c |
- pr_info("version " IPMI_DRIVER_VERSION "\n");
|
|
Jeremy Cline |
d1b6f8c |
+#ifdef CONFIG_ARM64
|
|
Jeremy Cline |
d1b6f8c |
+ /* RHEL-only
|
|
Jeremy Cline |
d1b6f8c |
+ * If this is ARM-based HPE m400, return now, because that platform
|
|
Jeremy Cline |
d1b6f8c |
+ * reports the host-side ipmi address as intel port-io space, which
|
|
Jeremy Cline |
d1b6f8c |
+ * does not exist in the ARM architecture.
|
|
Jeremy Cline |
d1b6f8c |
+ */
|
|
Jeremy Cline |
d1b6f8c |
+ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME);
|
|
|
d176dfc |
|
|
Jeremy Cline |
d1b6f8c |
+ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) {
|
|
Jeremy Cline |
d1b6f8c |
+ pr_debug("%s does not support host ipmi\n", dmistr);
|
|
Jeremy Cline |
d1b6f8c |
+ return -ENOSYS;
|
|
Jeremy Cline |
d1b6f8c |
+ }
|
|
Jeremy Cline |
d1b6f8c |
+ /* END RHEL-only */
|
|
Jeremy Cline |
d1b6f8c |
+#endif
|
|
Jeremy Cline |
d1b6f8c |
+ pr_info("version " IPMI_DRIVER_VERSION "\n");
|
|
Jeremy Cline |
d1b6f8c |
mutex_lock(&ipmi_interfaces_mutex);
|
|
Jeremy Cline |
d1b6f8c |
rv = ipmi_register_driver();
|
|
Jeremy Cline |
d1b6f8c |
mutex_unlock(&ipmi_interfaces_mutex);
|
|
Jeremy Cline |
d1b6f8c |
--
|
|
|
d176dfc |
2.26.2
|
|
Jeremy Cline |
d1b6f8c |
|