Fix an issue in the 'fail:' cleanup path of the 'assign_shared_memory()' function where the use of an unsigned long 'i' with the condition '--i >= 0' caused an infinite loop. Update the loop to use 'i--', ensuring correct loop termination.
This change adheres to MISRA C Rule 14.3: "Controlling expressions shall not be invariant." Fixes: 72c5fa2208 (device-tree: Move Arm's static-shmem feature to common, 2025-06-03) Signed-off-by: Dmytro Prokopchuk <dmytro_prokopch...@epam.com> --- Changes to v2: - added Fixes tag - updated the loop to use 'i--' - updated commit message accordingly Link to v1: https://patchew.org/Xen/d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro._5fprokopch...@epam.com/ --- xen/common/device-tree/static-shmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/common/device-tree/static-shmem.c b/xen/common/device-tree/static-shmem.c index 8023c0a484..79f23caa77 100644 --- a/xen/common/device-tree/static-shmem.c +++ b/xen/common/device-tree/static-shmem.c @@ -185,7 +185,7 @@ static int __init assign_shared_memory(struct domain *d, paddr_t gbase, return 0; fail: - while ( --i >= 0 ) + while ( i-- ) put_page_nr(page + i, nr_borrowers); return ret; } -- 2.43.0