[PATCH 0/8] all: use find_next_*_bit() instead of find_first_*_bit() where possible

From: Yury Norov
Date: Sat Jun 12 2021 - 08:37:46 EST


find_first_*_bit() is simpler and faster than 'next' version [1], and they
work identically if start == 0. But in many cases kernel code uses the
'next' version where 'first' can be used. This series addresses this issue.

Patches 1-3 move find.h under include/linux as it simplifies development.
Patches 4-8 switch the kernel and tools to find_first_*_bit() implementation
where appropriate.

Yury Norov (8):
bitops: protect find_first_{,zero}_bit properly
bitops: move find_bit_*_le functions from le.h to find.h
include: move find.h from asm_generic to linux
arch: remove GENERIC_FIND_FIRST_BIT entirely
lib: add find_first_and_bit()
cpumask: use find_first_and_bit()
all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where
appropriate
tools: sync tools/bitmap with mother linux

MAINTAINERS | 4 +-
arch/alpha/include/asm/bitops.h | 2 -
arch/arc/Kconfig | 1 -
arch/arc/include/asm/bitops.h | 1 -
arch/arm/include/asm/bitops.h | 1 -
arch/arm64/Kconfig | 1 -
arch/arm64/include/asm/bitops.h | 1 -
arch/csky/include/asm/bitops.h | 1 -
arch/h8300/include/asm/bitops.h | 1 -
arch/hexagon/include/asm/bitops.h | 1 -
arch/ia64/include/asm/bitops.h | 2 -
arch/m68k/include/asm/bitops.h | 2 -
arch/mips/Kconfig | 1 -
arch/mips/include/asm/bitops.h | 1 -
arch/openrisc/include/asm/bitops.h | 1 -
arch/parisc/include/asm/bitops.h | 2 -
arch/powerpc/include/asm/bitops.h | 2 -
arch/powerpc/platforms/pasemi/dma_lib.c | 4 +-
arch/riscv/include/asm/bitops.h | 1 -
arch/s390/Kconfig | 1 -
arch/s390/include/asm/bitops.h | 1 -
arch/s390/kvm/kvm-s390.c | 2 +-
arch/sh/include/asm/bitops.h | 1 -
arch/sparc/include/asm/bitops_32.h | 1 -
arch/sparc/include/asm/bitops_64.h | 2 -
arch/x86/Kconfig | 1 -
arch/x86/include/asm/bitops.h | 2 -
arch/x86/um/Kconfig | 1 -
arch/xtensa/include/asm/bitops.h | 1 -
drivers/block/rnbd/rnbd-clt.c | 2 +-
drivers/dma/ti/edma.c | 2 +-
drivers/iio/adc/ad7124.c | 2 +-
drivers/infiniband/hw/irdma/hw.c | 16 +-
drivers/media/cec/core/cec-core.c | 2 +-
drivers/media/mc/mc-devnode.c | 2 +-
drivers/pci/controller/dwc/pci-dra7xx.c | 2 +-
drivers/scsi/lpfc/lpfc_sli.c | 10 +-
drivers/soc/ti/k3-ringacc.c | 4 +-
drivers/tty/n_tty.c | 2 +-
drivers/virt/acrn/ioreq.c | 3 +-
fs/f2fs/segment.c | 8 +-
fs/ocfs2/cluster/heartbeat.c | 2 +-
fs/ocfs2/dlm/dlmdomain.c | 4 +-
fs/ocfs2/dlm/dlmmaster.c | 18 +--
fs/ocfs2/dlm/dlmrecovery.c | 2 +-
fs/ocfs2/dlm/dlmthread.c | 2 +-
include/asm-generic/bitops.h | 1 -
include/asm-generic/bitops/le.h | 64 --------
include/linux/bitmap.h | 1 +
include/linux/cpumask.h | 30 ++--
.../bitops => include/linux}/find.h | 149 +++++++++++++++++-
lib/Kconfig | 3 -
lib/find_bit.c | 21 +++
lib/find_bit_benchmark.c | 21 +++
lib/genalloc.c | 2 +-
net/ncsi/ncsi-manage.c | 4 +-
tools/include/asm-generic/bitops.h | 1 -
tools/include/linux/bitmap.h | 7 +-
.../bitops => tools/include/linux}/find.h | 54 +++++--
tools/lib/find_bit.c | 20 +++
60 files changed, 319 insertions(+), 185 deletions(-)
rename {tools/include/asm-generic/bitops => include/linux}/find.h (50%)
rename {include/asm-generic/bitops => tools/include/linux}/find.h (83%)

--
2.30.2