forked from Mirrors/opensbi
		
	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: 296e70d69d ("lib: sbi: Extend sbi_hartmask to support both hartid and hartindex")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Xiang W <wxjstz@126.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							d36709fcaf
						
					
				
				
					commit
					8197c2f1ec
				
			@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user