[PATCH v2 1/2] powerpc: add refcount to struct pci_controller

Andrew Donnellan andrew.donnellan at au1.ibm.com
Wed Aug 10 11:45:27 AEST 2016

On 10/08/16 10:44, Mauricio Faria de Oliveira wrote:
> This commit introduces the 'refcount' field in struct pci_controller,
> along with the corresponding functions 'controller_(get|put|free)()'.
> The functions 'pcibios_(alloc|free)_controller()' are modified to use
> that in a backwards compatible manner. (i.e., kfree(phb) is performed
> when pcibios_free_controller() is called.)
> So, this patch adds the infrastructure with no functional differences
> to current users of pcibios_(alloc|free)_controller().  Notably, only
> the pseries platform calls pcibios_free_controller() for some purpose
> other than to release the pci_controller in case of errors just after
> the call to pcibios_alloc_controller() (i.e., 'goto error' scenarios).

cxl's vPHB API also uses pcibios_free_controller() (which is why we 
export the symbol, as it's called from within the cxl module). When we 
remove/shutdown the underlying cxl device, we remove all the devices 
sitting on the vPHB and then free the vPHB.

I'm currently working on a cxl defect found by an IBM test team where we 
run into this - will review this patch more thoroughly and test it shortly.


Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com  IBM Australia Limited

More information about the Linuxppc-dev mailing list