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

Reply via email to