Re: [PATCH v2 1/2] powerpc: add refcount to struct pci_controller
flat view
From: Andrew Donnellan <hidden>
Date: 2016-08-10 01:45:39
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 -- Andrew Donnellan OzLabs, ADL Canberra andrew.donnellan@au1.ibm.com IBM Australia Limited