Index: sys/vm/vm_extern.h =================================================================== --- sys/vm/vm_extern.h +++ sys/vm/vm_extern.h @@ -140,6 +140,11 @@ static inline bool vm_addr_align_ok(vm_paddr_t pa, u_long alignment) { +#ifdef INVARIANTS + if (!powerof2(alignment)) + panic("%s: alignment is not a power of 2: 0x%lx", + __func__, alignment) +#endif return ((pa & (alignment - 1)) == 0); } @@ -150,6 +155,11 @@ static inline bool vm_addr_bound_ok(vm_paddr_t pa, vm_paddr_t size, vm_paddr_t boundary) { +#ifdef INVARIANTS + if (!powerof2(boundary)) + panic("%s: boundary is not a power of 2: 0x%lx", + __func__, alignment) +#endif return (((pa ^ (pa + size - 1)) & -boundary) == 0); }