Commit 638a9516 authored by Jingkai Tan's avatar Jingkai Tan Committed by Rafael J. Wysocki
Browse files

ACPI: processor: idle: Add missing bounds check in flatten_lpi_states()



The inner loop in flatten_lpi_states() that combines composite LPI
states can increment flat_state_cnt multiple times within the loop.

The condition that guards this (checks bounds against ACPI_PROCESSOR
_MAX_POWER) occurs at the top of the outer loop. flat_state_cnt might
exceed ACPI_PROCESSOR_MAX_POWER if it is incremented multiple times
within the inner loop between outer loop iterations.

Add a bounds check after the increment inside the inner loop so that
it breaks out when flat_state_cnt reaches ACPI_PROCESSOR_MAX_POWER.
The existing check in the outer loop will then handle the warning.

Signed-off-by: default avatarJingkai Tan <contact@jingk.ai>
Reviewed-by: default avatarSudeep Holla <sudeep.holla@kernel.org>
Link: https://patch.msgid.link/20260305213831.53985-1-contact@jingk.ai


Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 1f318b96
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1068,6 +1068,8 @@ static unsigned int flatten_lpi_states(struct acpi_processor *pr,
				stash_composite_state(curr_level, flpi);
				flat_state_cnt++;
				flpi++;
				if (flat_state_cnt >= ACPI_PROCESSOR_MAX_POWER)
					break;
			}
		}
	}