[PATCH] sched/cpupri: handle out-of-range prio in convert_prio

Joseph Salisbury posted 1 patch 1 month ago
kernel/sched/cpupri.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
[PATCH] sched/cpupri: handle out-of-range prio in convert_prio
Posted by Joseph Salisbury 1 month ago
convert_prio() can return an undefined value when called with an
out-of-range priority because 'cpupri' is not initialized on the default
path.

Initialize 'cpupri' to 'CPUPRI_INVALID' and warn once on invalid input,
keeping behavior deterministic for unexpected priorities.

Fixes: 6e0534f27819 ("sched: use a 2-d bitmap for searching lowest-pri CPU")
Cc: stable@vger.kernel.org
Assisted-by: Codex:GPT-5
Signed-off-by: Joseph Salisbury <joseph.salisbury@oracle.com>
---
 kernel/sched/cpupri.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
index 8f2237e8b484..b905a6bfac0c 100644
--- a/kernel/sched/cpupri.c
+++ b/kernel/sched/cpupri.c
@@ -42,7 +42,7 @@
  */
 static int convert_prio(int prio)
 {
-	int cpupri;
+	int cpupri = CPUPRI_INVALID;
 
 	switch (prio) {
 	case CPUPRI_INVALID:
@@ -60,6 +60,10 @@ static int convert_prio(int prio)
 	case MAX_RT_PRIO:
 		cpupri = CPUPRI_HIGHER;		/* 100 */
 		break;
+
+	default:
+		WARN_ON_ONCE(prio < 0 || prio > MAX_RT_PRIO);
+		break;
 	}
 
 	return cpupri;
-- 
2.47.3