Nathan Lynch via B4 Relay <devnull+nathanl.linux.ibm....@kernel.org> writes:
> From: Nathan Lynch <nath...@linux.ibm.com> > > Use the function lock API to prevent interleaving call sequences of > the ibm,activate-firmware RTAS function, which typically requires > multiple calls to complete the update. While the spec does not > specifically prohibit interleaved sequences, there's almost certainly > no advantage to allowing them. > Can we document what is the equivalent thing the userspace does? Reviewed-by: Aneesh Kumar K.V (IBM) <aneesh.ku...@kernel.org> > Signed-off-by: Nathan Lynch <nath...@linux.ibm.com> > --- > arch/powerpc/kernel/rtas.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c > index 52f2242d0c28..e38ba05ad613 100644 > --- a/arch/powerpc/kernel/rtas.c > +++ b/arch/powerpc/kernel/rtas.c > @@ -1753,10 +1753,14 @@ void rtas_activate_firmware(void) > return; > } > > + rtas_function_lock(RTAS_FN_IBM_ACTIVATE_FIRMWARE); > + > do { > fwrc = rtas_call(token, 0, 1, NULL); > } while (rtas_busy_delay(fwrc)); > > + rtas_function_unlock(RTAS_FN_IBM_ACTIVATE_FIRMWARE); > + > if (fwrc) > pr_err("ibm,activate-firmware failed (%i)\n", fwrc); > } > > -- > 2.41.0