Re: [PATCH v2 1/2] jump_label: Explicitly disable jump labels in __init code

From: Ingo Molnar
Date: Sat Feb 17 2018 - 05:38:58 EST



* Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:

> +/* Disable any jump label entries in __init code */
> +void __init jump_label_invalidate_init(void)
> +{
> + struct jump_entry *iter_start = __start___jump_table;
> + struct jump_entry *iter_stop = __stop___jump_table;
> + struct jump_entry *iter;
> +
> + for (iter = iter_start; iter < iter_stop; iter++)
> + if (iter->code >= (unsigned long)_sinittext &&
> + iter->code < (unsigned long)_einittext)
> + iter->code = 0;
> +}
> +
> +/* Disable any jump label entries in module init code */
> static void jump_label_invalidate_module_init(struct module *mod)
> {
> struct jump_entry *iter_start = mod->jump_entries;
> struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
> struct jump_entry *iter;
>
> - for (iter = iter_start; iter < iter_stop; iter++) {
> + for (iter = iter_start; iter < iter_stop; iter++)
> if (within_module_init(iter->code, mod))
> iter->code = 0;
> - }

Why did you remove the curly braces? They are canonical kernel style for
multi-line statements.

The new jump_label_invalidate_init() function has that problem too.

Thanks,

Ingo