]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
cpumask: replace cpumask_next_* with cpumask_first_* where appropriate
authorYury Norov <yury.norov@gmail.com>
Sat, 14 Aug 2021 21:17:05 +0000 (14:17 -0700)
committerYury Norov <yury.norov@gmail.com>
Sat, 15 Jan 2022 16:47:31 +0000 (08:47 -0800)
cpumask_first() is a more effective analogue of 'next' version if n == -1
(which means start == 0). This patch replaces 'next' with 'first' where
things look trivial.

There's no cpumask_first_zero() function, so create it.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
block/blk-mq.c
drivers/net/virtio_net.c
drivers/soc/fsl/qbman/bman_portal.c
drivers/soc/fsl/qbman/qman_portal.c
include/linux/cpumask.h
kernel/time/clocksource.c

index 8874a63ae952b28031eb9c38323d06dca4f3129e..ef56e753ab3881dab43248fd6cc2505c2c3c8e00 100644 (file)
@@ -2967,7 +2967,7 @@ static bool blk_mq_hctx_has_requests(struct blk_mq_hw_ctx *hctx)
 static inline bool blk_mq_last_cpu_in_hctx(unsigned int cpu,
                struct blk_mq_hw_ctx *hctx)
 {
-       if (cpumask_next_and(-1, hctx->cpumask, cpu_online_mask) != cpu)
+       if (cpumask_first_and(hctx->cpumask, cpu_online_mask) != cpu)
                return false;
        if (cpumask_next_and(cpu, hctx->cpumask, cpu_online_mask) < nr_cpu_ids)
                return false;
index b107835242ade6c2f7411b2a019e44a9b0c85748..8c70ab3c436a257063d6871fc2a21602f53a5a7d 100644 (file)
@@ -2101,7 +2101,7 @@ static void virtnet_set_affinity(struct virtnet_info *vi)
        stragglers = num_cpu >= vi->curr_queue_pairs ?
                        num_cpu % vi->curr_queue_pairs :
                        0;
-       cpu = cpumask_next(-1, cpu_online_mask);
+       cpu = cpumask_first(cpu_online_mask);
 
        for (i = 0; i < vi->curr_queue_pairs; i++) {
                group_size = stride + (i < stragglers ? 1 : 0);
index acda8a5637c52066891aa3ab1f480a397cc8372a..4d7b9caee1c4719675191b8348099e410a756b3a 100644 (file)
@@ -155,7 +155,7 @@ static int bman_portal_probe(struct platform_device *pdev)
        }
 
        spin_lock(&bman_lock);
-       cpu = cpumask_next_zero(-1, &portal_cpus);
+       cpu = cpumask_first_zero(&portal_cpus);
        if (cpu >= nr_cpu_ids) {
                __bman_portals_probed = 1;
                /* unassigned portal, skip init */
index 96f74a1dc60355dcf01f33641cba79c66f393567..e23b60618c1a15aa7f89f655ded6bdbb732ae2a5 100644 (file)
@@ -248,7 +248,7 @@ static int qman_portal_probe(struct platform_device *pdev)
        pcfg->pools = qm_get_pools_sdqcr();
 
        spin_lock(&qman_lock);
-       cpu = cpumask_next_zero(-1, &portal_cpus);
+       cpu = cpumask_first_zero(&portal_cpus);
        if (cpu >= nr_cpu_ids) {
                __qman_portals_probed = 1;
                /* unassigned portal, skip init */
index c4e1b9ea0ba46748fa8161beb20ab95ee7e896f0..64dae70d31f53847c1749233175d062d7333b3b8 100644 (file)
@@ -123,6 +123,11 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
        return 0;
 }
 
+static inline unsigned int cpumask_first_zero(const struct cpumask *srcp)
+{
+       return 0;
+}
+
 static inline unsigned int cpumask_first_and(const struct cpumask *srcp1,
                                             const struct cpumask *srcp2)
 {
@@ -201,6 +206,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
        return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits);
 }
 
+/**
+ * cpumask_first_zero - get the first unset cpu in a cpumask
+ * @srcp: the cpumask pointer
+ *
+ * Returns >= nr_cpu_ids if all cpus are set.
+ */
+static inline unsigned int cpumask_first_zero(const struct cpumask *srcp)
+{
+       return find_first_zero_bit(cpumask_bits(srcp), nr_cpumask_bits);
+}
+
 /**
  * cpumask_first_and - return the first cpu from *srcp1 & *srcp2
  * @src1p: the first input
index b8a14d2fb5ba68bf0052775eed6690ec0634d5c6..f29d1a524fa5c8a96525fee37ead85153178e0c1 100644 (file)
@@ -257,7 +257,7 @@ static void clocksource_verify_choose_cpus(void)
                return;
 
        /* Make sure to select at least one CPU other than the current CPU. */
-       cpu = cpumask_next(-1, cpu_online_mask);
+       cpu = cpumask_first(cpu_online_mask);
        if (cpu == smp_processor_id())
                cpu = cpumask_next(cpu, cpu_online_mask);
        if (WARN_ON_ONCE(cpu >= nr_cpu_ids))
@@ -279,7 +279,7 @@ static void clocksource_verify_choose_cpus(void)
                cpu = prandom_u32() % nr_cpu_ids;
                cpu = cpumask_next(cpu - 1, cpu_online_mask);
                if (cpu >= nr_cpu_ids)
-                       cpu = cpumask_next(-1, cpu_online_mask);
+                       cpu = cpumask_first(cpu_online_mask);
                if (!WARN_ON_ONCE(cpu >= nr_cpu_ids))
                        cpumask_set_cpu(cpu, &cpus_chosen);
        }