trivial: Fix compiler warnings - Declare unused variables - Move variable initialization to prevent uninitialized use - Correctly store bitwise operation result - Fixup memset calls to use correct size - Add missing return statement to functions - Conditionally define functions that are used conditionally
diff --git a/libsel4allocman/src/cspace/two_level.c b/libsel4allocman/src/cspace/two_level.c index 9420fdf..e66b7cb 100644 --- a/libsel4allocman/src/cspace/two_level.c +++ b/libsel4allocman/src/cspace/two_level.c
@@ -215,7 +215,7 @@ cspacepath_t path; cspace_single_level_destroy(alloc, &cspace->second_levels[index]->second_level); if (cspace->second_levels[index]->cookie_valid) { - int error = seL4_CNode_Delete(cspace->config.cnode, index, + int UNUSED error = seL4_CNode_Delete(cspace->config.cnode, index, seL4_WordBits - cspace->config.level_two_bits); assert(error == seL4_NoError); allocman_utspace_free(alloc, cspace->second_levels[index]->cookie, cspace->config.level_two_bits + seL4_SlotBits);
diff --git a/libsel4platsupport/src/irq.c b/libsel4platsupport/src/irq.c index f7bbc73..27d09ef 100644 --- a/libsel4platsupport/src/irq.c +++ b/libsel4platsupport/src/irq.c
@@ -352,6 +352,10 @@ ps_malloc_ops_t *malloc_ops, irq_iface_type_t iface_type) { int err = 0; + /* Figure out how many bitfields we need to keep track of the allocation status of the IDs */ + size_t bits_in_seL4_Word = sizeof(seL4_Word) * CHAR_BIT; + size_t num_irq_bitfields = ALIGN_UP(irq_config.max_irq_ids, bits_in_seL4_Word) / sizeof(seL4_Word); + size_t num_ntfn_bitfields = ALIGN_UP(irq_config.max_ntfn_ids, bits_in_seL4_Word) / sizeof(seL4_Word); irq_cookie_t *cookie = 0; err = ps_calloc(malloc_ops, 1, sizeof(irq_cookie_t), (void **) &cookie); @@ -379,13 +383,9 @@ goto error; } for (int i = 0; i < irq_config.max_ntfn_ids; i++) { - memset(cookie->ntfn_table[i].bound_irqs, UNPAIRED_ID, MAX_INTERRUPTS_TO_NOTIFICATIONS); + memset(cookie->ntfn_table[i].bound_irqs, UNPAIRED_ID, sizeof(irq_id_t) * MAX_INTERRUPTS_TO_NOTIFICATIONS); } - /* Figure out how many bitfields we need to keep track of the allocation status of the IDs */ - size_t bits_in_seL4_Word = sizeof(seL4_Word) * CHAR_BIT; - size_t num_irq_bitfields = ALIGN_UP(irq_config.max_irq_ids, bits_in_seL4_Word) / sizeof(seL4_Word); - size_t num_ntfn_bitfields = ALIGN_UP(irq_config.max_ntfn_ids, bits_in_seL4_Word) / sizeof(seL4_Word); err = ps_calloc(malloc_ops, 1, num_irq_bitfields * sizeof(seL4_Word), (void **) & (cookie->allocated_irq_bitfields)); if (err) { @@ -711,7 +711,7 @@ /* Zero out the entire entry */ memset(ntfn_entry, 0, sizeof(ntfn_entry_t)); /* Reset the bound_irqs array for the entry */ - memset(ntfn_entry->bound_irqs, UNPAIRED_ID, MAX_INTERRUPTS_TO_NOTIFICATIONS); + memset(ntfn_entry->bound_irqs, UNPAIRED_ID, sizeof(irq_id_t) * MAX_INTERRUPTS_TO_NOTIFICATIONS); irq_cookie->num_allocated_ntfns--; unfill_bit_in_bitfield(irq_cookie->allocated_ntfn_bitfields, ntfn_id); @@ -843,7 +843,7 @@ bool callback_called = perform_callback(irq_cookie, paired_irq_id, bit_index); if (callback_called && ntfn_entry->pending_bitfield & BIT(bit_index)) { /* Unset the bit, we've performed the callback for that interrupt */ - ntfn_entry->pending_bitfield & ~BIT(bit_index); + ntfn_entry->pending_bitfield &= ~BIT(bit_index); } unchecked_bits &= ~BIT(bit_index); }
diff --git a/libsel4platsupport/src/timer.c b/libsel4platsupport/src/timer.c index a25edc4..d46d189 100644 --- a/libsel4platsupport/src/timer.c +++ b/libsel4platsupport/src/timer.c
@@ -287,6 +287,9 @@ break; case PS_NONE: ZF_LOGE("Invalid irq type"); + break; + default: + ZF_LOGE("Unsupported irq type"); } } }
diff --git a/libsel4vspace/src/arch/arm/mapping.c b/libsel4vspace/src/arch/arm/mapping.c index fe9b504..67f2aa0 100644 --- a/libsel4vspace/src/arch/arm/mapping.c +++ b/libsel4vspace/src/arch/arm/mapping.c
@@ -13,12 +13,12 @@ #include <autoconf.h> #include <vspace/mapping.h> +#ifdef CONFIG_ARM_SMMU static seL4_Error vspace_map_io(seL4_CPtr cap, seL4_CPtr iospace_root, seL4_Word vaddr, UNUSED seL4_Word attr) { -#ifdef CONFIG_ARM_SMMU return seL4_ARM_IOPageTable_Map(cap, iospace_root, vaddr); -#endif } +#endif int vspace_get_iospace_map_obj(UNUSED seL4_Word failed_bits, vspace_map_obj_t *obj) { @@ -29,6 +29,6 @@ obj->size_bits = seL4_IOPageTableBits; obj->type = seL4_ARM_IOPageTableObject; obj->map_fn = vspace_map_io; - return 0; #endif + return 0; }