From 8197c2f1ec5bcdd3aa7477efef59e9ebd57ee331 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Wed, 27 Sep 2023 16:14:51 +0200 Subject: [PATCH] lib: sbi: fix sbi_domain_get_assigned_hartmask() '1' is a 32 bit integer. When shifting it by more than 31 bits it becomes zero and we get an incorrect return value. Addresses-Coverity-ID: 1568356 Bad bit shift operation Fixes: 296e70d69da7 ("lib: sbi: Extend sbi_hartmask to support both hartid and hartindex") Signed-off-by: Heinrich Schuchardt Reviewed-by: Xiang W Reviewed-by: Anup Patel --- lib/sbi/sbi_domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c index b1f485d..fd4a296 100644 --- a/lib/sbi/sbi_domain.c +++ b/lib/sbi/sbi_domain.c @@ -76,7 +76,7 @@ ulong sbi_domain_get_assigned_hartmask(const struct sbi_domain *dom, ulong ret = 0; for (int i = 0; i < 8 * sizeof(ret); i++) { if (sbi_domain_is_assigned_hart(dom, hbase + i)) - ret |= 1 << i; + ret |= 1UL << i; } return ret;