* Joseph Thelen <jthelen@xxxxxxx> wrote: > static int __init setup_add_efi_memmap(char *arg) > { > + static bool arg_as_bool; Why hidden inside local variables as static? > + int ret = strtobool(arg, &arg_as_bool); > + > + /* check for a non-existent arg, to maintain backward compatibility */ > + if (!arg) { > + add_efi_memmap = EFI_MEMMAP_ENABLED; > + } else { > + if (ret) { > + /* a bad argument was passed... */ > + return ret; > + } else { > + if (arg_as_bool) > + add_efi_memmap = EFI_MEMMAP_ENABLED; > + else > + add_efi_memmap = EFI_MEMMAP_DISABLED; > + } > + } > + > return 0; And that's a really weird code flow! How about something straightforward: int val = 0; int ret; /* Check for a non-existent arg, to maintain backward compatibility: */ if (!arg) { add_efi_memmap = EFI_MEMMAP_ENABLED; return 0; } ret = strtobool(arg, &val); /* Was a bad argument passed? */ if (ret) return ret; if (val) add_efi_memmap = EFI_MEMMAP_ENABLED; else add_efi_memmap = EFI_MEMMAP_DISABLED; return 0; ? Also note the rename to 'val'. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html