aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorIan Munsie <imunsie@au1.ibm.com>2014-12-08 19:17:58 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2014-12-29 15:45:43 +1100
commit13da704682471669685ccc3fe111fd6c0127b2eb (patch)
treef87c02d70f9c52b6439767a9244c9c2393aa5610 /drivers/misc
parentcxl: Fix leaking interrupts if attach process fails (diff)
downloadlinux-dev-13da704682471669685ccc3fe111fd6c0127b2eb.tar.xz
linux-dev-13da704682471669685ccc3fe111fd6c0127b2eb.zip
cxl: Early return from cxl_handle_fault for a shut down context
If a context is being detached and we get a translation fault for it there is little point getting it's mm and handling the fault, so just respond with an address error and return earlier. Signed-off-by: Ian Munsie <imunsie@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/cxl/fault.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/cxl/fault.c b/drivers/misc/cxl/fault.c
index f8684bca2d79..e010302a192b 100644
--- a/drivers/misc/cxl/fault.c
+++ b/drivers/misc/cxl/fault.c
@@ -180,6 +180,12 @@ void cxl_handle_fault(struct work_struct *fault_work)
return;
}
+ /* Early return if the context is being / has been detached */
+ if (ctx->status == CLOSED) {
+ cxl_ack_ae(ctx);
+ return;
+ }
+
pr_devel("CXL BOTTOM HALF handling fault for afu pe: %i. "
"DSISR: %#llx DAR: %#llx\n", ctx->pe, dsisr, dar);