On Sun, Sep 20, 2026 at 10:27:44AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <[email protected]> > > Convert open-coded if/else with set_bit/clear_bit and their > non-atomic __set_bit/__clear_bit variants to the assign_bit/__assign_bit > API. Where a bit is toggled based on its own value, use change_bit() > instead. > > Done with Coccinelle semantic patch: > // set_bit -> clear_bit => assign_bit > > @@ > expression cond, bit, addr; > @@ > > -if (cond) > - set_bit(bit, addr); > -else > - clear_bit(bit, addr); > +assign_bit(bit, addr, cond); > > // clear_bit -> set_bit => assign_bit > > @@ > expression cond, bit, addr; > @@ > > -if (cond) > - clear_bit(bit, addr); > -else > - set_bit(bit, addr); > +assign_bit(bit, addr, !cond); > > // __set_bit -> __clear_bit => __assign_bit > > @@ > expression cond, bit, addr; > @@ > > -if (cond) > - __set_bit(bit, addr); > -else > - __clear_bit(bit, addr); > +__assign_bit(bit, addr, cond); > > // __clear_bit -> __set_bit => __assign_bit > > @@ > expression cond, bit, addr; > @@ > > -if (cond) > - __clear_bit(bit, addr); > -else > - __set_bit(bit, addr); > +__assign_bit(bit, addr, !cond); > > Signed-off-by: Peng Fan <[email protected]>
Reviewed-by: Simon Horman <[email protected]>

