kernel-fxtec-pro1x/arch/x86/include/asm
H. Peter Anvin 1838ef1d78 x86-64, rwsem: 64-bit xadd rwsem implementation
For x86-64, 32767 threads really is not enough.  Change rwsem_count_t
to a signed long, so that it is 64 bits on x86-64.

This required the following changes to the assembly code:

a) %z0 doesn't work on all versions of gcc!  At least gcc 4.4.2 as
   shipped with Fedora 12 emits "ll" not "q" for 64 bits, even for
   integer operands.  Newer gccs apparently do this correctly, but
   avoid this problem by using the _ASM_ macros instead of %z.
b) 64 bits immediates are only allowed in "movq $imm,%reg"
   constructs... no others.  Change some of the constraints to "e",
   and fix the one case where we would have had to use an invalid
   immediate -- in that case, we only care about the upper half
   anyway, so just access the upper half.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <tip-bafaecd11df15ad5b1e598adc7736afcd38ee13d@git.kernel.org>
2010-01-18 14:00:34 -08:00
..
uv gru: function to generate chipset IPI values 2009-12-16 07:20:17 -08:00
visws
xen
a.out-core.h
a.out.h
acpi.h ACPI: processor: finish unifying arch_acpi_processor_init_pdc() 2009-12-22 03:24:13 -05:00
aes.h
agp.h
alternative-asm.h
alternative.h x86-64: Modify copy_user_generic() alternatives mechanism 2009-12-30 11:57:31 +01:00
amd_iommu.h
amd_iommu_proto.h x86/amd-iommu: Fix PCI hotplug with passthrough mode 2009-12-10 12:23:47 +01:00
amd_iommu_types.h
apic.h
apicdef.h
apm.h
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h
atomic.h x86: Merge asm/atomic_{32,64}.h 2010-01-07 11:48:38 -08:00
atomic64_32.h x86: Split atomic64_t functions into seperate headers 2010-01-07 11:47:31 -08:00
atomic64_64.h x86: Split atomic64_t functions into seperate headers 2010-01-07 11:47:31 -08:00
auxvec.h
bios_ebda.h
bitops.h
bitsperlong.h
boot.h
bootparam.h
bug.h x86: Convert BUG() to use unreachable() 2009-12-05 09:10:12 -08:00
bugs.h
byteorder.h
cache.h
cacheflush.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
calgary.h
calling.h
checksum.h
checksum_32.h
checksum_64.h
cmpxchg.h
cmpxchg_32.h Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-05 15:32:03 -08:00
cmpxchg_64.h
compat.h
cpu.h
cpu_debug.h
cpufeature.h x86, amd: Get multi-node CPU info from NodeId MSR instead of PCI config space 2009-12-16 15:06:23 -08:00
cpumask.h
cputime.h
current.h
debugreg.h
delay.h
desc.h
desc_defs.h
device.h
div64.h
dma-mapping.h dma-mapping: fix off-by-one error in dma_capable() 2009-12-16 07:20:12 -08:00
dma.h
dmi.h
ds.h
dwarf2.h
e820.h
edac.h
efi.h
elf.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
emergency-restart.h
entry_arch.h
errno.h
fb.h
fcntl.h
fixmap.h x86: Lift restriction on the location of FIX_BTMAP_* 2009-12-30 11:57:30 +01:00
floppy.h
frame.h
ftrace.h
futex.h
gart.h
genapic.h
geode.h cs5535: drop the Geode-specific MFGPT/GPIO code 2009-12-15 08:53:28 -08:00
gpio.h
hardirq.h Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:38:21 -08:00
highmem.h
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86, irq: Allow 0xff for /proc/irq/[n]/smp_affinity on an 8-cpu system 2009-12-17 22:03:06 -08:00
hypertransport.h
hypervisor.h
i387.h
i8253.h
i8259.h
ia32.h
ia32_unistd.h
idle.h
inat.h
inat_types.h
init.h
insn.h
inst.h
io.h
io_32.h
io_64.h
io_apic.h
ioctl.h
ioctls.h
iomap.h
iommu.h
ipcbuf.h
ipi.h
irq.h Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:38:21 -08:00
irq_regs.h
irq_remapping.h
irq_vectors.h x86: Fix duplicated UV BAU interrupt vector 2009-12-13 08:17:40 +01:00
irqflags.h
ist.h
k8.h
Kbuild
kdebug.h
kexec.h
kgdb.h
kmap_types.h
kmemcheck.h
kprobes.h
kvm.h
kvm_emulate.h
kvm_host.h
kvm_para.h
ldt.h
lguest.h
lguest_hcall.h
linkage.h
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mca.h
mca_dma.h
mce.h
microcode.h
mman.h
mmconfig.h
mmu.h
mmu_context.h
mmx.h
mmzone.h
mmzone_32.h
mmzone_64.h
module.h
mpspec.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
mpspec_def.h
msgbuf.h
msidef.h
msr-index.h x86, amd: Get multi-node CPU info from NodeId MSR instead of PCI config space 2009-12-16 15:06:23 -08:00
msr.h x86, msr: msrs_alloc/free for CONFIG_SMP=n 2009-12-16 15:36:32 -08:00
mtrr.h
mutex.h
mutex_32.h
mutex_64.h
nmi.h
nops.h
numa.h
numa_32.h
numa_64.h
numaq.h
olpc.h ALSA: cs5535audio: free OLPC quirks from reliance on MGEODE_LX cpu optimization 2009-12-15 08:53:27 -08:00
page.h
page_32.h
page_32_types.h
page_64.h
page_64_types.h
page_types.h
param.h
paravirt.h locking: Convert __raw_spin* functions to arch_spin* 2009-12-14 23:55:32 +01:00
paravirt_types.h locking: Convert raw_spinlock to arch_spinlock 2009-12-14 23:55:32 +01:00
parport.h
pat.h
pci-direct.h
pci-functions.h
pci.h
pci_64.h
pci_x86.h
percpu.h
perf_event.h
pgalloc.h
pgtable-2level.h
pgtable-2level_types.h
pgtable-3level.h
pgtable-3level_types.h
pgtable.h
pgtable_32.h
pgtable_32_types.h
pgtable_64.h
pgtable_64_types.h
pgtable_types.h
poll.h
posix_types.h
posix_types_32.h
posix_types_64.h
prctl.h
processor-cyrix.h
processor-flags.h
processor.h x86, cpuid: Add "volatile" to asm in native_cpuid() 2009-12-16 16:30:57 -08:00
proto.h
ptrace-abi.h
ptrace.h ptrace: x86: implement user_single_step_siginfo() 2009-12-16 07:20:08 -08:00
pvclock-abi.h
pvclock.h
rdc321x_defs.h
reboot.h
reboot_fixups.h
required-features.h
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h x86-64, rwsem: 64-bit xadd rwsem implementation 2010-01-18 14:00:34 -08:00
scatterlist.h
seccomp.h
seccomp_32.h
seccomp_64.h
sections.h
segment.h
sembuf.h
serial.h
setup.h
setup_arch.h
shmbuf.h
shmparam.h
sigcontext.h
sigcontext32.h
sigframe.h
siginfo.h
signal.h
smp.h
smpboot_hooks.h
socket.h
sockios.h
sparsemem.h
spinlock.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
srat.h
stackprotector.h
stacktrace.h perf events, x86/stacktrace: Fix performance/softlockup by providing a special frame pointer-only stack walker 2009-12-17 10:42:52 +01:00
stat.h
statfs.h
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h
suspend_64.h
svm.h
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 sanitize do_pipe_flags() callers in arch 2009-12-16 12:16:40 -05:00
syscall.h
syscalls.h Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-16 12:02:37 -08:00
system.h x86: Factor duplicated code out of __show_regs() into show_regs_common() 2009-12-09 10:17:58 +01:00
system_64.h
tce.h
termbits.h
termios.h
thread_info.h
time.h
timer.h
timex.h
tlb.h
tlbflush.h
topology.h hugetlb: add generic definition of NUMA_NO_NODE 2009-12-15 08:53:12 -08:00
trampoline.h x86: Use find_e820() instead of hard coded trampoline address 2009-12-11 09:28:22 +01:00
traps.h
tsc.h
types.h
uaccess.h
uaccess_32.h
uaccess_64.h x86-64: Modify copy_user_generic() alternatives mechanism 2009-12-30 11:57:31 +01:00
ucontext.h
unaligned.h
unistd.h
unistd_32.h
unistd_64.h
user.h
user32.h
user_32.h
user_64.h
vdso.h
vga.h
vgtod.h
virtext.h
vm86.h
vmi.h
vmi_time.h
vmware.h
vmx.h
vsyscall.h
x86_init.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
xcr.h
xor.h
xor_32.h
xor_64.h
xsave.h