> + * > + * Protection based vm_flags combinatins are always linear > + * and increasing i.e VM_NONE ..[VM_SHARED|READ|WRITE|EXEC]. > */ > - for (idx = 0; idx < ARRAY_SIZE(protection_map); idx++) { > + for (i = VM_NONE; i <= (VM_SHARED | VM_READ | VM_WRITE | VM_EXEC); ix++) { > pte_basic_tests(&args, idx); > pmd_basic_tests(&args, idx); > pud_basic_tests(&args, idx); This looks rather convoluted. I'd prefer to add a helper for the body of this loop, and then explicitly call it for all the valid combinations. Right now all are valid, so this dosn't change a thing except for generating larger code due to the explicit loop unrolling, but I think it is much easier to follow and maintain.