firmware: arm_ffa: Fix ffa_notification_info_get() IDs handling
Commit Message
To parse the retrieved ID lists appropriately in
ffa_notification_info_get() the ids_processed variable should not
be pre-incremented - we are dropping an identifier at the
beginning of the list.
Fix it by using the post-increment operator to increment the number
of processed IDs.
Fixes: 3522be48d82b ("firmware: arm_ffa: Implement the NOTIFICATION_INFO_GET interface")
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
---
drivers/firmware/arm_ffa/driver.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
On Wed, Nov 08, 2023 at 12:15:49PM +0100, Lorenzo Pieralisi wrote:
> To parse the retrieved ID lists appropriately in
> ffa_notification_info_get() the ids_processed variable should not
> be pre-incremented - we are dropping an identifier at the
> beginning of the list.
>
> Fix it by using the post-increment operator to increment the number
> of processed IDs.
>
> Fixes: 3522be48d82b ("firmware: arm_ffa: Implement the NOTIFICATION_INFO_GET interface")
Thanks for spotting and fixing this. Much appreciated!
I will queue at -rc1.
On Wed, 08 Nov 2023 12:15:49 +0100, Lorenzo Pieralisi wrote:
> To parse the retrieved ID lists appropriately in
> ffa_notification_info_get() the ids_processed variable should not
> be pre-incremented - we are dropping an identifier at the
> beginning of the list.
>
> Fix it by using the post-increment operator to increment the number
> of processed IDs.
>
> [...]
Applied to sudeep.holla/linux (for-next/ffa/fixes), thanks!
[1/1] firmware: arm_ffa: Fix ffa_notification_info_get() IDs handling
https://git.kernel.org/sudeep.holla/c/f1ed48ef97e2
--
Regards,
Sudeep
@@ -782,7 +782,7 @@ static void ffa_notification_info_get(void)
if (ids_processed >= max_ids - 1)
break;
- part_id = packed_id_list[++ids_processed];
+ part_id = packed_id_list[ids_processed++];
if (!ids_count[list]) { /* Global Notification */
__do_sched_recv_cb(part_id, 0, false);
@@ -794,7 +794,7 @@ static void ffa_notification_info_get(void)
if (ids_processed >= max_ids - 1)
break;
- vcpu_id = packed_id_list[++ids_processed];
+ vcpu_id = packed_id_list[ids_processed++];
__do_sched_recv_cb(part_id, vcpu_id, true);
}