summaryrefslogtreecommitdiff
path: root/include/linux/bitops.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2019-12-17 14:28:02 +0300
committerIngo Molnar <mingo@kernel.org>2019-12-17 14:28:02 +0300
commit57e04eeda515ee979fec3bc3d64c408feae18acc (patch)
treef18d4d0885211ee7bd543a2363c035a290037556 /include/linux/bitops.h
parent0f60a0bcc1b96d531fa623ab520f863f1292c75b (diff)
parent58b3bafff8257c6946df5d6aeb215b8ac839ed2a (diff)
downloadlinux-57e04eeda515ee979fec3bc3d64c408feae18acc.tar.xz
Merge tag 'perf-urgent-for-mingo-5.5-20191216' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes: perf top: Arnaldo Carvalho de Melo: - Do not bail out when perf_env__read_cpuid() returns ENOSYS, which has been reported happening on aarch64. perf metricgroup: Kajol Jain: - Fix printing event names of metric group with multiple events vendor events: x86: Ravi Bangoria: - Fix Kernel_Utilization metric. s390: Ed Maste: - Fix counter long description for DTLB1_GPAGE_WRITES and L1D_RO_EXCL_WRITES. perf header: Michael Petlan: - Fix false warning when there are no duplicate cache entries libtraceevent: Sudip Mukherjee: - Allow custom libdir path API headers: Arnaldo Carvalho de Melo: - Sync linux/kvm.h with the kernel sources. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/bitops.h')
-rw-r--r--include/linux/bitops.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index c94a9ff9f082..e479067c202c 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -47,6 +47,18 @@ extern unsigned long __sw_hweight64(__u64 w);
(bit) < (size); \
(bit) = find_next_zero_bit((addr), (size), (bit) + 1))
+/**
+ * for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
+ * @start: bit offset to start search and to store the current iteration offset
+ * @clump: location to store copy of current 8-bit clump
+ * @bits: bitmap address to base the search on
+ * @size: bitmap size in number of bits
+ */
+#define for_each_set_clump8(start, clump, bits, size) \
+ for ((start) = find_first_clump8(&(clump), (bits), (size)); \
+ (start) < (size); \
+ (start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
+
static inline int get_bitmask_order(unsigned int count)
{
int order;