On Tue, 2015-08-18 at 16:30 +1000, Andrew Donnellan wrote: > If we open a context but do not start it (either because we do not attempt > to start it, or because it fails to start for some reason), we are left > with a context in state OPENED. Previously, cxl_release_context() only > allowed releasing contexts in state CLOSED, so attempting to release an > OPENED context would fail. > > In particular, this bug causes available contexts to run out after some EEH > failures, where drivers attempt to release contexts that have failed to > start. > > Allow releasing contexts in any state other than STARTED, i.e. OPENED or > CLOSED (we can't release a STARTED context as it's currently using the > hardware). > > Cc: sta...@vger.kernel.org > Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") > Signed-off-by: Andrew Donnellan <andrew.donnel...@au1.ibm.com> > Signed-off-by: Daniel Axtens <d...@axtens.net> > --- > drivers/misc/cxl/api.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c > index 6a768a9..1c520b8 100644 > --- a/drivers/misc/cxl/api.c > +++ b/drivers/misc/cxl/api.c > @@ -59,7 +59,7 @@ EXPORT_SYMBOL_GPL(cxl_get_phys_dev); > > int cxl_release_context(struct cxl_context *ctx) > { > - if (ctx->status != CLOSED) > + if (ctx->status == STARTED) > return -EBUSY;
So this doesn't break when you add a new state, is it worth writing it as: if (ctx->status >= STARTED) return -EBUSY; ? cheers _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev