linux/include/asm-generic
David Miller 4dc59be503 mm: Fix generic hugetlb pte check return type.
[ Upstream commit 2679494246 ]

The include/asm-generic/hugetlb.h stubs that just vector huge_pte_*()
calls to the pte_*() implementations won't work in certain situations.

x86 and sparc, for example, return "unsigned long" from the bit
checks, and just go "return pte_val(pte) & PTE_BIT_FOO;"

But since huge_pte_*() returns 'int', if any high bits on 64-bit are
relevant, they get chopped off.

The net effect is that we can loop forever trying to COW a huge page,
because the huge_pte_write() check signals false all the time.

Reported-by: Gurudas Pai <gurudas.pai@oracle.com>
Tested-by: Gurudas Pai <gurudas.pai@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-13 16:08:33 -07:00
..
bitops
4level-fixup.h
atomic-long.h
atomic.h asm-generic: move cmpxchg*_local defs to cmpxchg.h 2013-03-13 06:11:05 +01:00
atomic64.h
audit_change_attr.h
audit_dir_write.h
audit_read.h
audit_signal.h
audit_write.h
barrier.h
bitops.h
bitsperlong.h
bug.h
bugs.h
cache.h
cacheflush.h
checksum.h asm-generic headers: Allow yet more arch overrides in checksum.h 2013-02-11 20:00:33 +05:30
clkdev.h
cmpxchg-local.h generic: Use raw local irq variant for generic cmpxchg 2013-02-19 08:43:37 +01:00
cmpxchg.h asm-generic: move cmpxchg*_local defs to cmpxchg.h 2013-03-13 06:11:05 +01:00
cputime_jiffies.h cputime: Move default nsecs_to_cputime() to jiffies based cputime file 2013-01-27 19:23:25 +01:00
cputime_nsecs.h cputime_nsecs: use math64.h for nsec resolution conversion helpers 2013-04-26 18:58:12 +02:00
cputime.h cputime: Generic on-demand virtual cputime accounting 2013-01-27 19:23:27 +01:00
current.h
delay.h
device.h
div64.h
dma-coherent.h
dma-contiguous.h
dma-mapping-broken.h
dma-mapping-common.h
dma.h
emergency-restart.h
exec.h
fb.h
ftrace.h
futex.h
getorder.h
gpio.h gpiolib: let gpio_chip reference its descriptors 2013-02-11 22:21:28 +00:00
hardirq.h
hugetlb.h mm: Fix generic hugetlb pte check return type. 2013-10-13 16:08:33 -07:00
hw_irq.h
ide_iops.h
int-l64.h
int-ll64.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io.h kernel: Fix s390 absolute memory access for /dev/mem 2013-05-22 09:45:57 +02:00
ioctl.h
iomap.h
irq_regs.h
irq.h
irqflags.h
Kbuild.asm
kdebug.h
kmap_types.h
kvm_para.h KVM: add kvm_para_available to asm-generic/kvm_para.h 2013-06-05 13:21:29 +03:00
libata-portmap.h
linkage.h
local.h
local64.h
memory_model.h
mm_hooks.h
mmu_context.h
mmu.h
module.h
mutex-dec.h
mutex-null.h
mutex-xchg.h
mutex.h
page.h
param.h
parport.h
pci_iomap.h
pci-bridge.h
pci-dma-compat.h
pci.h
percpu.h
pgalloc.h
pgtable-nopmd.h
pgtable-nopud.h
pgtable.h mm: allow arch code to control the user page table ceiling 2013-04-29 15:54:34 -07:00
ptrace.h
resource.h
rtc.h
rwsem.h
scatterlist.h
sections.h
segment.h
serial.h
siginfo.h
signal.h
sizes.h
spinlock.h
statfs.h
string.h
switch_to.h
syscall.h
syscalls.h burying unused conditionals 2013-02-14 09:21:15 -05:00
termios-base.h
termios.h
timex.h
tlb.h Fix TLB gather virtual address range invalidation corner cases 2013-08-20 08:43:05 -07:00
tlbflush.h
topology.h
trace_clock.h
uaccess-unaligned.h
uaccess.h asm-generic: uaccess: Allow arches to over-ride __{get,put}_user_fn() 2013-02-11 20:00:32 +05:30
unaligned.h
unistd.h We get rid of the general module prefix confusion with a binary config option, 2013-05-05 10:58:06 -07:00
user.h
vga.h
vmlinux.lds.h CONFIG_SYMBOL_PREFIX: cleanup. 2013-03-15 15:09:43 +10:30
word-at-a-time.h
xor.h