Commit 053de044411111da00272d1b4e174e7dd743f499
Committed by
Ingo Molnar
1 parent
73018a66e7
Exists in
master
and in
7 other branches
x86: get rid of _MASK flags
There's no need for the *_MASK flags (TF_MASK, IF_MASK, etc), found in processor.h (both _32 and _64). They have a one-to-one mapping with the EFLAGS value. This patch removes the definitions, and use the already existent X86_EFLAGS_ version when applicable. [ roland@redhat.com: KVM build fixes. ] Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Showing 9 changed files with 21 additions and 31 deletions Side-by-side Diff
arch/x86/ia32/ia32_signal.c
... | ... | @@ -501,7 +501,7 @@ |
501 | 501 | regs->ss = __USER32_DS; |
502 | 502 | |
503 | 503 | set_fs(USER_DS); |
504 | - regs->flags &= ~TF_MASK; | |
504 | + regs->flags &= ~X86_EFLAGS_TF; | |
505 | 505 | if (test_thread_flag(TIF_SINGLESTEP)) |
506 | 506 | ptrace_notify(SIGTRAP); |
507 | 507 | |
... | ... | @@ -601,7 +601,7 @@ |
601 | 601 | regs->ss = __USER32_DS; |
602 | 602 | |
603 | 603 | set_fs(USER_DS); |
604 | - regs->flags &= ~TF_MASK; | |
604 | + regs->flags &= ~X86_EFLAGS_TF; | |
605 | 605 | if (test_thread_flag(TIF_SINGLESTEP)) |
606 | 606 | ptrace_notify(SIGTRAP); |
607 | 607 |
arch/x86/kernel/kprobes.c
... | ... | @@ -387,9 +387,9 @@ |
387 | 387 | { |
388 | 388 | __get_cpu_var(current_kprobe) = p; |
389 | 389 | kcb->kprobe_saved_flags = kcb->kprobe_old_flags |
390 | - = (regs->flags & (TF_MASK | IF_MASK)); | |
390 | + = (regs->flags & (X86_EFLAGS_TF | X86_EFLAGS_IF)); | |
391 | 391 | if (is_IF_modifier(p->ainsn.insn)) |
392 | - kcb->kprobe_saved_flags &= ~IF_MASK; | |
392 | + kcb->kprobe_saved_flags &= ~X86_EFLAGS_IF; | |
393 | 393 | } |
394 | 394 | |
395 | 395 | static __always_inline void clear_btf(void) |
... | ... | @@ -407,8 +407,8 @@ |
407 | 407 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
408 | 408 | { |
409 | 409 | clear_btf(); |
410 | - regs->flags |= TF_MASK; | |
411 | - regs->flags &= ~IF_MASK; | |
410 | + regs->flags |= X86_EFLAGS_TF; | |
411 | + regs->flags &= ~X86_EFLAGS_IF; | |
412 | 412 | /*single step inline if the instruction is an int3*/ |
413 | 413 | if (p->opcode == BREAKPOINT_INSTRUCTION) |
414 | 414 | regs->ip = (unsigned long)p->addr; |
... | ... | @@ -454,7 +454,7 @@ |
454 | 454 | if (p) { |
455 | 455 | if (kcb->kprobe_status == KPROBE_HIT_SS && |
456 | 456 | *p->ainsn.insn == BREAKPOINT_INSTRUCTION) { |
457 | - regs->flags &= ~TF_MASK; | |
457 | + regs->flags &= ~X86_EFLAGS_TF; | |
458 | 458 | regs->flags |= kcb->kprobe_saved_flags; |
459 | 459 | goto no_kprobe; |
460 | 460 | #ifdef CONFIG_X86_64 |
461 | 461 | |
... | ... | @@ -749,10 +749,10 @@ |
749 | 749 | insn++; |
750 | 750 | #endif |
751 | 751 | |
752 | - regs->flags &= ~TF_MASK; | |
752 | + regs->flags &= ~X86_EFLAGS_TF; | |
753 | 753 | switch (*insn) { |
754 | 754 | case 0x9c: /* pushfl */ |
755 | - *tos &= ~(TF_MASK | IF_MASK); | |
755 | + *tos &= ~(X86_EFLAGS_TF | X86_EFLAGS_IF); | |
756 | 756 | *tos |= kcb->kprobe_old_flags; |
757 | 757 | break; |
758 | 758 | case 0xc2: /* iret/ret/lret */ |
... | ... | @@ -852,7 +852,7 @@ |
852 | 852 | * will have TF set, in which case, continue the remaining processing |
853 | 853 | * of do_debug, as if this is not a probe hit. |
854 | 854 | */ |
855 | - if (regs->flags & TF_MASK) | |
855 | + if (regs->flags & X86_EFLAGS_TF) | |
856 | 856 | return 0; |
857 | 857 | |
858 | 858 | return 1; |
... | ... | @@ -982,7 +982,7 @@ |
982 | 982 | */ |
983 | 983 | memcpy(kcb->jprobes_stack, (kprobe_opcode_t *)addr, |
984 | 984 | MIN_STACK_SIZE(addr)); |
985 | - regs->flags &= ~IF_MASK; | |
985 | + regs->flags &= ~X86_EFLAGS_IF; | |
986 | 986 | trace_hardirqs_off(); |
987 | 987 | regs->ip = (unsigned long)(jp->entry); |
988 | 988 | return 1; |
arch/x86/kernel/signal_64.c
... | ... | @@ -295,7 +295,7 @@ |
295 | 295 | see include/asm-x86_64/uaccess.h for details. */ |
296 | 296 | set_fs(USER_DS); |
297 | 297 | |
298 | - regs->flags &= ~TF_MASK; | |
298 | + regs->flags &= ~X86_EFLAGS_TF; | |
299 | 299 | if (test_thread_flag(TIF_SINGLESTEP)) |
300 | 300 | ptrace_notify(SIGTRAP); |
301 | 301 | #ifdef DEBUG_SIG |
... | ... | @@ -463,7 +463,7 @@ |
463 | 463 | |
464 | 464 | /* Pending single-step? */ |
465 | 465 | if (thread_info_flags & _TIF_SINGLESTEP) { |
466 | - regs->flags |= TF_MASK; | |
466 | + regs->flags |= X86_EFLAGS_TF; | |
467 | 467 | clear_thread_flag(TIF_SINGLESTEP); |
468 | 468 | } |
469 | 469 |
arch/x86/kernel/traps_64.c
drivers/kvm/vmx.c
... | ... | @@ -524,7 +524,7 @@ |
524 | 524 | static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags) |
525 | 525 | { |
526 | 526 | if (vcpu->rmode.active) |
527 | - rflags |= IOPL_MASK | X86_EFLAGS_VM; | |
527 | + rflags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM; | |
528 | 528 | vmcs_writel(GUEST_RFLAGS, rflags); |
529 | 529 | } |
530 | 530 | |
... | ... | @@ -1050,7 +1050,7 @@ |
1050 | 1050 | vmcs_write32(GUEST_TR_AR_BYTES, vcpu->rmode.tr.ar); |
1051 | 1051 | |
1052 | 1052 | flags = vmcs_readl(GUEST_RFLAGS); |
1053 | - flags &= ~(IOPL_MASK | X86_EFLAGS_VM); | |
1053 | + flags &= ~(X86_EFLAGS_IOPL | X86_EFLAGS_VM); | |
1054 | 1054 | flags |= (vcpu->rmode.save_iopl << IOPL_SHIFT); |
1055 | 1055 | vmcs_writel(GUEST_RFLAGS, flags); |
1056 | 1056 | |
1057 | 1057 | |
... | ... | @@ -1107,9 +1107,9 @@ |
1107 | 1107 | vmcs_write32(GUEST_TR_AR_BYTES, 0x008b); |
1108 | 1108 | |
1109 | 1109 | flags = vmcs_readl(GUEST_RFLAGS); |
1110 | - vcpu->rmode.save_iopl = (flags & IOPL_MASK) >> IOPL_SHIFT; | |
1110 | + vcpu->rmode.save_iopl = (flags & X86_EFLAGS_IOPL) >> IOPL_SHIFT; | |
1111 | 1111 | |
1112 | - flags |= IOPL_MASK | X86_EFLAGS_VM; | |
1112 | + flags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM; | |
1113 | 1113 | |
1114 | 1114 | vmcs_writel(GUEST_RFLAGS, flags); |
1115 | 1115 | vmcs_writel(GUEST_CR4, vmcs_readl(GUEST_CR4) | X86_CR4_VME); |
include/asm-x86/kprobes.h
include/asm-x86/processor.h
include/asm-x86/processor_32.h
include/asm-x86/processor_64.h
... | ... | @@ -18,18 +18,7 @@ |
18 | 18 | #include <asm/percpu.h> |
19 | 19 | #include <linux/personality.h> |
20 | 20 | #include <linux/cpumask.h> |
21 | -#include <asm/processor-flags.h> | |
22 | 21 | #include <asm/desc_defs.h> |
23 | - | |
24 | -#define TF_MASK 0x00000100 | |
25 | -#define IF_MASK 0x00000200 | |
26 | -#define IOPL_MASK 0x00003000 | |
27 | -#define NT_MASK 0x00004000 | |
28 | -#define VM_MASK 0x00020000 | |
29 | -#define AC_MASK 0x00040000 | |
30 | -#define VIF_MASK 0x00080000 /* virtual interrupt flag */ | |
31 | -#define VIP_MASK 0x00100000 /* virtual interrupt pending */ | |
32 | -#define ID_MASK 0x00200000 | |
33 | 22 | |
34 | 23 | static inline int desc_empty(const void *ptr) |
35 | 24 | { |