Merge tag 'bitmap-5.17-rc1' of git://github.com/norov/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 23 Jan 2022 04:20:44 +0000 (06:20 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 23 Jan 2022 04:20:44 +0000 (06:20 +0200)
Pull bitmap updates from Yury Norov:

 - introduce for_each_set_bitrange()

 - use find_first_*_bit() instead of find_next_*_bit() where possible

 - unify for_each_bit() macros

* tag 'bitmap-5.17-rc1' of git://github.com/norov/linux:
  vsprintf: rework bitmap_list_string
  lib: bitmap: add performance test for bitmap_print_to_pagebuf
  bitmap: unify find_bit operations
  mm/percpu: micro-optimize pcpu_is_populated()
  Replace for_each_*_bit_from() with for_each_*_bit() where appropriate
  find: micro-optimize for_each_{set,clear}_bit()
  include/linux: move for_each_bit() macros from bitops.h to find.h
  cpumask: replace cpumask_next_* with cpumask_first_* where appropriate
  tools: sync tools/bitmap with mother linux
  all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where appropriate
  cpumask: use find_first_and_bit()
  lib: add find_first_and_bit()
  arch: remove GENERIC_FIND_FIRST_BIT entirely
  include: move find.h from asm_generic to linux
  bitops: move find_bit_*_le functions from le.h to find.h
  bitops: protect find_first_{,zero}_bit properly

25 files changed:
1  2 
MAINTAINERS
arch/arc/Kconfig
arch/arm64/Kconfig
arch/mips/Kconfig
arch/mips/include/asm/bitops.h
arch/powerpc/include/asm/bitops.h
arch/s390/Kconfig
arch/s390/kvm/kvm-s390.c
arch/x86/Kconfig
block/blk-mq.c
drivers/block/rnbd/rnbd-clt.c
drivers/gpu/drm/etnaviv/etnaviv_gpu.c
drivers/infiniband/hw/irdma/hw.c
drivers/media/cec/core/cec-core.c
drivers/mmc/host/renesas_sdhi_core.c
drivers/net/virtio_net.c
drivers/pci/controller/dwc/pci-dra7xx.c
drivers/scsi/lpfc/lpfc_sli.c
drivers/soc/ti/k3-ringacc.c
drivers/tty/n_tty.c
fs/f2fs/segment.c
kernel/time/clocksource.c
lib/Kconfig
lib/vsprintf.c
mm/percpu.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9c6d45d0d3451b20aeeb660b8bafec9a6244f92c,9aba96d621b9f27e30e22aec590f1ceda12e1c5b..577f1ead6a518715fa91b4372b818c2820f07a2c
@@@ -1988,9 -2018,10 +1988,9 @@@ static unsigned long kvm_s390_next_dirt
                ofs = 0;
        }
        ofs = find_next_bit(kvm_second_dirty_bitmap(ms), ms->npages, ofs);
 -      while ((slotidx > 0) && (ofs >= ms->npages)) {
 -              slotidx--;
 -              ms = slots->memslots + slotidx;
 +      while (ofs >= ms->npages && (mnode = rb_next(mnode))) {
 +              ms = container_of(mnode, struct kvm_memory_slot, gfn_node[slots->node_idx]);
-               ofs = find_next_bit(kvm_second_dirty_bitmap(ms), ms->npages, 0);
+               ofs = find_first_bit(kvm_second_dirty_bitmap(ms), ms->npages);
        }
        return ms->base_gfn + ofs;
  }
Simple merge
diff --cc block/blk-mq.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lib/Kconfig
Simple merge
diff --cc lib/vsprintf.c
Simple merge
diff --cc mm/percpu.c
Simple merge