Hi Jens, Thanks a lot for the finding.
> On 3 Feb 2025, at 11:21, Jens Wiklander <[email protected]> wrote: > > The notification bitmask is in passed in the FF-A ABI in two 32-bit > registers w3 and w4. The lower 32-bits should go in w3 and the higher in > w4. These two registers has unfortunately been swapped for > FFA_NOTIFICATION_BIND and FFA_NOTIFICATION_UNBIND in the FF-A mediator. > So fix that by using the correct registers. > > Fixes: b490f470f58d ("xen/arm: ffa: support notification") > Signed-off-by: Jens Wiklander <[email protected]> Reviewed-by: Bertrand Marquis <[email protected]> @Oleksii: This is a fix of a bug, can this be considered for 4.20 ? Thanks Bertrand > --- > xen/arch/arm/tee/ffa_notif.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c > index 21b9e78f6399..00efaf8f7353 100644 > --- a/xen/arch/arm/tee/ffa_notif.c > +++ b/xen/arch/arm/tee/ffa_notif.c > @@ -40,8 +40,8 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs) > * We only support notifications from SP so no need to check the sender > * endpoint ID, the SPMC will take care of that for us. > */ > - return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags, bitmap_hi, > - bitmap_lo); > + return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags, bitmap_lo, > + bitmap_hi); > } > > int ffa_handle_notification_unbind(struct cpu_user_regs *regs) > @@ -61,8 +61,8 @@ int ffa_handle_notification_unbind(struct cpu_user_regs > *regs) > * We only support notifications from SP so no need to check the > * destination endpoint ID, the SPMC will take care of that for us. > */ > - return ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_hi, > - bitmap_lo); > + return ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_lo, > + bitmap_hi); > } > > void ffa_handle_notification_info_get(struct cpu_user_regs *regs) > -- > 2.43.0 >
