On Fri 2017-05-26 14:12:26, Luis R. Rodriguez wrote: > atomic operations. We do this by inverting the logic of of the enabler, > instead of incrementing kmod_concurrent as we get new kmod users, define the > variable kmod_concurrent_max as the max number of currently allowed kmod > users and as we get new kmod users just decrement it if its still positive. > This combines the dec and read in one atomic operation. > > In this case we no longer get the same false failure: > > CPU1 CPU2 > atomic_dec_if_positive() > atomic_dec_if_positive() > atomic_inc() > atomic_inc() > > Suggested-by: Petr Mladek <pmladek@xxxxxxxx> > Suggested-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxx> The change looks fine to me. The code is much easier and less hacky. Reviewed-by: Petr Mladek <pmladek@xxxxxxxx> Best Regards, Petr -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html