Re: [RESEND, v3] cxl: Prevent adapter reset if an active context exists

From
Michael Ellerman <hidden>
Date
2016-10-21 22:02:33
Also in
stable
Reply to
Vaibhav Jain, 2016-10-14
On Fri, 2016-14-10 at 09:38:36 UTC, Vaibhav Jain wrote:
This patch prevents resetting the cxl adapter via sysfs in presence of
one or more active cxl_context on it. This protects against an
unrecoverable error caused by PSL owning a dirty cache line even after
reset and host tries to touch the same cache line. In case a force reset
of the card is required irrespective of any active contexts, the int
value -1 can be stored in the 'reset' sysfs attribute of the card.

The patch introduces a new atomic_t member named contexts_num inside
struct cxl that holds the number of active context attached to the card
, which is checked against '0' before proceeding with the reset. To
prevent against a race condition where a context is activated just after
reset check is performed, the contexts_num is atomically set to '-1'
after reset-check to indicate that no more contexts can be activated on
the card anymore.

Before activating a context we atomically test if contexts_num is
non-negative and if so, increment its value by one. In case the value of
contexts_num is negative then it indicates that the card is about to be
reset and context activation is error-ed out at that point.

Cc: <redacted>
Fixes: 62fa19d4 ("cxl: Add ability to reset the card")
Acked-by: Frederic Barrat <redacted>
Reviewed-by: Andrew Donnellan <redacted>
Signed-off-by: Vaibhav Jain <redacted>
Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/70b565bbdb911023373e035225ab10

cheers
Thread (7 messages) 7 messages, 5 authors, last reply 2016-11-07
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help