summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorFrederic Barrat <fbarrat@linux.ibm.com>2019-11-21 14:49:08 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2020-01-23 21:31:16 +1100
commit05dd7da76986937fb288b4213b1fa10dbe0d1b33 (patch)
treec2574700157172f9e6108c99bc8c24ac1d3b2c56 /net
parentbfc2eae0ad72a43d2a270acce2581c065223aa12 (diff)
powerpc/powernv/ioda: Fix ref count for devices with their own PE
The pci_dn structure used to store a pointer to the struct pci_dev, so taking a reference on the device was required. However, the pci_dev pointer was later removed from the pci_dn structure, but the reference was kept for the npu device. See commit 902bdc57451c ("powerpc/powernv/idoa: Remove unnecessary pcidev from pci_dn"). We don't need to take a reference on the device when assigning the PE as the struct pnv_ioda_pe is cleaned up at the same time as the (physical) device is released. Doing so prevents the device from being released, which is a problem for opencapi devices, since we want to be able to remove them through PCI hotplug. Now the ugly part: nvlink npu devices are not meant to be released. Because of the above, we've always leaked a reference and simply removing it now is dangerous and would likely require more work. There's currently no release device callback for nvlink devices for example. So to be safe, this patch leaks a reference on the npu device, but only for nvlink and not opencapi. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20191121134918.7155-2-fbarrat@linux.ibm.com
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions