Re: [PATCH] i386: clean up user_mode() use

From: Ingo Molnar
Date: Sun Jul 02 2006 - 09:40:21 EST



* pageexec@xxxxxxxxxxx <pageexec@xxxxxxxxxxx> wrote:

> on i386 there're two macros used for testing the userland execution
> mode: user_mode() and user_mode_vm(), which is not intuitive as on
> many (all?) other architectures there's only user_mode() and
> architecture independent code is written with user_mode() only, and
> even on i386 someone can make the wrong assumption that user_mode()
> works as it does on other archs.
>
> two cases in point:
> drivers/oprofile/cpu_buffer.c:oprofile_add_sample() uses user_mode()
> which can lead to incorrect results if the interrupted task was in v86
> mode with a code segment fooling the user_mode() selector RPL check.
> also, arch/i386/kernel/kprobes.c:kprobe_exceptions_notify() used to
> use user_mode() whereas it really meant user_mode_vm(), this is in
> fact incorrect until 2.6.17.
>
> to avoid such mistakes in the future, the suggested solution is to
> make user_mode() on i386 consistent with the generic expectation and
> make it detect any user mode execution context, that is, it should
> take the role of user_mode_vm() and a new user_mode_novm() is
> introduced for the i386 specific cases where v86 mode can be excluded.
> in short, the patch simply does a
>
> user_mode_vm -> user_mode
> user_mode -> user_mode_novm
>
> substitution as appropriate.
>
> Signed-off-by: PaX Team <pageexec@xxxxxxxxxxx>

agreed!

Acked-by: Ingo Molnar <mingo@xxxxxxx>

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/