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