Thread (44 messages) 44 messages, 5 authors, 2023-12-07

Re: [PATCH v4 05/13] powerpc/rtas: Facilitate high-level call sequences

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2023-11-28 22:31:39

Nathan Lynch via B4 Relay [off-list ref]
writes:
From: Nathan Lynch <redacted>

On RTAS platforms there is a general restriction that the OS must not
enter RTAS on more than one CPU at a time. This low-level
serialization requirement is satisfied by holding a spin
lock (rtas_lock) across most RTAS function invocations.
...
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 1fc0b3fffdd1..52f2242d0c28 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -581,6 +652,28 @@ static const struct rtas_function *rtas_token_to_function(s32 token)
 	return NULL;
 }
 
+static void __rtas_function_lock(struct rtas_function *func)
+{
+	if (func && func->lock)
+		mutex_lock(func->lock);
+}
This is obviously going to defeat most static analysis tools. I assume
lockdep is OK with it though?

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help