Skip to content

Commit 158b888

Browse files
committed
maintenance irq: support handling multiple LRs
- extend it to support handling multiple LRs per fault IPC msg. Signed-off-by: JorgeMVP <jorgepereira89@gmail.com>
1 parent 66ae5c5 commit 158b888

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

libsel4vm/src/arch/arm/vgic/vgic_v2.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -277,12 +277,14 @@ int vm_install_vgic(vm_t *vm)
277277
int vm_vgic_maintenance_handler(vm_vcpu_t *vcpu)
278278
{
279279
uint64_t eisr = seL4_GetMR(seL4_VGICMaintenance_EISR);
280-
if (eisr) {
280+
281+
while (eisr) {
281282
int idx = __builtin_ctzll(eisr);
282283
int err = handle_vgic_maintenance(vcpu, idx);
283284
if (err) {
284285
ZF_LOGF("vGIC maintenance handler failed (error %d)", err);
285286
}
287+
eisr &= ~(1ULL << idx);
286288
}
287289

288290
seL4_MessageInfo_t reply;

0 commit comments

Comments
 (0)