mirror_ubuntu-kernels/arch/powerpc/kernel
Nishanth Aravamudan 4ad04e5987 powerpc/iommu: Remove IOMMU device references via bus notifier
After d905c5df9a ("PPC: POWERNV: move iommu_add_device earlier"), the
refcnt on the kobject backing the IOMMU group for a PCI device is
elevated by each call to pci_dma_dev_setup_pSeriesLP() (via
set_iommu_table_base_and_group). When we go to dlpar a multi-function
PCI device out:

        iommu_reconfig_notifier ->
                iommu_free_table ->
                        iommu_group_put
                        BUG_ON(tbl->it_group)

We trip this BUG_ON, because there are still references on the table, so
it is not freed. Fix this by moving the powernv bus notifier to common
code and calling it for both powernv and pseries.

Fixes: d905c5df9a ("PPC: POWERNV: move iommu_add_device earlier")
Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
Tested-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-03-04 13:19:33 +11:00
..
vdso32
vdso64
.gitignore
align.c
asm-offsets.c
audit.c
btext.c
cacheinfo.c powerpc: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:36 -08:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power.S
cpu_setup_ppc970.S
cputable.c powerpc: Add machine_check cpu function for e300c3 cpus 2015-01-29 22:57:40 -06:00
crash_dump.c
crash.c
dbell.c
dma-iommu.c
dma-swiotlb.c
dma.c
eeh_cache.c
eeh_dev.c
eeh_driver.c
eeh_event.c
eeh_pe.c
eeh_sysfs.c
eeh.c
entry_32.S powerpc: Remove old compile time disabled syscall tracing code 2015-02-02 14:51:32 +11:00
entry_64.S powerpc: Remove old compile time disabled syscall tracing code 2015-02-02 14:51:32 +11:00
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S
exceptions-64s.S
fadump.c
firmware.c
fpu.S
fsl_booke_entry_mapping.S
ftrace.c
head_8xx.S powerpc/8xx: Remove duplicated code in set_context() 2015-01-29 21:59:02 -06:00
head_32.S
head_40x.S
head_44x.S
head_64.S
head_booke.h
head_fsl_booke.S
hw_breakpoint.c
ibmebus.c
idle_6xx.S
idle_book3e.S
idle_e500.S
idle_power4.S
idle_power7.S
idle.c
io-workarounds.c
io.c
iomap.c
iommu.c powerpc/iommu: Remove IOMMU device references via bus notifier 2015-03-04 13:19:33 +11:00
irq.c
isa-bridge.c
jump_label.c
kgdb.c
kprobes.c
kvm_emul.S
kvm.c
l2cr_6xx.S
legacy_serial.c
machine_kexec_32.c
machine_kexec_64.c kexec: add IND_FLAGS macro 2015-02-17 14:34:51 -08:00
machine_kexec.c
Makefile
mce_power.c
mce.c
misc_32.S
misc_64.S
misc.S
module_32.c
module_64.c
module.c
msi.c
nvram_64.c
of_platform.c
paca.c
pci_32.c
pci_64.c
pci_dn.c
pci_of_scan.c
pci-common.c
pci-hotplug.c
pmc.c
ppc32.h
ppc_ksyms_32.c
ppc_ksyms.c
ppc_save_regs.S
proc_powerpc.c
process.c
prom_init_check.sh
prom_init.c
prom_parse.c
prom.c powerpc/kernel: Avoid initializing device-tree pointer twice 2015-02-02 14:51:32 +11:00
ptrace32.c
ptrace.c
reloc_32.S
reloc_64.S
rtas_flash.c
rtas_pci.c
rtas-proc.c
rtas-rtc.c
rtas.c
rtasd.c
setup_32.c
setup_64.c
setup-common.c
signal_32.c all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
signal_64.c all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
signal.c
signal.h
smp-tbsync.c
smp.c powerpc/smp: Wait until secondaries are active & online 2015-03-04 13:19:33 +11:00
stacktrace.c
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
swsusp.c
sys_ppc32.c
syscalls.c powerpc: Remove old compile time disabled syscall tracing code 2015-02-02 14:51:32 +11:00
sysfs.c
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c The clock framework changes for 3.20 contain the usual driver additions, 2015-02-21 12:30:30 -08:00
tm.S
traps.c powerpc: Remove some unused functions 2015-01-28 15:00:24 +11:00
udbg_16550.c
udbg.c
uprobes.c
vdso.c
vecemu.c
vector.S
vio.c
vmlinux.lds.S