linux-mainline/lib
Yury Norov 58414bbb58 lib/find_bit: introduce FIND_FIRST_BIT() macro
Now that we have many flavors of find_first_bit(), and expect even more,
it's better to have one macro that generates optimal code for all and makes
maintaining of slightly different functions simpler.

The logic common to all versions is moved to the new macro, and all the
flavors are generated by providing an FETCH macro-parameter, like
in this example:

  #define FIND_FIRST_BIT(FETCH, MUNGE, size) ...

  find_first_ornot_and_bit(addr1, addr2, addr3, size)
  {
        return FIND_FIRST_BIT(addr1[idx] | ~addr2[idx] & addr3[idx], /* nop */, size);
  }

The FETCH may be of any complexity, as soon as it only refers
the bitmap(s) and an iterator idx.

MUNGE is here to support _le code generation for BE builds. May be
empty.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Reviewed-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Yury Norov <yury.norov@gmail.com>
2022-09-21 12:15:53 -07:00
..
842
crypto crypto: lib - remove unneeded selection of XOR_BLOCKS 2022-08-26 18:40:14 +08:00
dim dim: initialize all struct fields 2022-05-09 17:20:37 -07:00
fonts
kunit kunit: executor: Fix a memory leak on failure in kunit_filter_tests 2022-07-14 10:35:56 -06:00
livepatch selftests/livepatch: better synchronize test_klp_callbacks_busy 2022-06-15 10:29:10 +02:00
lz4 lib: make LZ4_decompress_safe_forceExtDict() static 2022-07-17 17:31:39 -07:00
lzo lib/lzo/lzo1x_compress.c: replace ternary operator with min() and min_t() 2022-07-29 18:12:34 -07:00
math
mpi Updates to various subsystems which I help look after. lib, ocfs2, 2022-08-07 10:03:24 -07:00
pldmfw
raid6
reed_solomon
test_fortify
vdso
xz
zlib_deflate
zlib_dfltcc
zlib_inflate
zstd
.gitignore
argv_split.c
ashldi3.c
ashrdi3.c
asn1_decoder.c
asn1_encoder.c
assoc_array.c assoc_array: Fix BUG_ON during garbage collect 2022-06-01 18:29:06 -07:00
atomic64_test.c
atomic64.c
audit.c
base64.c lib/base64: RFC4648-compliant base64 encoding 2022-08-02 17:14:47 -06:00
bcd.c
bch.c
bitfield_kunit.c
bitmap.c Bitmap patches for v6.0-rc1 2022-08-07 17:52:35 -07:00
bitrev.c
bootconfig-data.S
bootconfig.c
bsearch.c
btree.c lib/btree: simplify btree_{lookup|update} 2022-06-16 19:58:21 -07:00
bucket_locks.c
bug.c bug: Use normal relative pointers in 'struct bug_entry' 2022-05-19 23:46:10 +02:00
build_OID_registry
buildid.c
bust_spinlocks.c
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline_kunit.c
cmdline.c
cmpdi2.c
compat_audit.c
cpu_rmap.c
cpumask_kunit.c lib/cpumask_kunit: log mask contents 2022-08-24 08:35:42 -07:00
cpumask.c lib/cpumask: drop always-true preprocessor guard 2022-08-15 11:00:44 -07:00
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c
crc32defs.h
crc32test.c
crc64-rocksoft.c
crc64.c
crc-ccitt.c
crc-itu-t.c crc-itu-t: fix typo in CRC ITU-T polynomial comment 2022-06-07 10:27:38 +02:00
crc-t10dif.c
ctype.c
debug_info.c
debug_locks.c
debugobjects.c debugobjects: Convert to SPDX license identifier 2022-05-13 12:35:17 +02:00
dec_and_lock.c
decompress_bunzip2.c
decompress_inflate.c
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
decompress_unzstd.c
decompress.c
devmem_is_allowed.c
devres.c lib: devres: use numa aware allocation 2022-07-17 17:31:41 -07:00
digsig.c
dump_stack.c
dynamic_debug.c
dynamic_queue_limits.c
earlycpio.c
errname.c
error-inject.c lib/error-inject: traverse list with mutex 2022-07-17 17:31:38 -07:00
errseq.c
extable.c
fault-inject-usercopy.c
fault-inject.c mm: fix missing handler for __GFP_NOWARN 2022-05-19 14:08:55 -07:00
fdt_addresses.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
fdt.c
find_bit_benchmark.c
find_bit.c lib/find_bit: introduce FIND_FIRST_BIT() macro 2022-09-21 12:15:53 -07:00
flex_proportions.c lib/flex_proportions.c: remove local_irq_ops in fprop_new_period() 2022-06-16 19:58:20 -07:00
gen_crc32table.c
gen_crc64table.c
genalloc.c
generic-radix-tree.c
glob.c lib: remove back_str initialization 2022-04-29 14:38:01 -07:00
globtest.c
hexdump.c
hweight.c
idr.c ida: don't use BUG_ON() for debugging 2022-07-10 13:55:49 -07:00
inflate.c
interval_tree_test.c
interval_tree.c
iomap_copy.c
iomap.c
iommu-helper.c
iov_iter.c fix copy_page_from_iter() for compound destinations 2022-08-08 22:37:26 -04:00
irq_poll.c
irq_regs.c
is_single_threaded.c
kasprintf.c
Kconfig lib/cpumask: add FORCE_NR_CPUS config option 2022-09-20 16:11:44 -07:00
Kconfig.debug lib/test_cpumask: follow KUnit style guidelines 2022-08-24 08:35:42 -07:00
Kconfig.kasan kasan: clean-up kconfig options descriptions 2022-05-13 07:20:19 -07:00
Kconfig.kcsan
Kconfig.kfence
Kconfig.kgdb
Kconfig.ubsan ubsan: disable UBSAN_DIV_ZERO for clang 2022-07-14 15:45:26 -07:00
kfifo.c
klist.c
kobject_uevent.c
kobject.c
kstrtox.c lib/kstrtox.c: add "false"/"true" support to kstrtobool() 2022-05-13 07:20:13 -07:00
kstrtox.h
libcrc32c.c
linear_ranges.c
list_debug.c lib/list_debug.c: Detect uninitialized lists 2022-06-16 19:58:20 -07:00
list_sort.c
list-test.c
llist.c
locking-selftest-hardirq.h
locking-selftest-mutex.h
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
locking-selftest-rsem.h
locking-selftest-rtmutex.h
locking-selftest-softirq.h
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
locking-selftest-wsem.h
locking-selftest.c
lockref.c lockref: remove unused 'lockref_get_or_lock()' function 2022-07-03 14:40:28 -07:00
logic_iomem.c
logic_pio.c
lru_cache.c lib/lru_cache: fix error free handing in lc_create 2022-07-17 17:31:37 -07:00
lshrdi3.c
Makefile lib/test_cpumask: follow KUnit style guidelines 2022-08-24 08:35:42 -07:00
memcat_p.c
memcpy_kunit.c
memneq.c crypto: memneq - move into lib/ 2022-06-12 14:51:51 +08:00
memory-notifier-error-inject.c
memregion.c
memweight.c
muldi3.c
net_utils.c
netdev-notifier-error-inject.c
nlattr.c
nmi_backtrace.c
notifier-error-inject.c
notifier-error-inject.h
objagg.c
of-reconfig-notifier-error-inject.c
oid_registry.c
once.c
overflow_kunit.c lib: overflow: Do not define 64-bit tests on 32-bit 2022-07-01 17:39:49 -07:00
packing.c
parman.c
parser.c
pci_iomap.c
percpu_counter.c
percpu_test.c
percpu-refcount.c percpu_ref_init(): clean ->percpu_count_ref on failure 2022-05-18 02:20:17 -04:00
plist.c
pm-notifier-error-inject.c
polynomial.c lib: add generic polynomial calculation 2022-05-22 11:32:30 -07:00
radix-tree.c lib/radix-tree: remove unused argument of insert_entries 2022-07-17 17:31:38 -07:00
random32.c random32: use real rng for non-deterministic randomness 2022-05-18 15:53:52 +02:00
ratelimit.c ratelimit: Fix data-races in ___ratelimit(). 2022-08-24 13:46:57 +01:00
rbtree_test.c
rbtree.c
ref_tracker.c
refcount.c
rhashtable.c
sbitmap.c lib/sbitmap: Fix invalid loop in __sbitmap_queue_get_batch() 2022-06-25 10:58:55 -06:00
scatterlist.c lib/scatterlist: use matched parameter type when calling __sg_free_table() 2022-07-17 17:31:39 -07:00
seq_buf.c
sg_pool.c
sg_split.c
show_mem.c
siphash.c SPDX changes for 5.19-rc1 2022-06-03 10:34:34 -07:00
slub_kunit.c
smp_processor_id.c lib/smp_processor_id: fix imbalanced instrumentation_end() call 2022-07-17 17:31:41 -07:00
sort.c
stackdepot.c lib/stackdepot: replace CONFIG_STACK_HASH_ORDER with automatic sizing 2022-07-17 17:31:38 -07:00
stackinit_kunit.c
stmp_device.c
string_helpers.c lib/string_helpers: fix not adding strarray to device's resource list 2022-05-12 20:38:36 -07:00
string.c lib/string.c: simplify str[c]spn 2022-04-29 14:38:01 -07:00
strncpy_from_user.c
strnlen_user.c
syscall.c
test_bitmap.c lib/test_bitmap: test the tail after bitmap_to_arr64() 2022-07-12 08:00:50 -07:00
test_bitops.c
test_bits.c
test_blackhole_dev.c
test_bpf.c test_bpf: fix incorrect netdev features 2022-06-22 19:20:20 -07:00
test_debug_virtual.c
test_firmware.c test_firmware: fix end of loop test in upload_read_show() 2022-05-19 19:28:37 +02:00
test_fprobe.c
test_fpu.c
test_free_pages.c lib/test_free_pages.c: pass a pointer to virt_to_page() 2022-07-17 17:14:36 -07:00
test_hash.c
test_hexdump.c
test_hmm_uapi.h lib: add support for device coherent type in test_hmm 2022-07-17 17:14:29 -07:00
test_hmm.c lib: add support for device coherent type in test_hmm 2022-07-17 17:14:29 -07:00
test_ida.c
test_kasan_module.c
test_kasan.c kasan: test: Silence GCC 12 warnings 2022-07-27 13:34:41 -07:00
test_kmod.c
test_kprobes.c
test_linear_ranges.c
test_list_sort.c
test_lockup.c
test_memcat_p.c
test_meminit.c lib/test_meminit: optimize do_kmem_cache_rcu_persistent() test 2022-04-29 14:38:00 -07:00
test_min_heap.c
test_module.c
test_objagg.c
test_parman.c
test_printf.c lib/test_printf.c: fix clang -Wformat warnings 2022-07-28 10:38:30 +02:00
test_ref_tracker.c
test_rhashtable.c
test_scanf.c
test_siphash.c siphash: add SPDX tags as sole licensing authority 2022-05-19 18:54:22 +02:00
test_sort.c
test_static_key_base.c
test_static_keys.c
test_string.c lib/test_string.c: add strspn and strcspn tests 2022-04-29 14:38:00 -07:00
test_strscpy.c
test_sysctl.c selftests/sysctl: add sysctl macro test 2022-05-03 10:15:07 +02:00
test_ubsan.c
test_user_copy.c
test_uuid.c
test_vmalloc.c lib/test_vmalloc: switch to prandom_u32() 2022-07-03 18:08:42 -07:00
test_xarray.c
test-kstrtox.c
test-string_helpers.c
textsearch.c
timerqueue.c
trace_readwrite.c lib: Add register read/write tracing support 2022-06-15 17:41:12 +02:00
ts_bm.c lib/ts_bm.c: remove redundant store to variable consumed after addition 2022-07-17 17:31:39 -07:00
ts_fsm.c
ts_kmp.c
ubsan.c
ubsan.h
ucmpdi2.c
ucs2_string.c
usercopy.c
uuid.c
vsprintf.c random: remove rng_has_arch_random() 2022-06-10 11:29:48 +02:00
win_minmax.c
xarray.c mm/huge_memory: Fix xarray node memory leak 2022-06-09 16:24:25 -04:00
xxhash.c