linux/drivers/misc/cxl
Andrew Donnellan 5f81b95fe2 cxl: fix leak of ctx->mapping when releasing kernel API contexts
When a context is created via the kernel API, ctx->mapping is allocated
within the kernel and thus needs to be freed when the context is freed.
reclaim_ctx() attempts to do this for contexts with the ctx->kernelapi flag
set, but afu_release() (which can be called from the kernel API through
cxl_fd_release()) sets ctx->mapping to NULL before calling
cxl_context_free() to free the context.

Add a check to afu_release() so that the mappings in contexts created via
the kernel API are left alone so reclaim_ctx() can free them.

Reported-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Fixes: 6f7f0b3df6 ("cxl: Add AFU virtual PHB and kernel API")
Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Acked-by: Ian Munsie <imunsie@au1.ibm.com>
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-10-01 11:50:12 +10:00
..
api.c cxl: fix leak of IRQ names in cxl_free_afu_irqs() 2015-10-01 11:49:32 +10:00
base.c cxl: Move include file cxl.h -> cxl-base.h 2015-06-03 13:27:19 +10:00
context.c cxl: fix leak of ctx->irq_bitmap when releasing context via kernel API 2015-10-01 11:49:32 +10:00
cxl.h cxl: fix leak of IRQ names in cxl_free_afu_irqs() 2015-10-01 11:49:32 +10:00
debugfs.c cxl: sparse: Silence iomem warning in debugfs file creation 2015-08-12 14:49:29 +10:00
fault.c cxl: Only check pid for userspace contexts 2015-06-03 13:27:18 +10:00
file.c cxl: fix leak of ctx->mapping when releasing kernel API contexts 2015-10-01 11:50:12 +10:00
irq.c cxl: fix leak of ctx->irq_bitmap when releasing context via kernel API 2015-10-01 11:49:32 +10:00
Kconfig cxl: Add CONFIG_CXL_EEH symbol 2015-08-17 13:56:29 +10:00
main.c cxl: Destroy cxl_adapter_idr on module_exit 2015-07-16 14:14:55 +10:00
Makefile cxl: Fix build failure due to -Wunused-variable behaviour change 2015-09-15 19:33:51 +10:00
native.c cxl: Allocate and release the SPA with the AFU 2015-08-14 21:32:04 +10:00
pci.c cxl: Fix unbalanced pci_dev_get in cxl_probe 2015-09-15 19:33:38 +10:00
sysfs.c cxl: Fix lockdep warning while creating afu_err_buff attribute 2015-09-23 20:57:13 +10:00
trace.c cxl: Add tracepoints 2015-01-22 17:31:51 +11:00
trace.h cxl: use more common format specifier 2015-07-13 10:10:54 +10:00
vphb.c cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline 2015-09-07 20:14:24 +10:00