forked from Mirrors/opensbi
		
	lib: sbi: Use mask to check the free bit during trigger allocation
The trigger allocation function uses bit shift instead of mask to check the
mapped status of the triggers. This causes index 0 to be return always. As a
result, the older triggers are overwritten.
Use the mask for MAPPED field in state word to check if the trigger is mapped.
Fixes: 97f234f15 ("lib: sbi: Introduce the SBI debug triggers extension support")
Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							bb90a9ebf6
						
					
				
				
					commit
					1ec353d504
				
			@@ -129,7 +129,7 @@ static inline struct sbi_dbtr_trigger *sbi_alloc_trigger(void)
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < hart_state->total_trigs; i++) {
 | 
			
		||||
		f_trig = INDEX_TO_TRIGGER(i);
 | 
			
		||||
		if (f_trig->state & RV_DBTR_BIT(TS, MAPPED))
 | 
			
		||||
		if (f_trig->state & RV_DBTR_BIT_MASK(TS, MAPPED))
 | 
			
		||||
			continue;
 | 
			
		||||
		hart_state->available_trigs--;
 | 
			
		||||
		break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user