kernel-ark/include/asm-s390
Martin Schwidefsky 0d01792300 [S390] pud_present/pmd_present bug.
Git commit 3610cce87a (yeah my own :-/)
introduced a bug in regard to pud/pmd table entries.
If the address of the page table refered to by a pud/pmd value happens
to have zeroes in the lower 32 bits, pud_present and pmd_present return
false. The obvious effect is that this triggers the BUG_ON in exit_mmap
because some ptes will not get released on process end.  Worse is that
the next fault for memory covered by that pud/pmd will allocate another
pmd/pte table and populate the pud/pmd entry. The old page table
entries hanging below this entry are lost!

The fix is simple, properly check against 0. The check is added for
pud_none/pmd_none as well even if these two functions work because
the invalid bit is in the lower 32 bits.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2007-12-17 16:25:56 +01:00
..
a.out.h
appldata.h
atomic.h
auxvec.h
bitops.h
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h
ccwdev.h
ccwgroup.h
checksum.h
chpid.h
cio.h
cmb.h
compat.h
cpcmd.h
cpu.h
cputime.h
current.h
dasd.h
debug.h
delay.h
device.h
diag.h
div64.h
dma.h
ebcdic.h
elf.h
emergency-restart.h
errno.h
etr.h
extmem.h
fb.h
fcntl.h
futex.h
hardirq.h
idals.h
io.h
ioctl.h
ioctls.h
ipcbuf.h
ipl.h
irq_regs.h
irq.h
irqflags.h
Kbuild
kdebug.h
kexec.h
kmap_types.h
kprobes.h
linkage.h
local.h
lowcore.h
mathemu.h
mman.h
mmu_context.h
mmu.h
module.h
monwriter.h
msgbuf.h
mutex.h
namei.h
page.h
param.h
pci.h
percpu.h
pgalloc.h
pgtable.h
poll.h
posix_types.h
processor.h
ptrace.h
qdio.h
qeth.h
reset.h
resource.h
rwsem.h
s390_ext.h
s390_rdev.h
scatterlist.h
sclp.h
sections.h
segment.h
semaphore.h
sembuf.h
setup.h
sfp-machine.h
sfp-util.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sigp.h
smp.h
socket.h
sockios.h
spinlock_types.h
spinlock.h
stat.h
statfs.h
string.h
suspend.h
system.h
tape390.h
termbits.h
termios.h
thread_info.h
timer.h
timex.h
tlb.h
tlbflush.h
todclk.h
topology.h
types.h
uaccess.h
ucontext.h
unaligned.h
unistd.h
user.h
vtoc.h
xor.h
zcrypt.h