浏览代码

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>
Glauber Costa 17 年之前
父节点
当前提交
cf4cfb225a
共有 2 个文件被更改,包括 1 次插入4 次删除
  1. 1 1
      arch/x86/kernel/time_32.c
  2. 0 3
      include/asm-x86/segment.h

+ 1 - 1
arch/x86/kernel/time_32.c

@@ -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);

+ 0 - 3
include/asm-x86/segment.h

@@ -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)