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 <[email protected]> > Suggested-by: Dmitry Torokhov <[email protected]> > Signed-off-by: Luis R. Rodriguez <[email protected]>
The change looks fine to me. The code is much easier and less hacky. Reviewed-by: Petr Mladek <[email protected]> Best Regards, Petr

