mirror-linux/arch/powerpc/kernel
Shivaprasad G Bhat d2d00e1580 powerpc: iommu: Bring back table group release_ownership() call
The commit 2ad56efa80 ("powerpc/iommu: Setup a default domain and
remove set_platform_dma_ops") refactored the code removing the
set_platform_dma_ops(). It missed out the table group
release_ownership() call which would have got called otherwise
during the guest shutdown via vfio_group_detach_container(). On
PPC64, this particular call actually sets up the 32-bit TCE table,
and enables the 64-bit DMA bypass etc. Now after guest shutdown,
the subsequent host driver (e.g megaraid-sas) probe post unbind
from vfio-pci fails like,

megaraid_sas 0031:01:00.0: Warning: IOMMU dma not supported: mask 0x7fffffffffffffff, table unavailable
megaraid_sas 0031:01:00.0: Warning: IOMMU dma not supported: mask 0xffffffff, table unavailable
megaraid_sas 0031:01:00.0: Failed to set DMA mask
megaraid_sas 0031:01:00.0: Failed from megasas_init_fw 6539

The patch brings back the call to table_group release_ownership()
call when switching back to PLATFORM domain from BLOCKED, while
also separates the domain_ops for both.

Fixes: 2ad56efa80 ("powerpc/iommu: Setup a default domain and remove set_platform_dma_ops")
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/170628173462.3742.18330000394415935845.stgit@ltcd48-lp2.aus.stglab.ibm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2024-02-02 09:26:20 +01:00
..
ptrace
syscalls lsm/stable-6.8 PR 20240105 2024-01-09 12:57:46 -08:00
trace powerpc updates for 6.8 2024-01-08 16:22:47 -08:00
vdso powerpc/vdso: No need to undef powerpc for 64-bit build 2023-12-07 23:34:38 +11:00
.gitignore
85xx_entry_mapping.S
Makefile
align.c
asm-offsets.c
audit.c
audit_32.h
btext.c
cacheinfo.c
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_e500.S
cpu_setup_pa6t.S
cpu_setup_power.c
cpu_setup_ppc970.S
cpu_specs.h
cpu_specs_8xx.h
cpu_specs_40x.h
cpu_specs_44x.h
cpu_specs_47x.h
cpu_specs_85xx.h
cpu_specs_book3s_32.h
cpu_specs_book3s_64.h powerpc: Add PVN support for HeXin C2000 processor 2023-12-01 21:15:33 +11:00
cpu_specs_e500mc.h
cputable.c powerpc: Make cpu_spec __ro_after_init 2023-11-27 22:01:14 +11:00
crash_dump.c
dawr.c
dbell.c
dma-iommu.c
dma-mask.c
dma-swiotlb.c
dt_cpu_ftrs.c
early_32.c
eeh.c
eeh_cache.c
eeh_driver.c powerpc/eeh: Remove unnecessary cast 2023-10-19 17:16:20 +11:00
eeh_event.c
eeh_pe.c
eeh_sysfs.c
entry_32.S
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S powerpc: Remove orphaned reg_a2.h 2023-11-27 22:01:14 +11:00
exceptions-64s.S
fadump.c
firmware.c powerpc: Export kvm_guest static key, for bcachefs six locks 2024-01-01 11:47:38 -05:00
fpu.S powerpc: Don't clobber f0/vs0 during fp|altivec register save 2023-11-28 23:04:43 +11:00
head_8xx.S
head_32.h
head_40x.S
head_44x.S
head_64.S
head_85xx.S
head_book3s_32.S
head_booke.h
hw_breakpoint.c
hw_breakpoint_constraints.c
idle.c
idle_6xx.S
idle_64e.S
idle_85xx.S
idle_book3s.S
ima_arch.c
interrupt.c rseq: Split out rseq.h from sched.h 2023-12-27 11:49:56 -05:00
interrupt_64.S
io-workarounds.c
io.c
iomap.c
iommu.c powerpc: iommu: Bring back table group release_ownership() call 2024-02-02 09:26:20 +01:00
irq.c
irq_64.c
isa-bridge.c
jump_label.c
kdebugfs.c
kgdb.c
kprobes-ftrace.c
kprobes.c
kvm.c
kvm_emul.S
l2cr_6xx.S
legacy_serial.c
mce.c
mce_power.c
misc.S
misc_32.S
misc_64.S
module.c
module_32.c
module_64.c
msi.c
note.S
nvram_64.c
of_platform.c
optprobes.c
optprobes_head.S
paca.c
pci-common.c powerpc: Remove file parameter from phys_mem_access_prot() 2023-11-06 15:21:33 +11:00
pci-hotplug.c
pci_32.c
pci_64.c
pci_dn.c
pci_of_scan.c
pmc.c
ppc_save_regs.S
proc_powerpc.c
process.c KVM: PPC: Book3S HV: Fix KVM_RUN clobbering FP/VEC user registers 2023-11-29 22:24:21 +11:00
prom.c
prom_entry_64.S
prom_init.c
prom_init_check.sh
prom_parse.c
reloc_32.S
reloc_64.S
rtas-proc.c powerpc/rtas: Fix ppc_rtas_rmo_buf_show() kernel-doc 2023-11-07 13:13:45 +11:00
rtas-rtc.c
rtas.c powerpc/rtas: Warn if per-function lock isn't held 2023-12-13 21:38:21 +11:00
rtas_entry.S
rtas_flash.c
rtas_pci.c powerpc/rtas_pci: rename and properly expose config access APIs 2023-11-28 21:49:45 +11:00
rtasd.c
secure_boot.c
security.c
secvar-ops.c
secvar-sysfs.c
setup-common.c TTY/Serial changes for 6.7-rc1 2023-11-03 15:44:25 -10:00
setup.h
setup_32.c
setup_64.c
signal.c
signal.h
signal_32.c
signal_64.c
smp-tbsync.c
smp.c powerpc/smp: Dynamically build Powerpc topology 2023-12-15 13:51:34 +11:00
stacktrace.c
static_call.c
suspend.c
switch.S
swsusp.c
swsusp_32.S
swsusp_64.c powerpc/suspend: Add prototype for do_after_copyback() 2023-11-30 13:15:49 +11:00
swsusp_85xx.S
swsusp_asm64.S
sys_ppc32.c
syscall.c
syscalls.c
sysfs.c
systbl.c
tau_6xx.c
time.c
tm.S
traps.c powerpc: Fix build error due to is_valid_bugaddr() 2023-12-01 21:15:33 +11:00
ucall.S
udbg.c
udbg_16550.c powerpc: Remove orphaned reg_a2.h 2023-11-27 22:01:14 +11:00
uprobes.c
vdso.c
vdso32_wrapper.S
vdso64_wrapper.S
vecemu.c
vector.S powerpc: Don't clobber f0/vs0 during fp|altivec register save 2023-11-28 23:04:43 +11:00
vmlinux.lds.S
watchdog.c