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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* [email protected] <[email protected]> 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 <[email protected]>

agreed!

Acked-by: Ingo Molnar <[email protected]>

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux