On Thu, 2019-11-21 at 13:49:08 UTC, Frederic Barrat wrote: > 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. > > CC: a...@ozlabs.ru > CC: ooh...@gmail.com > Signed-off-by: Frederic Barrat <fbar...@linux.ibm.com>
Series applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/05dd7da76986937fb288b4213b1fa10dbe0d1b33 cheers