From: Heinrich Schuchardt Date: Wed, 27 Sep 2023 14:14:51 +0000 (+0200) Subject: lib: sbi: fix sbi_domain_get_assigned_hartmask() X-Git-Tag: v1.4~81 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8197c2f1ec5bcdd3aa7477efef59e9ebd57ee331;p=platform%2Fkernel%2Fopensbi.git 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 --- 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;