From: Yury Norov Date: Sat, 28 Oct 2023 19:05:29 +0000 (-0700) Subject: lib/find: optimize find_*_bit_wrap X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=27c82f14e6d2bcb9f085bad37fe339227571de60;p=linux.git lib/find: optimize find_*_bit_wrap When an offset is 0, there's no need to search a bitmap from the beginning after the 1st search failed, because each bit has already been tested. Signed-off-by: Yury Norov --- diff --git a/include/linux/find.h b/include/linux/find.h index af63ae5b90137..c69598e383c16 100644 --- a/include/linux/find.h +++ b/include/linux/find.h @@ -405,7 +405,7 @@ unsigned long find_next_and_bit_wrap(const unsigned long *addr1, { unsigned long bit = find_next_and_bit(addr1, addr2, size, offset); - if (bit < size) + if (bit < size || offset == 0) return bit; bit = find_first_and_bit(addr1, addr2, offset); @@ -427,7 +427,7 @@ unsigned long find_next_bit_wrap(const unsigned long *addr, { unsigned long bit = find_next_bit(addr, size, offset); - if (bit < size) + if (bit < size || offset == 0) return bit; bit = find_first_bit(addr, offset);