|
Michal Suchanek |
17b217 |
From 91713ac377859893a7798999cb2e3a388d8ae710 Mon Sep 17 00:00:00 2001
|
|
Michal Suchanek |
17b217 |
From: Nathan Lynch <nathanl@linux.ibm.com>
|
|
Michal Suchanek |
17b217 |
Date: Fri, 12 Jun 2020 00:12:32 -0500
|
|
Michal Suchanek |
17b217 |
Subject: [PATCH] powerpc/rtasd: simplify handle_rtas_event(), emit message on
|
|
Michal Suchanek |
17b217 |
events
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
References: bsc#1181674 ltc#189159
|
|
Michal Suchanek |
17b217 |
Patch-mainline: v5.9-rc1
|
|
Michal Suchanek |
17b217 |
Git-commit: 91713ac377859893a7798999cb2e3a388d8ae710
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
prrn_is_enabled() always returns false/0, so handle_rtas_event() can
|
|
Michal Suchanek |
17b217 |
be simplified and some dead code can be removed. Use machine_is()
|
|
Michal Suchanek |
17b217 |
instead of #ifdef to run this code only on pseries, and add an
|
|
Michal Suchanek |
17b217 |
informational ratelimited message that we are ignoring the
|
|
Michal Suchanek |
17b217 |
events. PRRN events are relatively rare in normal operation and
|
|
Michal Suchanek |
17b217 |
usually arise from operator-initiated actions such as a DPO (Dynamic
|
|
Michal Suchanek |
17b217 |
Platform Optimizer) run.
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
Eventually we do want to consume these events and update the device
|
|
Michal Suchanek |
17b217 |
tree, but that needs more care to be safe vs LPM and DLPAR.
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
|
|
Michal Suchanek |
17b217 |
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
|
|
Michal Suchanek |
17b217 |
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|
|
Michal Suchanek |
17b217 |
Link: https://lore.kernel.org/r/20200612051238.1007764-13-nathanl@linux.ibm.com
|
|
Michal Suchanek |
17b217 |
Acked-by: Michal Suchanek <msuchanek@suse.de>
|
|
Michal Suchanek |
17b217 |
---
|
|
Michal Suchanek |
17b217 |
arch/powerpc/kernel/rtasd.c | 28 +++-------------------------
|
|
Michal Suchanek |
17b217 |
1 file changed, 3 insertions(+), 25 deletions(-)
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c
|
|
Michal Suchanek |
17b217 |
index 89b798f8f656..8561dfb33f24 100644
|
|
Michal Suchanek |
17b217 |
--- a/arch/powerpc/kernel/rtasd.c
|
|
Michal Suchanek |
17b217 |
+++ b/arch/powerpc/kernel/rtasd.c
|
|
Michal Suchanek |
17b217 |
@@ -273,37 +273,15 @@ void pSeries_log_error(char *buf, unsigned int err_type, int fatal)
|
|
Michal Suchanek |
17b217 |
}
|
|
Michal Suchanek |
17b217 |
}
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
-#ifdef CONFIG_PPC_PSERIES
|
|
Michal Suchanek |
17b217 |
-static void handle_prrn_event(s32 scope)
|
|
Michal Suchanek |
17b217 |
-{
|
|
Michal Suchanek |
17b217 |
- /*
|
|
Michal Suchanek |
17b217 |
- * For PRRN, we must pass the negative of the scope value in
|
|
Michal Suchanek |
17b217 |
- * the RTAS event.
|
|
Michal Suchanek |
17b217 |
- */
|
|
Michal Suchanek |
17b217 |
- pseries_devicetree_update(-scope);
|
|
Michal Suchanek |
17b217 |
- numa_update_cpu_topology(false);
|
|
Michal Suchanek |
17b217 |
-}
|
|
Michal Suchanek |
17b217 |
-
|
|
Michal Suchanek |
17b217 |
static void handle_rtas_event(const struct rtas_error_log *log)
|
|
Michal Suchanek |
17b217 |
{
|
|
Michal Suchanek |
17b217 |
- if (rtas_error_type(log) != RTAS_TYPE_PRRN || !prrn_is_enabled())
|
|
Michal Suchanek |
17b217 |
+ if (!machine_is(pseries))
|
|
Michal Suchanek |
17b217 |
return;
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
- /* For PRRN Events the extended log length is used to denote
|
|
Michal Suchanek |
17b217 |
- * the scope for calling rtas update-nodes.
|
|
Michal Suchanek |
17b217 |
- */
|
|
Michal Suchanek |
17b217 |
- handle_prrn_event(rtas_error_extended_log_length(log));
|
|
Michal Suchanek |
17b217 |
+ if (rtas_error_type(log) == RTAS_TYPE_PRRN)
|
|
Michal Suchanek |
17b217 |
+ pr_info_ratelimited("Platform resource reassignment ignored.\n");
|
|
Michal Suchanek |
17b217 |
}
|
|
Michal Suchanek |
17b217 |
|
|
Michal Suchanek |
17b217 |
-#else
|
|
Michal Suchanek |
17b217 |
-
|
|
Michal Suchanek |
17b217 |
-static void handle_rtas_event(const struct rtas_error_log *log)
|
|
Michal Suchanek |
17b217 |
-{
|
|
Michal Suchanek |
17b217 |
- return;
|
|
Michal Suchanek |
17b217 |
-}
|
|
Michal Suchanek |
17b217 |
-
|
|
Michal Suchanek |
17b217 |
-#endif
|
|
Michal Suchanek |
17b217 |
-
|
|
Michal Suchanek |
17b217 |
static int rtas_log_open(struct inode * inode, struct file * file)
|
|
Michal Suchanek |
17b217 |
{
|
|
Michal Suchanek |
17b217 |
return 0;
|
|
Michal Suchanek |
17b217 |
--
|
|
Michal Suchanek |
17b217 |
2.26.2
|
|
Michal Suchanek |
17b217 |
|