diff options
author | Jakub Kicinski <kuba@kernel.org> | 2022-01-27 12:54:16 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-01-27 12:54:16 -0800 |
commit | 72d044e4bfa6bd9096536e2e1c62aecfe1a525e4 (patch) | |
tree | 0e408f181f5c704ff43cd006f4643c339e04aff1 /tools/lib | |
parent | e2cf07654efb0fd7bbcb475c6f74be7b5755a8fd (diff) | |
parent | 23a46422c56144939c091c76cf389aa863ce9c18 (diff) | |
download | linux-stable-72d044e4bfa6bd9096536e2e1c62aecfe1a525e4.tar.gz linux-stable-72d044e4bfa6bd9096536e2e1c62aecfe1a525e4.tar.bz2 linux-stable-72d044e4bfa6bd9096536e2e1c62aecfe1a525e4.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
No conflicts.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/lib')
-rw-r--r-- | tools/lib/find_bit.c | 20 | ||||
-rw-r--r-- | tools/lib/perf/evsel.c | 4 |
2 files changed, 22 insertions, 2 deletions
diff --git a/tools/lib/find_bit.c b/tools/lib/find_bit.c index 109aa7ffcf97..ba4b8d94e004 100644 --- a/tools/lib/find_bit.c +++ b/tools/lib/find_bit.c @@ -96,6 +96,26 @@ unsigned long _find_first_bit(const unsigned long *addr, unsigned long size) } #endif +#ifndef find_first_and_bit +/* + * Find the first set bit in two memory regions. + */ +unsigned long _find_first_and_bit(const unsigned long *addr1, + const unsigned long *addr2, + unsigned long size) +{ + unsigned long idx, val; + + for (idx = 0; idx * BITS_PER_LONG < size; idx++) { + val = addr1[idx] & addr2[idx]; + if (val) + return min(idx * BITS_PER_LONG + __ffs(val), size); + } + + return size; +} +#endif + #ifndef find_first_zero_bit /* * Find the first cleared bit in a memory region. diff --git a/tools/lib/perf/evsel.c b/tools/lib/perf/evsel.c index 7ea86a44eae5..210ea7c06ce8 100644 --- a/tools/lib/perf/evsel.c +++ b/tools/lib/perf/evsel.c @@ -141,7 +141,7 @@ int perf_evsel__open(struct perf_evsel *evsel, struct perf_cpu_map *cpus, } if (evsel->fd == NULL && - perf_evsel__alloc_fd(evsel, cpus->nr, threads->nr) < 0) + perf_evsel__alloc_fd(evsel, perf_cpu_map__nr(cpus), threads->nr) < 0) return -ENOMEM; perf_cpu_map__for_each_cpu(cpu, idx, cpus) { @@ -384,7 +384,7 @@ int perf_evsel__apply_filter(struct perf_evsel *evsel, const char *filter) { int err = 0, i; - for (i = 0; i < evsel->cpus->nr && !err; i++) + for (i = 0; i < perf_cpu_map__nr(evsel->cpus) && !err; i++) err = perf_evsel__run_ioctl(evsel, PERF_EVENT_IOC_SET_FILTER, (void *)filter, i); |