From 15df9d2b3c0a63c67a7709c7d736639f927c7a8d Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Fri, 11 Jul 2008 13:45:46 -0300 Subject: [PATCH] --- yaml --- r: 113524 b: refs/heads/master c: cf4cfb225ab2b48611cb4f9e8db23c87486416d6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/time_32.c | 2 +- trunk/include/asm-x86/segment.h | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 4e9eb4ea02a8..feb14c744ed0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bd32a8cfa8f172bd943655a3663d8005e5c1d83c +refs/heads/master: cf4cfb225ab2b48611cb4f9e8db23c87486416d6 diff --git a/trunk/arch/x86/kernel/time_32.c b/trunk/arch/x86/kernel/time_32.c index bbecf8b6bf96..8abcb7b08694 100644 --- a/trunk/arch/x86/kernel/time_32.c +++ b/trunk/arch/x86/kernel/time_32.c @@ -47,7 +47,7 @@ unsigned long profile_pc(struct pt_regs *regs) unsigned long pc = instruction_pointer(regs); #ifdef CONFIG_SMP - if (!v8086_mode(regs) && SEGMENT_IS_KERNEL_CODE(regs->cs) && + if (!v8086_mode(regs) && !user_mode(regs) && in_lock_functions(pc)) { #ifdef CONFIG_FRAME_POINTER return *(unsigned long *)(regs->bp + 4); diff --git a/trunk/include/asm-x86/segment.h b/trunk/include/asm-x86/segment.h index ea5f0a8686f7..4dcd8c6dd227 100644 --- a/trunk/include/asm-x86/segment.h +++ b/trunk/include/asm-x86/segment.h @@ -131,9 +131,6 @@ * 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) */ #define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8)