• L
    bitops: Introduce assign_bit() · 5307e2ad
    Lukas Wunner 提交于
    A common idiom is to assign a value to a bit with:
    
        if (value)
            set_bit(nr, addr);
        else
            clear_bit(nr, addr);
    
    Likewise common is the one-line expression variant:
    
        value ? set_bit(nr, addr) : clear_bit(nr, addr);
    
    Commit 9a8ac3ae ("dm mpath: cleanup QUEUE_IF_NO_PATH bit
    manipulation by introducing assign_bit()") introduced assign_bit()
    to the md subsystem for brevity.
    
    Make it available to others, specifically gpiolib and the upcoming
    driver for Maxim MAX3191x industrial serializer chips.
    
    As requested by Peter Zijlstra, change the argument order to reflect
    traditional "dst = src" in C, hence "assign_bit(nr, addr, value)".
    
    Cc: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Alasdair Kergon <agk@redhat.com>
    Cc: Mike Snitzer <snitzer@redhat.com>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Neil Brown <neilb@suse.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Acked-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLukas Wunner <lukas@wunner.de>
    Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
    5307e2ad
bitops.h 7.2 KB