linux/arch/x86/include/asm
Chris Lalancette 2c75910f1a x86: Make sure get_user_desc() doesn't sign extend.
The current implementation of get_user_desc() sign extends the return
value because of integer promotion rules.  For the most part, this
doesn't matter, because the top bit of base2 is usually 0.  If, however,
that bit is 1, then the entire value will be 0xffff...  which is
probably not what the caller intended.

This patch casts the entire thing to unsigned before returning, which
generates almost the same assembly as the current code but replaces the
final "cltq" (sign extend) with a "mov %eax %eax" (zero-extend).  This
fixes booting certain guests under KVM.

Signed-off-by: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-11-05 13:22:18 -08:00
..
uv x86, UV: Set DELIVERY_MODE=4 for vector=NMI_VECTOR in uv_hub_send_ipi() 2009-10-21 13:31:13 +02:00
visws
xen
a.out-core.h
a.out.h
acpi.h ACPI: Handle CONFIG_ACPI=n better from linux/acpi.h 2009-08-28 19:57:29 -04: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
alternative.h x86: properly annotate alternatives.c 2009-08-21 15:30:12 -07:00
amd_iommu_types.h Merge branch 'amd-iommu/pagetable' into amd-iommu/2.6.32 2009-09-03 17:14:57 +02:00
amd_iommu.h Merge branches 'amd-iommu/fixes' and 'dma-debug/fixes' into iommu/fixes 2009-11-03 12:05:40 +01:00
apic.h Merge branch 'linus' into x86/urgent 2009-09-20 20:25:03 +02:00
apicdef.h Merge branch 'kvm-updates/2.6.32' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2009-09-14 17:43:43 -07:00
apicnum.h
apm.h
asm.h x86, asm: Make _ASM_EXTABLE() usable from assembly code 2009-08-31 15:14:30 -07:00
atomic_32.h x86: atomic64: Inline atomic64_read() again 2009-07-04 11:45:00 +02:00
atomic_64.h x86: atomic64: Code atomic(64)_read and atomic(64)_set in C not CPP 2009-07-03 14:42:39 +02:00
atomic.h
auxvec.h
bios_ebda.h
bitops.h
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
boot.h x86, setup: correct include file in <asm/boot.h> 2009-06-25 15:16:06 -07:00
bootparam.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
bug.h
bugs.h
byteorder.h
cache.h Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
cacheflush.h x86, pat: Use page flags to track memtypes of RAM pages 2009-08-26 15:41:24 -07:00
calgary.h
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: Provide an alternative() based cmpxchg64() 2009-09-30 22:55:59 +02:00
cmpxchg_64.h
cmpxchg.h
compat.h
cpu_debug.h x86: cpu_debug: Remove model information to reduce encoding-decoding 2009-06-07 12:22:56 +02:00
cpu.h
cpufeature.h x86: Move APERF/MPERF into a X86_FEATURE 2009-09-15 16:51:25 +02: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
delay.h
desc_defs.h x86: Introduce GDT_ENTRY_INIT() 2009-08-08 17:44:11 +02:00
desc.h x86: Make sure get_user_desc() doesn't sign extend. 2009-11-05 13:22:18 -08:00
device.h Driver Core: Add platform device arch data V3 2009-07-22 00:28:38 +02:00
div64.h
dma-mapping.h x86, IA64, powerpc: add phys_to_dma() and dma_to_phys() 2009-07-28 14:19:20 +09:00
dma.h
dmi.h
ds.h
dwarf2.h x86, asm: Add 32-bit versions of the combined CFI macros 2009-08-31 15:14:29 -07:00
e820.h x86: Move memory_setup to x86_init_ops 2009-08-27 17:12:52 +02: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: Increase MIN_GAP to include randomized stack 2009-09-10 17:00:12 -07:00
emergency-restart.h
entry_arch.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
errno.h
fb.h
fcntl.h
fixmap.h x86, intel_txt: Intel TXT boot support 2009-07-21 11:49:06 -07: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
genapic.h
geode.h
gpio.h
hardirq.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
highmem.h
hpet.h
hugetlb.h
hw_irq.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
hypertransport.h
hypervisor.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
i387.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:58:08 -07:00
i8253.h
i8259.h
ia32_unistd.h
ia32.h
idle.h
init.h
io_32.h
io_64.h
io_apic.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
io.h
ioctl.h
ioctls.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
iomap.h x86, pat: Add PAT reserve free to io_mapping* APIs 2009-08-26 15:41:16 -07:00
iommu.h
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 Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
irq.h x86: Move irq_init to x86_init_ops 2009-08-31 09:35:45 +02:00
irqflags.h x86: allow "=rm" in native_save_fl() 2009-08-25 16:47:16 -07:00
ist.h
k8.h
Kbuild
kdebug.h
kexec.h
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kmemcheck.h kmemcheck: add the kmemcheck core 2009-06-13 15:37:30 +02:00
kprobes.h
kvm_emulate.h KVM: Rename x86_emulate.c to emulate.c 2009-09-10 10:46:45 +03:00
kvm_host.h KVM: add support for change_pte mmu notifiers 2009-10-04 17:04:53 +02:00
kvm_para.h KVM: Add missing #include 2009-09-10 10:46:49 +03:00
kvm.h KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
ldt.h
lguest_hcall.h lguest: update commentry 2009-07-30 16:03:46 +09:30
lguest.h Merge commit 'origin/x86/urgent' into x86/asm 2009-08-25 15:40:29 -07:00
linkage.h
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mca_dma.h
mca.h
mce.h x86: EDAC: MCE: Fix MCE decoding callback logic 2009-10-02 15:42:18 +02:00
microcode.h x86: microcode: use smp_call_function_single instead of set_cpus_allowed, cleanup of synchronization logic 2009-05-12 10:36:44 +02: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
mmzone_64.h
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: Move get/find_smp_config to x86_init_ops 2009-08-31 09:35:45 +02:00
msgbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -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 2009-09-17 21:07:08 -07:00
msr.h x86, msr: Export the register-setting MSR functions via /dev/*/msr 2009-08-31 16:16:04 -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 sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07: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, mm: Fix node_possible_map logic 2009-05-18 09:21:04 +02:00
numa.h
numaq.h
olpc.h
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
page.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
param.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
paravirt_types.h x86/paravirt: Use normal calling sequences for irq enable/disable 2009-10-13 09:22:01 +02:00
paravirt.h x86/paravirt: Use normal calling sequences for irq enable/disable 2009-10-13 09:22:01 +02:00
parport.h
pat.h x86, pat: New i/f for driver to request memtype for IO regions 2009-08-26 15:41:10 -07:00
pci_64.h
pci_x86.h Revert "PCI: use ACPI _CRS data by default" 2009-06-24 16:23:03 -07:00
pci-direct.h
pci-functions.h
pci.h x86/PCI: default pcibus cpumask to all cpus if it lacks affinity 2009-09-18 08:51:10 -07:00
percpu.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
perf_event.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
pgalloc.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable_32_types.h module: merge module_alloc() finally 2009-06-12 21:47:03 +09:30
pgtable_32.h x86: Add NMI types for kmap_atomic, fix 2009-06-15 17:20:03 +02:00
pgtable_64_types.h
pgtable_64.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -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 Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07: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, fs: Fix x86 procfs stack information for threads on 64-bit 2009-11-04 13:25:03 +01:00
proto.h x86: fix power-of-2 round_up/round_down macros 2009-07-02 12:05:10 -07:00
ptrace-abi.h
ptrace.h Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 19:53:40 -07:00
pvclock-abi.h
pvclock.h
rdc321x_defs.h
reboot_fixups.h
reboot.h
required-features.h
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h
scatterlist.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h
segment.h
sembuf.h
serial.h
setup_arch.h
setup.h x86: Add Moorestown early detection 2009-08-31 11:09:40 +02:00
shmbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
shmparam.h
sigcontext32.h
sigcontext.h
sigframe.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h cpumask: remove arch_send_call_function_ipi 2009-09-24 09:34:47 +09:30
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
spinlock.h memory barrier: adding smp_mb__after_lock 2009-07-09 17:06:58 -07: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_counter: Ignore the nmi call frames in the x86-64 backtraces 2009-07-01 22:37:23 +02:00
stat.h
statfs.h
string_32.h x86: Trivial whitespace cleanups 2009-09-20 20:18:57 +02:00
string_64.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
string.h
suspend_32.h
suspend_64.h
suspend.h
svm.h KVM: Fix unneeded instruction skipping during task switching. 2009-06-10 11:48:38 +03:00
swab.h
swiotlb.h
sync_bitops.h
sys_ia32.h
syscall.h x86: syscall_get_nr returns int 2009-09-22 19:57:51 -07:00
syscalls.h
system_64.h
system.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02: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 'x86-percpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 08:01:28 -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 time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
tlb.h
tlbflush.h x86: make zap_low_mapping could be used early 2009-06-12 13:50:24 +03:00
topology.h sched: Disable SD_PREFER_LOCAL at node level 2009-11-03 07:24:07 +01:00
trampoline.h
traps.h x86: Remove unused patch_espfix_desc() 2009-07-19 18:27:52 +02:00
tsc.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
types.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
uaccess_32.h x86: Fix uaccess_32.h typo 2009-09-20 20:19:34 +02:00
uaccess_64.h x86: Fix movq immediate operand constraints in uaccess_64.h 2009-07-20 20:46:17 -07:00
uaccess.h x86: Fix movq immediate operand constraints in uaccess.h 2009-07-20 23:27:39 -07:00
ucontext.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
unaligned.h
unistd_32.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
unistd_64.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
unistd.h
user32.h
user_32.h
user_64.h
user.h
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
vmware.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
vmx.h KVM: VMX: more MSR_IA32_VMX_EPT_VPID_CAP capability bits 2009-09-10 08:32:55 +03:00
vsyscall.h
x86_init.h x86: Move get/set_wallclock to x86_platform_ops 2009-09-16 14:34:50 +02:00
xcr.h
xor_32.h
xor_64.h
xor.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
xsave.h