mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00
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