x86: use user_mode macro
Instead of using SEGMENT_IS_KERNEL_CODE, use the "user_mode" macro, which can play the same role. Delete the former, since it now lacks any user. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
bd32a8cfa8
commit
cf4cfb225a
@@ -47,7 +47,7 @@ unsigned long profile_pc(struct pt_regs *regs)
|
|||||||
unsigned long pc = instruction_pointer(regs);
|
unsigned long pc = instruction_pointer(regs);
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
if (!v8086_mode(regs) && SEGMENT_IS_KERNEL_CODE(regs->cs) &&
|
if (!v8086_mode(regs) && !user_mode(regs) &&
|
||||||
in_lock_functions(pc)) {
|
in_lock_functions(pc)) {
|
||||||
#ifdef CONFIG_FRAME_POINTER
|
#ifdef CONFIG_FRAME_POINTER
|
||||||
return *(unsigned long *)(regs->bp + 4);
|
return *(unsigned long *)(regs->bp + 4);
|
||||||
|
@@ -131,9 +131,6 @@
|
|||||||
* Matching rules for certain types of segments.
|
* Matching rules for certain types of segments.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Matches only __KERNEL_CS, ignoring PnP / USER / APM segments */
|
|
||||||
#define SEGMENT_IS_KERNEL_CODE(x) (((x) & 0xfc) == GDT_ENTRY_KERNEL_CS * 8)
|
|
||||||
|
|
||||||
/* Matches __KERNEL_CS and __USER_CS (they must be 2 entries apart) */
|
/* Matches __KERNEL_CS and __USER_CS (they must be 2 entries apart) */
|
||||||
#define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8)
|
#define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user