On Fri, Jan 4, 2013 at 12:15 PM, Borislav Petkov <b...@alien8.de> wrote: > /* > - * set_real_mode_permissions() gets called very early, to guarantee the > - * availability of low memory. This is before the proper kernel page > - * tables are set up, so we cannot set page permissions in that > - * function. Thus, we use an arch_initcall instead. > + * This function gets called very early to guarantee the availability > + * of low memory. This is even before the proper kernel page tables are > + * set up, so we cannot set page permissions in that function. However, > + * trampoline code will be executed by APs so we need it to be marked > + * executable at pre-SMP time, thus run it as a early_initcall(). > */
more than that, that set_real_mode_permissions reference is wrong, actually it is set_real_mode. /* - * set_real_mode_permissions() gets called very early, to guarantee the - * availability of low memory. This is before the proper kernel page + * set_real_mode() gets called very early, to guarantee the + * availability of low memory. This is before the proper kernel page * tables are set up, so we cannot set page permissions in that - * function. Thus, we use an arch_initcall instead. + * function. Also trampoline code will be executed by APs so we + * need to mark it executable at do_pre_smp_initcalls() at least, + * thus run it as a early_initcall(). */ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/