cxl: Fix possible idr warning when contexts are released

Michael Ellerman mpe at ellerman.id.au
Thu Nov 26 23:15:54 AEDT 2015


On Mon, 2015-16-11 at 04:03:45 UTC, Vaibhav Jain wrote:
> An idr warning is reported when a context is release after the capi card
> is unbound from the cxl driver via sysfs. Below are the steps to
> reproduce:
> 
> 1. Create multiple afu contexts in an user-space application using libcxl.
> 2. Unbind capi card from cxl using command of form
>    echo <capi-card-pci-addr> > /sys/bus/pci/drivers/cxl-pci/unbind
> 3. Exit/kill the application owning afu contexts.
> 
> After above steps a warning message is usually seen in the kernel logs
> of the form "idr_remove called for id=<context-id> which is not
> allocated."
> 
> This is caused by the function cxl_release_afu which destroys the
> contexts_idr table. So when a context is release no entry for context pe
> is found in the contexts_idr table and idr code prints this warning.
> 
> This patch fixes this issue by increasing & decreasing the ref-count on
> the afu device when a context is initialized or when its freed
> respectively. This prevents the afu from being released until all the
> afu contexts have been released. The patch introduces two new functions
> namely cxl_afu_get/put that manage the ref-count on the afu device.
> 
> Also the patch removes code inside cxl_dev_context_init that increases ref
> on the afu device as its guaranteed to be alive during this function.
> 
> Reported-by: Ian Munsie <imunsie at au1.ibm.com>
> Signed-off-by: Vaibhav Jain <vaibhav at linux.vnet.ibm.com>
> Acked-by: Ian Munsie <imunsie at au1.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/1b5df59e50874b9034c0fa38

cheers


More information about the Linuxppc-dev mailing list