linux/arch/powerpc
Alexey Kardashevskiy b82c75bfbe powerpc/iommu: Fix IOMMU ownership control functions
This adds missing locks in iommu_take_ownership()/
iommu_release_ownership().

This marks all pages busy in iommu_table::it_map in order to catch
errors if there is an attempt to use this table while ownership over it
is taken.

This only clears TCE content if there is no page marked busy in it_map.
Clearing must be done outside of the table locks as iommu_clear_tce()
called from iommu_clear_tces_and_put_pages() does this.

In order to use bitmap_empty(), the existing code clears bit#0 which
is set even in an empty table if it is bus-mapped at 0 as
iommu_init_table() reserves page#0 to prevent buggy drivers
from crashing when allocated page is bus-mapped at zero
(which is correct). This restores the bit in the case of failure
to bring the it_map to the state it was in when we called
iommu_take_ownership().

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-06-11 15:16:47 +10:00
..
boot powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
configs powerpc/config: Enable bnx2x on ppc64 and pseries defconfigs 2015-06-04 22:33:27 +10:00
crypto crypto: powerpc - move files to fix build error 2015-03-09 21:06:19 +11:00
include vfio: powerpc/spapr/iommu/powernv/ioda2: Rework IOMMU ownership control 2015-06-11 15:16:47 +10:00
kernel powerpc/iommu: Fix IOMMU ownership control functions 2015-06-11 15:16:47 +10:00
kvm powerpc/kernel: Rename PACA_DSCR to PACA_DSCR_DEFAULT 2015-06-07 19:29:00 +10:00
lib powerpc: Export __spin_yield 2015-04-21 15:21:28 +02:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc/mm: Add trace point for tracking hash pte fault 2015-06-10 14:06:29 +10:00
net ppc: bpf: Add SKF_AD_CPU for ppc32 2015-02-20 15:19:43 -05:00
oprofile powerpc/oprofile: reduce mmap_sem hold for exe_file 2015-04-17 09:04:11 -04:00
perf powerpc/perf: Fix book3s kernel to userspace backtraces 2015-06-02 13:26:38 +10:00
platforms vfio: powerpc/spapr/iommu/powernv/ioda2: Rework IOMMU ownership control 2015-06-11 15:16:47 +10:00
sysdev powerpc/iommu: Move tce_xxx callbacks from ppc_md to iommu_table 2015-06-11 15:14:56 +10:00
xmon powerpc updates for 3.20 2015-02-11 18:15:38 -08:00
Kconfig powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
Kconfig.debug powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
Makefile powerpc/configs: Replace pseries_le_defconfig with a Makefile target using merge_config 2015-06-02 16:54:49 +10:00
relocs_check.sh powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00