WSL2-Linux-Kernel/arch/s390/include/asm
Michael Holzheu b2a68c2356 s390: allow absolute memory access for /dev/mem
Currently dev/mem for s390 provides only real memory access. This means
that the CPU prefix pages are swapped. The prefix swap for real memory
works as follows:

Each CPU owns a prefix register that points to a page aligned memory
location "P". If this CPU accesses the address range [0,0x1fff], it is
translated by the hardware to [P,P+0x1fff]. Accordingly if this CPU
accesses the address range [P,P+0x1fff], it is translated by the hardware
to [0,0x1fff].  Therefore, if [P,P+0x1fff] or [0,0x1fff] is read from
the current /dev/mem device, the incorrectly swapped memory content is
returned.

With this patch the /dev/mem architecture code is modified to provide
absolute memory access. This is done via the arch specific functions
xlate_dev_mem_ptr() and unxlate_dev_mem_ptr(). For swapped pages on
s390 the function xlate_dev_mem_ptr() now returns a new buffer with a
copy of the requested absolute memory. In case the buffer was allocated,
the unxlate_dev_mem_ptr() function frees it after /dev/mem code has
called copy_to_user().

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2012-05-16 14:42:38 +02:00
..
Kbuild KVM: S390: Export kvm_virtio.h 2010-10-24 10:51:30 +02:00
airq.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
appldata.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
auxvec.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
barrier.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
bitops.h asm-generic: add another generic ext2 atomic bitops 2011-07-26 16:49:46 -07:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h [S390] net: provide architecture specific NET_SKB_PAD 2011-02-17 13:13:59 +01:00
cacheflush.h module: undo module RONX protection correctly. 2011-05-19 16:55:26 +09:30
ccwdev.h [S390] fix mismatch in summation of I/O IRQ statistics 2011-10-30 15:16:15 +01:00
ccwgroup.h [S390] ccwgroup_driver: remove duplicate members 2011-03-23 10:15:59 +01:00
checksum.h [S390] convert/optimize csum_fold() to C 2009-09-11 10:29:43 +02:00
chpid.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
chsc.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
cio.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cmb.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
cmpxchg.h [S390] percpu: implement arch specific irqsafe_cpu_ops 2011-05-23 10:24:29 +02:00
compat.h compat: fix compile breakage on s390 2012-02-27 07:54:27 -08:00
cpcmd.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
cpu.h [S390] correct alignment of cpuid structure 2010-10-25 16:10:19 +02:00
cpu_mf.h [S390] Fix build errors (fallout from system.h disintegration) 2012-03-30 09:41:12 +02:00
cputime.h [S390] rework idle code 2012-03-11 11:59:28 -04:00
crw.h [S390] cio: wait for channel report 2010-02-26 22:37:29 +01:00
ctl_reg.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
current.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
dasd.h [S390] dasd: Add support for raw ECKD access. 2011-01-05 12:47:30 +01:00
debug.h [S390] kernel: Add z/VM LGR detection 2012-03-11 11:59:29 -04:00
delay.h [S390] delay: implement ndelay 2011-05-26 09:48:25 +02:00
device.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
diag.h [S390] replace diag10() with diag10_range() function 2011-05-10 17:13:43 +02:00
div64.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
dma.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ebcdic.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
elf.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
emergency-restart.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
errno.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
etr.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
exec.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
extmem.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
facility.h [S390] Fix stfle() lowcore protection problem 2012-04-11 14:28:26 +02:00
fb.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
fcntl.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
fcx.h [S390] cio: update sac values 2008-12-25 13:39:06 +01:00
ftrace.h ftrace/s390: mcount offset calculation 2011-05-16 15:05:06 -04:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
hardirq.h [S390] irq: set __ARCH_IRQ_EXIT_IRQS_DISABLED 2012-03-11 11:59:28 -04:00
hugetlb.h [S390] Remove data execution protection 2011-05-23 10:24:28 +02:00
idals.h [S390] dasd: add High Performance FICON support 2009-03-26 15:24:05 +01:00
io.h s390: allow absolute memory access for /dev/mem 2012-05-16 14:42:38 +02:00
ioctl.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ioctls.h ioctl: Use asm-generic/ioctls.h on s390 (enables termiox) 2010-10-22 10:20:01 -07:00
ipcbuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
ipl.h [S390] kernel: Add z/VM LGR detection 2012-03-11 11:59:29 -04:00
irq.h [S390] oprofile: Allow multiple users of the measurement alert interrupt 2012-03-23 11:13:24 +01:00
irq_regs.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
irqflags.h [S390] irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-24 10:48:00 +02:00
isc.h [S390] zcrypt: Use of Thin Interrupts 2008-12-25 13:38:57 +01:00
itcw.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
kdebug.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
kexec.h kdump: define KEXEC_NOTE_BYTES arch specific for s390x 2012-01-23 08:38:48 -08:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h [S390] kprobes: jprobe save and restore 2011-01-05 12:47:24 +01:00
kvm.h KVM: s390: provide control registers via kvm_run 2012-03-08 14:10:18 +02:00
kvm_host.h KVM: Introduce kvm_memory_slot::arch and move lpage_info into it 2012-03-08 14:10:22 +02:00
kvm_para.h KVM: Add __KERNEL__ guards to exported headers 2009-09-10 10:46:48 +03:00
kvm_virtio.h KVM: S390: Add virtio hotplug add support 2010-10-24 10:51:29 +02:00
linkage.h [S390] fix s390 assembler code alignments 2011-07-24 10:48:21 +02:00
local.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
lowcore.h [S390] Ensure that vmcore_info pointer is never accessed directly 2012-03-11 11:59:30 -04:00
mathemu.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
mman.h UAPI: Split trivial #if defined(__KERNEL__) && X conditionals 2011-12-13 15:07:49 +00:00
mmu.h [S390] Fix build errors (fallout from system.h disintegration) 2012-03-30 09:41:12 +02:00
mmu_context.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
module.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
monwriter.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
msgbuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
mutex.h [S390] mutex: Introduce arch_mutex_cpu_relax() 2011-01-05 12:47:31 +01:00
nmi.h [S390] split/move machine check handler code 2009-03-26 15:24:10 +01:00
os_info.h [S390] kernel: Add OS info memory interface 2012-03-11 11:59:29 -04:00
page.h [S390] sparse: fix sparse warnings about missing prototypes 2011-10-30 15:16:46 +01:00
param.h [S390] Have param.h simply include <asm-generic/param.h>. 2010-01-04 09:05:58 +01:00
pci.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
percpu.h percpu: Remove irqsafe_cpu_xxx variants 2011-12-22 10:40:20 -08:00
perf_event.h [S390] perf: add support for s390x CPU counters 2012-03-23 11:13:25 +01:00
pgalloc.h [S390] fix tlb flushing for page table pages 2012-04-11 14:28:24 +02:00
pgtable.h [S390] add support for physical memory > 4TB 2011-12-27 11:27:10 +01:00
poll.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
posix_types.h s390: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
processor.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
ptrace.h Audit: push audit success and retcode into arch ptrace.h 2012-01-17 16:16:56 -05:00
qdio.h s390/qdio: Cleanup error handling to drivers 2012-05-16 14:42:36 +02:00
qeth.h qeth: add query OSA address table support 2012-02-08 18:50:20 -05:00
reset.h [S390] kdump backend code 2011-10-30 15:16:42 +01:00
resource.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
rwsem.h rwsem: Move duplicate function prototypes to linux/rwsem.h 2011-01-27 12:30:39 +01:00
scatterlist.h [S390] set ARCH_HAS_SG_CHAIN for s390 2010-10-25 16:10:15 +02:00
schid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
sclp.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
scsw.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
seccomp.h [S390] secure computing arch backend 2009-06-12 10:27:31 +02:00
sections.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
segment.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sembuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
setup.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
sfp-machine.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sfp-util.h [S390] sparse: fix sparse warnings in math-emu 2011-10-30 15:16:46 +01:00
shmbuf.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
shmparam.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
sigcontext.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
siginfo.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
socket.h net: Add framework to allow sending packets with customized CRC. 2012-02-24 01:37:35 -08:00
sockios.h [S390] use generic sockios.h header file 2009-12-07 12:51:37 +01:00
sparsemem.h [S390] add support for physical memory > 4TB 2011-12-27 11:27:10 +01:00
spinlock.h [S390] sparse: fix sparse warnings about missing prototypes 2011-10-30 15:16:46 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
stat.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h [S390] use compiler builtin versions of strlen/strcpy/strcat 2009-03-26 15:24:24 +01:00
swab.h [S390] Fix compile error in swab.h 2012-04-11 14:28:26 +02:00
switch_to.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
syscall.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
sysinfo.h [S390] topology: move topology sysinfo code 2010-10-25 16:10:21 +02:00
tape390.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
termbits.h [S390] use generic termbits.h header file 2009-12-07 12:51:37 +01:00
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h freezer: remove now unused TIF_FREEZE 2011-11-21 12:32:25 -08:00
timer.h [S390] rework idle code 2012-03-11 11:59:28 -04:00
timex.h [S390] avoid STCKF if running in ESA mode 2011-11-14 11:19:09 +01:00
tlb.h [S390] fix tlb flushing for page table pages 2012-04-11 14:28:24 +02:00
tlbflush.h [S390] add missing __tlb_flush_global() for !CONFIG_SMP 2011-10-30 15:16:47 +01:00
topology.h [S390] topology: increase poll frequency if change is anticipated 2011-12-27 11:27:12 +01:00
types.h consolidate umode_t declarations 2012-01-03 22:55:17 -05:00
uaccess.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
ucontext.h [S390] 64-bit register support for 31-bit processes 2009-10-06 10:35:10 +02:00
unaligned.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
unistd.h [S390] ipc: call generic sys_ipc demultiplexer 2011-12-27 11:27:13 +01:00
user.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
vdso.h [S390] rework smp code 2012-03-11 11:59:28 -04:00
vtoc.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
xor.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00
zcrypt.h [S390] move include/asm-s390 to arch/s390/include/asm 2008-08-01 20:42:05 +02:00