OpenCloudOS-Kernel/include/asm-s390
Martin Schwidefsky 833774849d [S390] Fix pte type checking.
handle_pte_fault uses pte_present, pte_none and pte_file to find out
the type of a pte. That is done without holding the page table lock.
This clashes with the way how ptep_clear_flush removes active page
table entries from the system. First the ipte instruction is used
to invalidate the pte and remove all plt entries for the page. The
ipte sets the hardware invalid bit without changing any other bit.
After the ipte finished the pte is cleared. A concurrent fault can
observe the the previously valid pte with the invalid bit set. With
the current encoding of the different pte types an invalidated
read-only pte can be misinterpreted as a swap-pte.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2006-10-18 18:30:51 +02:00
..
Kbuild [S390] Unexport <asm/z90crypt.h>, export <asm/zcrypt.h> in its place. 2006-09-24 22:07:25 +01:00
a.out.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
appldata.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
atomic.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
auxvec.h [PATCH] auxiliary vector cleanups 2005-09-07 16:57:21 -07:00
bitops.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
bug.h [S390] __builtin_trap() and gcc version. 2006-07-12 16:39:42 +02:00
bugs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
byteorder.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
cache.h [PATCH] s390: add read_mostly optimization 2006-04-28 08:33:48 -07:00
cacheflush.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ccwdev.h [S390] Fix sparse warnings. 2006-07-12 16:41:55 +02:00
ccwgroup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
checksum.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
cio.h [S390] cio: Use ccw_dev_id and subchannel_id in ccw_device_private 2006-10-11 15:31:38 +02:00
cmb.h [S390] rework of channel measurement facility. 2006-06-29 15:08:41 +02:00
compat.h [PATCH] s390: add ptr_to_compat() 2006-03-27 08:44:48 -08:00
cpcmd.h [PATCH] s390: add vmcp interface 2005-06-25 16:24:37 -07:00
cputime.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
current.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dasd.h [S390] add PAV support to the dasd driver. 2006-06-29 15:08:18 +02:00
debug.h [PATCH] Fix 'make headers_check' on s390 2006-09-16 12:54:31 -07:00
delay.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
div64.h [S390] __div64_32 for 31 bit. 2006-09-28 16:55:39 +02:00
dma-mapping.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dma.h [S390] empty function defines. 2006-09-20 15:58:51 +02:00
ebcdic.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
elf.h [PATCH] Fix 'make headers_check' on s390 2006-09-16 12:54:31 -07:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
extmem.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcntl.h [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
futex.h [S390] Make user-copy operations run-time configurable. 2006-09-20 15:59:42 +02:00
hardirq.h [S390] irq change build fixes. 2006-10-06 16:38:35 +02:00
idals.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
io.h [S390] Remove open-coded mem_map usage. 2006-10-04 20:02:23 +02:00
ioctl.h [PATCH] Generic ioctl.h 2006-01-10 08:01:34 -08:00
ioctls.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipcbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.h [PATCH] Make touch_nmi_watchdog imply touch_softlockup_watchdog on all archs 2006-09-29 09:18:05 -07:00
irq_regs.h [S390] irq change build fixes. 2006-10-06 16:38:35 +02:00
irqflags.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
kdebug.h [S390] add kprobes support. 2006-09-20 15:58:39 +02:00
kexec.h [PATCH] Kdump: powerpc and s390 build failure fix 2006-01-10 08:01:27 -08:00
kmap_types.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kprobes.h [S390] add kprobes support. 2006-09-20 15:58:39 +02:00
linkage.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
local.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
lowcore.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
mathemu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mmu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmu_context.h [PATCH] s390: "extern inline" -> "static inline" 2005-11-09 07:55:52 -08:00
module.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
monwriter.h [S390] Linux API for writing z/VM APPLDATA Monitor records. 2006-09-20 15:59:34 +02:00
msgbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mutex.h [PATCH] mutex subsystem, add default include/asm-*/mutex.h files 2006-01-09 15:59:19 -08:00
namei.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
page.h [S390] Remove open-coded mem_map usage. 2006-10-04 20:02:23 +02:00
param.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
percpu.h [PATCH] Fix typo in "syntax error if percpu macros are incorrectly used" patch 2006-10-06 08:53:41 -07:00
pgalloc.h [S390] Remove open-coded mem_map usage. 2006-10-04 20:02:23 +02:00
pgtable.h [S390] Fix pte type checking. 2006-10-18 18:30:51 +02:00
poll.h [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
posix_types.h [S390] __FD_foo definitions. 2006-06-14 14:10:51 +01:00
processor.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
ptrace.h [PATCH] Add regs_return_value() helper 2006-10-02 07:57:16 -07:00
qdio.h fix file specification in comments 2006-10-03 23:01:26 +02:00
qeth.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
resource.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rwsem.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
s390_ext.h [S390] irq change build fixes. 2006-10-06 16:38:35 +02:00
s390_rdev.h [PATCH] s390: email-address change 2006-01-14 18:27:10 -08:00
scatterlist.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sections.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
segment.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
sembuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.h [PATCH] Directed yield: direct yield of spinlocks for s390. 2006-10-01 00:39:22 -07:00
sfp-machine.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
shmbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shmparam.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigcontext.h [PATCH] s390: sigcontext.h vs __user 2006-01-14 18:27:08 -08:00
siginfo.h [PATCH] consolidate SIGEV_PAD_SIZE 2005-05-01 08:59:08 -07:00
signal.h [PATCH] irq-flags: S390: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
sigp.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
smp.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
socket.h [AF_UNIX]: Datagram getpeersec 2006-06-29 16:58:06 -07:00
sockios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spinlock.h [S390] incorrect placement of include. 2006-10-04 20:02:12 +02:00
spinlock_types.h [PATCH] Directed yield: direct yield of spinlocks for s390. 2006-10-01 00:39:22 -07:00
stat.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
statfs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
string.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
suspend.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
system.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
tape390.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
termbits.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
termios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
thread_info.h [S390] preempt_count initialization. 2006-06-29 15:02:47 +02:00
timer.h [S390] irq change improvements. 2006-10-11 15:31:26 +02:00
timex.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
tlb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlbflush.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
todclk.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
topology.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
types.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
uaccess.h [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
ucontext.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unaligned.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unistd.h [S390] Wire up epoll_pwait syscall. 2006-10-18 18:30:45 +02:00
user.h [PATCH] s390: uml ptrace fixes 2005-06-04 17:13:00 -07:00
vtoc.h Use __uXX types for S390 DASD volume label definitions which are user-visible 2006-05-04 01:18:33 +01:00
xor.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
zcrypt.h [S390] zcrypt secure key cryptography extension. 2006-09-20 15:58:36 +02:00