linux/arch/x86/include/asm
Frederic Weisbecker 89e45aac42 x86: Fix instruction breakpoint encoding
Lengths and types of breakpoints are encoded in a half byte
into CPU registers. However when we extract these values
and store them, we add a high half byte part to them: 0x40 to the
length and 0x80 to the type.
When that gets reloaded to the CPU registers, the high part
is masked.

While making the instruction breakpoints available for perf,
I zapped that high part on instruction breakpoint encoding
and that broke the arch -> generic translation used by ptrace
instruction breakpoints. Writing dr7 to set an inst breakpoint
was then failing.

There is no apparent reason for these high parts so we could get
rid of them altogether. That's an invasive change though so let's
do that later and for now fix the problem by restoring that inst
breakpoint high part encoding in this sole patch.

Reported-by: Kelvie Wong <kelvie@ieee.org>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Prasad <prasad@linux.vnet.ibm.com>
Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Cc: Will Deacon <will.deacon@arm.com>
2010-09-17 03:24:13 +02:00
..
uv x86, UV: Modularize BAU send and wait 2010-06-08 21:13:48 +02:00
visws x86: Move pci init function to x86_init 2010-02-19 16:12:29 -08:00
xen Merge branch 'stable/xen-swiotlb-0.8.6' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-08-12 09:09:41 -07:00
a.out-core.h hw-breakpoints: Fix broken a.out format dump 2009-11-10 11:23:05 +01:00
a.out.h
acpi.h x86: Fix keeping track of AMD C1E 2010-08-02 08:45:56 -07:00
aes.h
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
alternative-asm.h x86-64: Reduce SMP locks table size 2010-04-28 17:15:47 -07:00
alternative.h x86, alternatives: Use 16-bit numbers for cpufeature index 2010-07-07 10:36:28 -07:00
amd_iommu_proto.h x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt 2010-01-22 17:44:35 +01:00
amd_iommu_types.h Merge branch 'iommu/largepages' into amd-iommu/2.6.35 2010-05-11 17:40:57 +02:00
amd_iommu.h x86/amd-iommu: Update copyright headers 2009-11-27 11:45:49 +01:00
apb_timer.h x86, mrst: add more timer config options 2010-05-19 13:45:39 -07:00
apic.h x86, apic: Allow to use certain functions without APIC built-in support 2010-03-18 17:03:21 +01:00
apicdef.h x86: io-apic: IO-APIC MMIO should not fail on resource insertion 2009-11-16 16:37:10 +01:00
apm.h
arch_hweight.h x86, hweight: Use a 32-bit popcnt for __arch_hweight32() 2010-05-17 15:17:16 -07:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h x86, asm: Make _ASM_EXTABLE() usable from assembly code 2009-08-31 15:14:30 -07:00
atomic64_32.h x86-32: Rewrite 32-bit atomic64 functions in assembly 2010-02-25 20:47:30 -08:00
atomic64_64.h Merge branch 'x86-atomic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:40:05 -07:00
atomic.h Merge branch 'x86-atomic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:40:05 -07:00
auxvec.h
bios_ebda.h
bitops.h x86: Add optimized popcnt variants 2010-04-06 15:52:11 -07:00
bitsperlong.h
boot.h x86: Clean up arch/x86/Kconfig* 2010-04-28 17:25:53 -07:00
bootparam.h x86, olpc: Add support for calling into OpenFirmware 2010-06-18 14:54:36 -07:00
bug.h x86: Convert BUG() to use unreachable() 2009-12-05 09:10:12 -08:00
bugs.h
byteorder.h
cache.h Rename .data.read_mostly to .data..read_mostly. 2010-03-03 11:26:00 +01:00
cacheflush.h Merge branch 'drm-for-2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-05-21 11:14:52 -07:00
calgary.h x86: Calgary: Convert detect_calgary() to use iommu_init hook 2009-11-10 12:31:15 +01:00
calling.h
checksum_32.h x86: fix csum_ipv6_magic asm memory clobber 2009-10-01 16:11:12 -07:00
checksum_64.h
checksum.h
cmpxchg_32.h x86, asm: Merge cmpxchg_486_u64() and cmpxchg8b_emu() 2010-07-28 17:05:11 -07:00
cmpxchg_64.h x86, asm: Clean up and simplify <asm/cmpxchg.h> 2010-07-28 15:24:09 -07:00
cmpxchg.h
compat.h improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
cpu.h
cpufeature.h Merge branch 'x86-alternatives-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:24:17 -07:00
cpumask.h
cputime.h
current.h x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses 2009-08-04 01:28:52 +09:00
debugreg.h x86/debug: Clear reserved bits of DR6 in do_debug() 2010-01-29 02:26:10 +01:00
delay.h
desc_defs.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
desc.h x86: Make sure get_user_desc() doesn't sign extend. 2009-11-05 13:22:18 -08:00
device.h x86/amd-iommu: Use dev->arch->iommu to store iommu related information 2009-11-27 14:20:32 +01:00
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h
dmi.h
dwarf2.h x86: Use .cfi_sections for assembly code 2010-05-13 22:15:18 -07:00
e820.h x86, tboot: Add support for S3 memory integrity protection 2010-03-19 13:39:58 -07:00
edac.h
efi.h x86: Make 64-bit efi_ioremap use ioremap on MMIO regions 2009-08-03 13:34:25 -07:00
elf.h x86: ELF_PLAT_INIT() shouldn't worry about TIF_IA32 2010-02-16 08:51:49 -08:00
emergency-restart.h
entry_arch.h x86: UV RTC: Rename generic_interrupt to x86_platform_ipi 2009-10-14 18:27:11 +02:00
errno.h
fb.h x86-64: Allow fbdev primary video code 2010-02-16 21:22:26 -08:00
fcntl.h
fixmap.h x86: Fix placement of FIX_OHCI1394_BASE 2010-03-16 11:16:27 +01:00
floppy.h
frame.h
ftrace.h tracing: Remove FTRACE_SYSCALL_MAX definitions 2009-08-26 21:30:39 +02:00
futex.h
gart.h x86: GART: Convert gart_iommu_hole_init() to use iommu_init hook 2009-11-10 12:31:23 +01:00
genapic.h
geode.h cs5535: drop the Geode-specific MFGPT/GPIO code 2009-12-15 08:53:28 -08:00
gpio.h
hardirq.h x86, asm: Introduce and use percpu_inc() 2010-04-28 16:58:49 -07:00
highmem.h kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
hpet.h x86, hpet: Restrict read back to affected ATI chipsets 2010-04-28 18:14:29 -07:00
hugetlb.h
hw_breakpoint.h x86: Fix instruction breakpoint encoding 2010-09-17 03:24:13 +02:00
hw_irq.h x86: Handle legacy PIC interrupts on all the cpu's 2010-03-16 06:36:35 +01:00
hypertransport.h
hyperv.h x86: Clean up the hypervisor layer 2010-05-07 17:13:04 -07:00
hypervisor.h x86: early PV on HVM features initialization. 2010-07-22 16:45:35 -07:00
i387.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00
i8253.h i8253: Convert i8253_lock to raw_spinlock 2010-03-02 10:28:38 +01:00
i8259.h Merge remote branch 'origin/x86/apic' into x86/mrst 2010-02-22 16:25:18 -08:00
ia32_unistd.h
ia32.h
idle.h
inat_types.h x86: Instruction decoder API 2009-08-27 00:35:56 +02:00
inat.h x86: AVX instruction set decoder support 2009-10-29 08:47:46 +01:00
init.h
insn.h x86: Move MAX_INSN_SIZE into asm/insn.h 2010-03-10 13:23:34 +01:00
inst.h crypto: aesni-intel - Fix another CTR build failure with gas 2.16.1 2010-03-24 21:37:57 +08:00
intel_scu_ipc.h Remove indirect read write api support. 2010-08-03 09:50:30 -04:00
io_apic.h x86, irq: Rename gsi_end gsi_top, and fix off by one errors 2010-06-09 13:34:06 -07:00
io.h x86: Fix 'reservetop=' functionality 2010-04-30 12:19:53 +02:00
ioctl.h
ioctls.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
iomap.h x86: Fix the address space annotations of iomap_atomic_prot_pfn() 2010-09-05 14:26:14 +02:00
iommu.h x86: Move iommu_shutdown_noop to x86_init.c 2009-11-15 09:03:10 +01:00
ipcbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
ipi.h
irq_regs.h
irq_remapping.h
irq_vectors.h x86/xen: event channels delivery on HVM. 2010-07-22 16:45:59 -07:00
irq.h x86, legacy_irq: Remove left over nr_legacy_irqs 2010-02-24 11:01:34 -08:00
irqflags.h x86: allow "=rm" in native_save_fl() 2009-08-25 16:47:16 -07:00
ist.h
k8.h x86, k8: Fix build error when K8_NB is disabled 2010-05-14 11:53:01 -07:00
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h x86, UV: Make kdump avoid stack dumps - fix !CONFIG_KEXEC breakage 2010-08-12 12:23:55 -07:00
kexec.h
kgdb.h kgdb,x86: Individual register get/set for x86 2010-08-05 09:22:20 -05:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kmemcheck.h
kprobes.h x86: Move MAX_INSN_SIZE into asm/insn.h 2010-03-10 13:23:34 +01:00
kvm_emulate.h KVM: x86 emulator: fix regression with cmpxchg8b on i386 hosts 2010-09-08 14:50:55 -03:00
kvm_host.h KVM: VMX: fix tlb flush with invalid root 2010-08-02 06:40:16 +03:00
kvm_para.h x86, paravirt: don't compute pvclock adjustments if we trust the tsc 2010-05-19 11:41:05 +03:00
kvm.h KVM: x86: XSAVE/XRSTOR live migration support 2010-08-01 10:46:37 +03:00
ldt.h
lguest_hcall.h lguest: stop using KVM hypercall mechanism 2010-04-14 21:43:56 +09:30
lguest.h Merge commit 'origin/x86/urgent' into x86/asm 2009-08-25 15:40:29 -07:00
linkage.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h local_t: Remove cpu_local_xx macros 2010-01-05 15:34:49 +09:00
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mca_dma.h
mca.h
mce.h x86, mce: Fix MSR_IA32_MCI_CTL2 CMCI threshold setup 2010-06-10 21:27:36 -07:00
microcode.h Revert "x86: ucode-amd: Load ucode-patches once ..." 2010-01-23 06:21:59 +01:00
mman.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
mmconfig.h
mmu_context.h cpumask: use mm_cpumask() wrapper: x86 2009-09-24 09:34:52 +09:30
mmu.h
mmx.h
mmzone_32.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
mmzone_64.h x86, numa: Add fixed node size option for numa emulation 2010-02-15 14:34:10 -08:00
mmzone.h
module.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
mpspec_def.h
mpspec.h x86, ioapic: Simplify probe_nr_irqs_gsi. 2010-05-04 13:35:11 -07:00
mrst.h x86, mrst: make mrst_timer_options an enum 2010-05-19 14:37:40 -07:00
msgbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
mshyperv.h x86: Clean up the hypervisor layer 2010-05-07 17:13:04 -07:00
msidef.h
msr-index.h Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:24:51 -07:00
msr.h x86, gcc-4.6: Avoid unused by set variables in rdmsr 2010-07-20 15:38:18 -07:00
mtrr.h x86, mtrr: make mtrr_aps_delayed_init static bool 2009-08-21 17:00:02 -07:00
mutex_32.h
mutex_64.h
mutex.h
nmi.h lockup_detector: Combine nmi_watchdog and softlockup detector 2010-05-12 23:55:33 +02:00
nops.h x86/tracing: comment need for atomic nop 2009-09-10 17:22:44 -04:00
numa_32.h
numa_64.h x86, numa: Add fixed node size option for numa emulation 2010-02-15 14:34:10 -08:00
numa.h
numaq.h Merge branch 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-07 15:59:39 -08:00
olpc_ofw.h x86, olpc: Constify an olpc_ofw() arg 2010-07-30 18:02:21 -07:00
olpc.h x86, olpc: Use pci subarch init for OLPC 2010-02-25 19:26:23 -08:00
page_32_types.h
page_32.h
page_64_types.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -07:00
page_64.h
page_types.h x86: Use the generic page_is_ram() 2010-02-01 16:58:17 -08:00
page.h x86: Document __phys_reloc_hide() usage in __pa_symbol() 2010-08-11 08:43:49 +02:00
param.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
paravirt_types.h x86, paravirt: Remove kmap_atomic_pte paravirt op. 2010-02-27 14:41:35 -08:00
paravirt.h x86, paravirt: Remove kmap_atomic_pte paravirt op. 2010-02-27 14:41:35 -08:00
parport.h
pat.h x86, platform: Change is_untracked_pat_range() to bool; cleanup init 2009-11-23 17:09:59 -08:00
pci_64.h x86: Only call dma32_reserve_bootmem 64bit !CONFIG_NUMA 2010-02-10 17:47:18 -08:00
pci_x86.h x86/PCI: Add option to not assign BAR's if not already assigned 2010-07-30 09:29:12 -07:00
pci-direct.h
pci-functions.h
pci.h x86/PCI: only define pci_domain_nr if PCI and PCI_DOMAINS are set 2010-08-17 09:29:36 -07:00
percpu.h percpu, x86: Avoid warnings of unused variables in per cpu 2010-06-11 00:03:45 +02:00
perf_event_p4.h perf, x86: P4 PMU -- redesign cache events 2010-07-05 08:34:36 +02:00
perf_event.h Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core 2010-06-09 18:55:57 +02:00
pgalloc.h x86, mm: Allow highmem user page tables to be disabled at boot time 2010-02-25 10:28:19 +01:00
pgtable_32_types.h x86: use __ASSEMBLY__ rather than __ASSEMBLER__ 2010-06-07 17:27:11 -07:00
pgtable_32.h x86-32: Separate 1:1 pagetables from swapper_pg_dir 2010-08-18 09:17:20 -07:00
pgtable_64_types.h
pgtable_64.h gcc-4.6: mm: fix unused but set warnings 2010-08-09 20:44:58 -07:00
pgtable_types.h Merge branch 'bugfix' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen into x86/urgent 2009-09-23 14:35:10 +02:00
pgtable-2level_types.h
pgtable-2level.h
pgtable-3level_types.h
pgtable-3level.h
pgtable.h x86, mm: is_untracked_pat_range() takes a normal semiclosed range 2009-11-23 17:09:59 -08:00
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h
processor-cyrix.h
processor-flags.h
processor.h x86: Fix keeping track of AMD C1E 2010-08-02 08:45:56 -07:00
proto.h Move round_up/down to kernel.h 2010-02-12 09:42:39 -08:00
ptrace-abi.h x86, perf, bts, mm: Delete the never used BTS-ptrace code 2010-03-26 11:33:55 +01:00
ptrace.h x86, perf, bts, mm: Delete the never used BTS-ptrace code 2010-03-26 11:33:55 +01:00
pvclock-abi.h x86, paravirt: don't compute pvclock adjustments if we trust the tsc 2010-05-19 11:41:05 +03:00
pvclock.h x86, paravirt: Enable pvclock flags in vcpu_time_info structure 2010-05-19 11:40:59 +03:00
reboot_fixups.h
reboot.h
required-features.h x86, cpu: Support the features flags in new CPUID leaf 7 2010-07-07 17:29:18 -07:00
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h x86, rwsem: Minor cleanups 2010-07-20 17:41:14 -07:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h x86-64: align RODATA kernel section to 2MB with CONFIG_DEBUG_RODATA 2009-10-20 14:46:00 +09:00
segment.h
sembuf.h
serial.h
setup_arch.h
setup.h support multiple .discard.* sections to avoid section type conflicts 2010-07-27 22:45:19 -07:00
shmbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
shmparam.h
sigcontext32.h
sigcontext.h tree-wide: fix misspelling of "definition" in comments 2009-12-04 23:41:47 +01:00
sigframe.h
siginfo.h
signal.h
smp.h x86, lib: Add wbinvd smp helpers 2010-01-22 16:05:42 -08:00
smpboot_hooks.h
socket.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sockios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sparsemem.h
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
srat.h
stackprotector.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02:00
stacktrace.h perf: Drop the skip argument from perf_arch_fetch_regs_caller 2010-06-08 23:31:27 +02:00
stat.h
statfs.h
string_32.h x86: Use __builtin_memset and __builtin_memcpy for memset/memcpy 2009-09-28 16:43:15 -07:00
string_64.h
string.h
suspend_32.h PM / x86: Save/restore MISC_ENABLE register 2010-06-08 00:32:49 +02:00
suspend_64.h PM / x86: Save/restore MISC_ENABLE register 2010-06-08 00:32:49 +02:00
suspend.h
svm.h KVM: x86: Push potential exception error code on task switches 2010-05-17 12:17:46 +03:00
swab.h
swiotlb.h x86: Split swiotlb initialization into two stages 2009-12-15 13:01:57 +01:00
sync_bitops.h
sys_ia32.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
syscall.h tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
syscalls.h Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
system_64.h
system.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-08-04 11:47:58 -07:00
tce.h
termbits.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
termios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
thread_info.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2010-05-28 16:14:17 -07:00
time.h x86: Move get/set_wallclock to x86_platform_ops 2009-09-16 14:34:50 +02:00
timer.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
timex.h
tlb.h
tlbflush.h
topology.h numa: x86_64: use generic percpu var numa_node_id() implementation 2010-05-27 09:12:57 -07:00
trampoline.h x86-32: Fix dummy trampoline-related inline stubs 2010-08-18 12:42:24 -07:00
traps.h x86: Merge simd_math_error() into math_error() 2010-05-03 13:39:29 -07:00
tsc.h x86, tsc, sched: Recompute cyc2ns_offset's during resume from sleep states 2010-08-20 14:59:02 +02:00
types.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
uaccess_32.h x86: copy_from_user() should not return -EFAULT 2010-01-05 13:45:06 -08:00
uaccess_64.h Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-02-28 10:35:09 -08:00
uaccess.h x86, 64-bit: Move K8 B step iret fixup to fault entry asm 2009-10-12 18:29:46 +02:00
ucontext.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
unaligned.h
unistd_32.h Merge branch 'writable_limits' of git://decibel.fi.muni.cz/~xslaby/linux 2010-08-10 12:07:51 -07:00
unistd_64.h Merge branch 'writable_limits' of git://decibel.fi.muni.cz/~xslaby/linux 2010-08-10 12:07:51 -07:00
unistd.h
user32.h
user_32.h
user_64.h
user.h x86, ptrace: regset extensions to support xstate 2010-02-11 15:08:17 -08:00
vdso.h
vga.h
vgtod.h time: Introduce CLOCK_REALTIME_COARSE 2009-08-21 21:43:46 +02:00
virtext.h
vm86.h
vmi_time.h
vmi.h
vmx.h KVM: VMX: Enable XSAVE/XRSTOR for guest 2010-08-01 10:46:31 +03:00
vsyscall.h
x86_init.h x86: Add i8042 pre-detection hook to x86_platform_ops 2010-07-07 17:05:06 -07:00
xcr.h
xor_32.h
xor_64.h
xor.h
xsave.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00