diff options
Diffstat (limited to 'machine/mtrap.c')
-rw-r--r-- | machine/mtrap.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/machine/mtrap.c b/machine/mtrap.c index 49d652f..c114757 100644 --- a/machine/mtrap.c +++ b/machine/mtrap.c @@ -5,6 +5,7 @@ #include "bits.h" #include "vm.h" #include "uart.h" +#include "fdt.h" #include "unprivileged_memory.h" #include <errno.h> #include <stdarg.h> @@ -86,7 +87,7 @@ static uintptr_t mcall_set_timer(uint64_t when) static void send_ipi_many(uintptr_t* pmask, int event) { _Static_assert(MAX_HARTS <= 8 * sizeof(*pmask), "# harts > uintptr_t bits"); - uintptr_t mask = ((uintptr_t)1 << num_harts) - 1; + uintptr_t mask = hart_mask; if (pmask) mask &= load_uintptr_t(pmask, read_csr(mepc)); |