mirror-linux/arch/s390/include/asm
Linus Torvalds 4dfc278803 IOMMU Updates for Linux v4.14
Slightly more changes than usual this time:
 
 	- KDump Kernel IOMMU take-over code for AMD IOMMU. The code now
 	  tries to preserve the mappings of the kernel so that master
 	  aborts for devices are avoided. Master aborts cause some
 	  devices to fail in the kdump kernel, so this code makes the
 	  dump more likely to succeed when AMD IOMMU is enabled.
 
 	- Common flush queue implementation for IOVA code users. The
 	  code is still optional, but AMD and Intel IOMMU drivers had
 	  their own implementation which is now unified.
 
 	- Finish support for iommu-groups. All drivers implement this
 	  feature now so that IOMMU core code can rely on it.
 
 	- Finish support for 'struct iommu_device' in iommu drivers. All
 	  drivers now use the interface.
 
 	- New functions in the IOMMU-API for explicit IO/TLB flushing.
 	  This will help to reduce the number of IO/TLB flushes when
 	  IOMMU drivers support this interface.
 
 	- Support for mt2712 in the Mediatek IOMMU driver
 
 	- New IOMMU driver for QCOM hardware
 
 	- System PM support for ARM-SMMU
 
 	- Shutdown method for ARM-SMMU-v3
 
 	- Some constification patches
 
 	- Various other small improvements and fixes
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJZtCFNAAoJECvwRC2XARrjZnQP/AxC/ezQpq82HbegF4sM/cVE
 Ep7TeTqodEl75FS/6txe2wU0pwodqk/LB9ajfQZUbE1w8vKsNEqi5qf4ZYHGoxYI
 5bWyjJBzKIlwENH5lsBpQNt6XLevrYmRsFy7F0tRYy+qPQq8k+js2i7/XkCL3q7L
 3xklF847RRoITaTOhhaROx1pF23dSMEsS2XGuWHcZfjORtep4wcFKzd/2SvlCWCo
 P2bRU7jBzfJuuGSA80gaiUbDmrULTUfYuZNp7njASzCgsDmagERtvDEpdoXPNNSp
 u6s4LjU1Dp3fgr6g6cFRO7B6JUbWd619nwo9so/c/wZN54yEngBF9EyeeF3mv2O5
 ZbM2mOW3RlZcjxFT/AC8G4cZwwP6MpCEQOdqknoqc6ZQwcDqwN0o9I4+po0wsiAU
 89ijZZe9Mx0p9lNpihaBEB1erAUWPo5Obh62zo80W3h6x9WzkGQWM+PyFK2DYoaC
 8biEZzcc21sLEHvXQkcEGJSKrihHr9sluOqvxmCw5QAkYIFAeZRoeH7JtZWjVCnr
 T3XvaG1G1Aw6tS7ErxufdKawREAGki0Rm9i1baiH9sqNj5rllM01Y+PgU6E21Nbg
 iZp9gJLjfwM4vhYLlovvQK5PRoOBsCkyCpEI4GJqjLeam5p/WN06CFFf0ifQofYr
 qDPCVDkWHWV8nugFFKE7
 =EVh9
 -----END PGP SIGNATURE-----

Merge tag 'iommu-updates-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull IOMMU updates from Joerg Roedel:
 "Slightly more changes than usual this time:

   - KDump Kernel IOMMU take-over code for AMD IOMMU. The code now tries
     to preserve the mappings of the kernel so that master aborts for
     devices are avoided. Master aborts cause some devices to fail in
     the kdump kernel, so this code makes the dump more likely to
     succeed when AMD IOMMU is enabled.

   - common flush queue implementation for IOVA code users. The code is
     still optional, but AMD and Intel IOMMU drivers had their own
     implementation which is now unified.

   - finish support for iommu-groups. All drivers implement this feature
     now so that IOMMU core code can rely on it.

   - finish support for 'struct iommu_device' in iommu drivers. All
     drivers now use the interface.

   - new functions in the IOMMU-API for explicit IO/TLB flushing. This
     will help to reduce the number of IO/TLB flushes when IOMMU drivers
     support this interface.

   - support for mt2712 in the Mediatek IOMMU driver

   - new IOMMU driver for QCOM hardware

   - system PM support for ARM-SMMU

   - shutdown method for ARM-SMMU-v3

   - some constification patches

   - various other small improvements and fixes"

* tag 'iommu-updates-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (87 commits)
  iommu/vt-d: Don't be too aggressive when clearing one context entry
  iommu: Introduce Interface for IOMMU TLB Flushing
  iommu/s390: Constify iommu_ops
  iommu/vt-d: Avoid calling virt_to_phys() on null pointer
  iommu/vt-d: IOMMU Page Request needs to check if address is canonical.
  arm/tegra: Call bus_set_iommu() after iommu_device_register()
  iommu/exynos: Constify iommu_ops
  iommu/ipmmu-vmsa: Make ipmmu_gather_ops const
  iommu/ipmmu-vmsa: Rereserving a free context before setting up a pagetable
  iommu/amd: Rename a few flush functions
  iommu/amd: Check if domain is NULL in get_domain() and return -EBUSY
  iommu/mediatek: Fix a build warning of BIT(32) in ARM
  iommu/mediatek: Fix a build fail of m4u_type
  iommu: qcom: annotate PM functions as __maybe_unused
  iommu/pamu: Fix PAMU boot crash
  memory: mtk-smi: Degrade SMI init to module_init
  iommu/mediatek: Enlarge the validate PA range for 4GB mode
  iommu/mediatek: Disable iommu clock when system suspend
  iommu/mediatek: Move pgtable allocation into domain_alloc
  iommu/mediatek: Merge 2 M4U HWs into one iommu domain
  ...
2017-09-09 15:03:24 -07:00
..
fpu s390/fpu: improve kernel_fpu_[begin|end] 2016-08-29 11:05:01 +02:00
trace s390/zcrypt: tracepoint definitions for zcrypt device driver. 2016-12-14 16:33:40 +01:00
Kbuild s390: use generic asm/unaligned.h 2017-08-03 13:16:28 +02:00
airq.h
appldata.h s390/diag: add a statistic for diagnose calls 2015-10-14 14:32:06 +02:00
archrandom.h s390/crypto: Provide s390 specific arch random functionality. 2017-04-26 13:41:35 +02:00
asm-prototypes.h s390/kbuild: enable modversions for symbols exported from asm 2016-12-20 15:22:56 +01:00
atomic.h s390/atomic: refactor atomic primitives 2016-11-11 16:37:33 +01:00
atomic_ops.h s390/spinlock: use atomic primitives for spinlocks 2017-04-12 08:43:33 +02:00
barrier.h s390: more efficient smp barriers 2016-01-12 20:47:05 +02:00
bitops.h s390/bitops: remove outdated comment 2017-03-22 08:29:05 +01:00
bug.h debug: Fix WARN_ON_ONCE() for modules 2017-07-20 12:31:04 +02:00
bugs.h
cache.h s390: use __section macro everywhere 2016-06-13 15:58:23 +02:00
ccwdev.h
ccwgroup.h
checksum.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
chpid.h
cio.h vfio: ccw: introduce support for ccw0 2017-03-31 12:55:12 +02:00
clp.h s390/pci: add ioctl interface for CLP 2016-03-07 16:54:32 +01:00
cmb.h
cmpxchg.h s390/cmpxchg: remove dead code 2015-10-14 14:32:15 +02:00
compat.h teach SYSCALL_DEFINE/COMPAT_SYSCALL_DEFINE to handle __bitwise arguments 2017-08-31 17:32:37 -04:00
cpacf.h Merge branch 's390forkvm' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into features 2017-04-27 07:34:07 +02:00
cpcmd.h s390/cpcmd,vmcp: avoid GFP_DMA allocations 2017-08-09 09:09:35 -04:00
cpu.h
cpu_mf.h s390/cpu_mf: remove register variable in __ecctr() 2017-03-31 07:53:34 +02:00
cpufeature.h
cputime.h s390/cputime: provide archicture specific cputime_to_nsecs 2017-03-01 09:59:27 +01:00
crw.h s390/cio: Consolidate inline assemblies and related data definitions 2015-12-18 14:59:34 +01:00
css_chars.h
ctl_reg.h KVM: s390: implement instruction execution protection for emulated 2017-06-22 12:41:06 +02:00
current.h
debug.h s390: convert debug_info.ref_count from atomic_t to refcount_t 2017-05-11 16:35:32 +02:00
delay.h
diag.h s390/diag: add diag26c support 2017-06-20 15:44:15 -04:00
dis.h s390/uprobes: fix compile for !KPROBES 2017-05-03 09:08:57 +02:00
dma-mapping.h s390: implement ->mapping_error 2017-06-28 06:54:31 -07:00
dma.h
eadm.h block: introduce new block status code type 2017-06-09 09:27:32 -06:00
ebcdic.h s390: remove asm/mman.h and asm/types.h 2017-08-02 11:15:36 +02:00
elf.h s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
exec.h
extable.h s390: switch to extable.h 2017-03-28 18:23:55 -04:00
extmem.h
facility.h s390/facilities: get rid of __ASSEMBLY__ in facility header file 2017-03-22 08:29:18 +01:00
fcx.h s390: use canonical include guard style 2016-06-13 15:58:17 +02:00
ftrace.h s390/dumpstack: get rid of return_address again 2016-10-17 14:44:33 +02:00
futex.h futex: Remove duplicated code and fix undefined behaviour 2017-08-25 22:49:59 +02:00
gmap.h KVM: s390: backup the currently enabled gmap when scheduled out 2016-06-20 09:55:24 +02:00
hardirq.h
hugetlb.h mm/hugetlb: allow architectures to override huge_pte_clear() 2017-07-06 16:24:34 -07:00
hw_irq.h
idals.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
idle.h s390/udelay: make udelay have busy loop semantics 2015-10-14 14:32:13 +02:00
io.h s390: provide default ioremap and iounmap declaration 2017-06-12 16:26:00 +02:00
ipl.h s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
irq.h s390: use SPARSE_IRQ 2016-06-13 15:58:24 +02:00
irqflags.h s390/irqflags: optimize irq restore 2016-01-19 12:14:01 +01:00
isc.h vfio: ccw: basic implementation for vfio_ccw driver 2017-03-31 12:55:04 +02:00
itcw.h
jump_label.h s390: add explicit <linux/stringify.h> for jump label 2016-06-13 15:58:16 +02:00
kdebug.h
kexec.h s390/crash: Remove unused KEXEC_NOTE_BYTES 2017-07-05 07:35:29 +02:00
kprobes.h s390/uprobes: fix compile for !KPROBES 2017-05-03 09:08:57 +02:00
kvm_host.h KVM: s390: Multiple Epoch Facility support 2017-08-29 15:15:54 +02:00
kvm_para.h s390/diag: add a statistic for diagnose calls 2015-10-14 14:32:06 +02:00
linkage.h
livepatch.h s390: Audit and remove any remaining unnecessary uses of module.h 2017-02-17 07:40:41 +01:00
lowcore.h s390/time: add support for the TOD clock epoch extension 2017-07-26 08:25:14 +02:00
mmu.h s390/kvm: Add use_cmma field to mm_context_t 2017-04-20 13:33:09 +02:00
mmu_context.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-09-05 09:45:46 -07:00
mmzone.h
module.h
nmi.h s390/nmi: keep comments consistent 2017-08-02 11:15:34 +02:00
numa.h
os_info.h s390/dump: streamline oldmem copy functions 2015-11-27 09:24:12 +01:00
page-states.h KVM: s390: expose no-DAT to guest and migration support 2017-08-29 15:15:56 +02:00
page.h s390/mm: add missing virt_to_pfn() etc. helper functions 2017-08-09 09:09:22 -04:00
pci.h iommu/s390: Add support for iommu_device handling 2017-08-15 18:22:45 +02:00
pci_clp.h s390/pci: use proper endianness annotations 2017-01-16 07:27:53 +01:00
pci_debug.h
pci_dma.h s390/pci_dma: fix DMA table corruption with > 4 TB main memory 2015-11-27 09:24:15 +01:00
pci_insn.h s390/pci: improve error handling during interrupt deregistration 2017-06-28 07:32:08 +02:00
pci_io.h s390/pci: improve ZPCI_* macros 2016-01-26 12:45:49 +01:00
percpu.h s390/percpu: remove this_cpu_cmpxchg_double_4 2016-03-02 06:44:30 -06:00
perf_event.h s390/cpum_cf: update counter numbers to ecctr limits 2017-03-31 07:53:26 +02:00
pgalloc.h s390/mm,vmem: simplify region and segment table allocation code 2017-07-26 08:25:12 +02:00
pgtable.h s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs 2017-08-29 16:31:27 +02:00
pkey.h s390/pkey: Introduce new API for secure key verification 2017-03-22 08:29:13 +01:00
preempt.h s390/preempt: move preempt_count to the lowcore 2016-11-11 16:37:40 +01:00
processor.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-07-03 15:39:36 -07:00
ptrace.h s390/kvm: avoid global config of vm.alloc_pgste=1 2017-06-13 13:03:41 +02:00
qdio.h s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
reset.h s390/dump: rework CPU register dump code 2015-11-27 09:24:14 +01:00
runtime_instr.h
rwsem.h locking/rwsem: Remove rwsem_atomic_add() and rwsem_atomic_update() 2016-06-08 15:16:59 +02:00
schid.h
sclp.h s390/sclp: Detect KSS facility 2017-04-21 11:08:04 +02:00
scsw.h s390/dasd: channel path aware error recovery 2016-12-12 12:05:03 +01:00
seccomp.h s390/seccomp: include generic seccomp header file 2016-04-01 17:20:55 +02:00
sections.h mm: fix section name for .data..ro_after_init 2017-03-31 17:13:30 -07:00
segment.h
serial.h
set_memory.h treewide: move set_memory_* functions away from cacheflush.h 2017-05-08 17:15:13 -07:00
setup.h s390/vmcp: make use of contiguous memory allocator 2017-08-09 09:09:35 -04:00
shmparam.h
signal.h
sigp.h s390/smp: use sigp condition code define 2017-06-12 16:25:58 +02:00
smp.h s390/smp: initialize cpu_present_mask in setup_arch 2016-12-07 07:23:07 +01:00
sparsemem.h s390: make MAX_PHYSMEM_BITS configurable 2017-03-28 16:55:10 +02:00
spinlock.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-09-05 09:45:46 -07:00
spinlock_types.h s390/spinlock: use atomic primitives for spinlocks 2017-04-12 08:43:33 +02:00
stp.h s390/time: remove ETR support 2016-06-13 15:58:21 +02:00
string.h s390/lib: add missing memory barriers to string inline assemblies 2016-12-14 16:33:41 +01:00
switch_to.h s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
syscall.h s390/syscalls: Fix out of bounds arguments access 2017-07-05 07:35:30 +02:00
sysinfo.h S390/sysinfo: use uuid_is_null instead of opencoding it 2017-06-05 16:59:06 +02:00
termios.h
thread_info.h s390/kvm: avoid global config of vm.alloc_pgste=1 2017-06-13 13:03:41 +02:00
timex.h s390/dasd: Change unsigned long long to unsigned long 2017-08-23 13:31:51 +02:00
tlb.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-09-05 09:45:46 -07:00
tlbflush.h s390/mm: add guest ASCE TLB flush optimization 2017-07-25 06:55:33 +02:00
topology.h s390/topology: Remove the unused parent_node() macro 2017-08-23 13:31:51 +02:00
uaccess.h Merge branch 'work.uaccess-unaligned' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-07-15 11:17:52 -07:00
unistd.h s390: ignore pkey system calls 2016-10-17 11:25:25 +02:00
uprobes.h uprobes: remove function declarations from arch/{mips,s390} 2016-10-07 18:46:30 -07:00
user.h
vdso.h s390/time: steer clocksource on STP sync events 2016-10-28 10:09:02 +02:00
vga.h
vtime.h
vtimer.h
vx-insn.h RAID/s390: add SIMD implementation for raid6 gen/xor 2016-08-29 11:05:04 +02:00
xor.h s390/xor: optimized xor routing using the XC instruction 2016-02-23 08:56:17 +01:00