From nobody Fri Feb 13 05:42:38 2026 Received: from smtpbg154.qq.com (smtpbg154.qq.com [15.184.224.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9BAC384A3E for ; Tue, 16 Apr 2024 08:56:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=15.184.224.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257764; cv=none; b=ghB8D5qR87xsNi1pVMyuGozPNoOigoi49QOqSOw0dJZEW6SFDheuuvyybGeL5W8w+3mFcUQ36cBUGZ1a5Kmo62+y96QGjJTS0D+4SKVOu+277xyPprpOLpLEXwgK3pSh/zV78LinE5GzSxqKKfSF2qjo2YuM/fZVC4u57+FQtdc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257764; c=relaxed/simple; bh=MWsZw2xAnYzew3mAR/4hOT+/JOvbHTbm2HiiGwv43ZA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=O2KZs251NE9aMG1Cf+o3xhuSZ+5RA0WKvTCrk4NBK/3bsQf3uPvy7fpCZdN+t3t3HCW3lq/h77TJ4c3Bq2ZulQMBnoiPe+RsB32hnnx1yV781D3jjAQQzV58HTQ1TyZdlSQHVLwvQrubEe8/GMrJ19CiC7jsCQxH/zEEk0rF7HQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=15.184.224.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtp86t1713257723t6x31fvw X-QQ-Originating-IP: WatDBIqlqkEbhBW9b+x8m3/vWdvHewLtHdIAOQ/7O8c= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:55:21 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: H21jX+7aWYbgzlTnzlsOCCpV6BUAK1vvoOUgDWvSPPEkNN8e8v5NqbHiz4AIp OTQGH/RpD7/ddJ5hJ8EGGPeTyF7iSrbIXZzthHIgzy7JLrWLNlyWvnTQfeeddjsBk7udAXJ oV4YouBL/O98r5xkt4RxhfC++Sdjf6AjyOrrR6xkAHWfmsc8UzW6yEALuJAiauTryEL9p5L 0PHMLrtB5AMPD8z7TLiBgul0VUr1oO4VlA+2Wq8WhZ+xn7DAAonLAuWR0QV56VeMJHc6PMX VEvv/dFUAQxPVhengYCficlfz8shhzd+r3NDgWhXv/Q5NabaBTJqZ8hZwamG0uLbBBtE4XY JXdjdM35/V1RrDhY8vAQjOWCjRVSNi4qNjY3QfqOU486NAHuFyIpf6+e2KhtdBVuqQbmr91 dBj7/8PzwoFZd0sWTTyG7KE3aWreNZbp X-QQ-GoodBg: 2 X-BIZMAIL-ID: 5318237287310536978 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 1/7] cpumask: introduce cpumask_first_and_and() Date: Tue, 16 Apr 2024 16:54:48 +0800 Message-Id: <20240416085454.3547175-2-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" Introduce cpumask_first_and_and() to get intersection between 3 cpumasks, free of any intermediate cpumask variable. Instead, cpumask_first_and_and() works in-place with all inputs and produce desired output directly. Signed-off-by: Dawei Li Acked-by: Yury Norov --- include/linux/cpumask.h | 17 +++++++++++++++++ include/linux/find.h | 27 +++++++++++++++++++++++++++ lib/find_bit.c | 12 ++++++++++++ 3 files changed, 56 insertions(+) diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 1c29947db848..c46f9e9e1d66 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -187,6 +187,23 @@ unsigned int cpumask_first_and(const struct cpumask *s= rcp1, const struct cpumask return find_first_and_bit(cpumask_bits(srcp1), cpumask_bits(srcp2), small= _cpumask_bits); } =20 +/** + * cpumask_first_and_and - return the first cpu from *srcp1 & *srcp2 & *sr= cp3 + * @srcp1: the first input + * @srcp2: the second input + * @srcp3: the third input + * + * Return: >=3D nr_cpu_ids if no cpus set in all. + */ +static inline +unsigned int cpumask_first_and_and(const struct cpumask *srcp1, + const struct cpumask *srcp2, + const struct cpumask *srcp3) +{ + return find_first_and_and_bit(cpumask_bits(srcp1), cpumask_bits(srcp2), + cpumask_bits(srcp3), small_cpumask_bits); +} + /** * cpumask_last - get the last CPU in a cpumask * @srcp: - the cpumask pointer diff --git a/include/linux/find.h b/include/linux/find.h index c69598e383c1..28ec5a03393a 100644 --- a/include/linux/find.h +++ b/include/linux/find.h @@ -29,6 +29,8 @@ unsigned long __find_nth_and_andnot_bit(const unsigned lo= ng *addr1, const unsign unsigned long n); extern unsigned long _find_first_and_bit(const unsigned long *addr1, const unsigned long *addr2, unsigned long size); +unsigned long _find_first_and_and_bit(const unsigned long *addr1, const un= signed long *addr2, + const unsigned long *addr3, unsigned long size); extern unsigned long _find_first_zero_bit(const unsigned long *addr, unsig= ned long size); extern unsigned long _find_last_bit(const unsigned long *addr, unsigned lo= ng size); =20 @@ -345,6 +347,31 @@ unsigned long find_first_and_bit(const unsigned long *= addr1, } #endif =20 +/** + * find_first_and_and_bit - find the first set bit in 3 memory regions + * @addr1: The first address to base the search on + * @addr2: The second address to base the search on + * @addr3: The third address to base the search on + * @size: The bitmap size in bits + * + * Returns the bit number for the first set bit + * If no bits are set, returns @size. + */ +static inline +unsigned long find_first_and_and_bit(const unsigned long *addr1, + const unsigned long *addr2, + const unsigned long *addr3, + unsigned long size) +{ + if (small_const_nbits(size)) { + unsigned long val =3D *addr1 & *addr2 & *addr3 & GENMASK(size - 1, 0); + + return val ? __ffs(val) : size; + } + + return _find_first_and_and_bit(addr1, addr2, addr3, size); +} + #ifndef find_first_zero_bit /** * find_first_zero_bit - find the first cleared bit in a memory region diff --git a/lib/find_bit.c b/lib/find_bit.c index 32f99e9a670e..dacadd904250 100644 --- a/lib/find_bit.c +++ b/lib/find_bit.c @@ -116,6 +116,18 @@ unsigned long _find_first_and_bit(const unsigned long = *addr1, EXPORT_SYMBOL(_find_first_and_bit); #endif =20 +/* + * Find the first set bit in three memory regions. + */ +unsigned long _find_first_and_and_bit(const unsigned long *addr1, + const unsigned long *addr2, + const unsigned long *addr3, + unsigned long size) +{ + return FIND_FIRST_BIT(addr1[idx] & addr2[idx] & addr3[idx], /* nop */, si= ze); +} +EXPORT_SYMBOL(_find_first_and_and_bit); + #ifndef find_first_zero_bit /* * Find the first cleared bit in a memory region. --=20 2.27.0 From nobody Fri Feb 13 05:42:38 2026 Received: from smtpbgjp3.qq.com (smtpbgjp3.qq.com [54.92.39.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B98284A41 for ; Tue, 16 Apr 2024 08:56:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.92.39.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257785; cv=none; b=TnOPvnuRq9hvwc5pLCTVXLMWGUyAtpmuxdgT9sUUII4S/4cA0OquUqpNAY4xhuXbcRBfQ3P4hWjDC0QM3iyHKwAharpsXmUqaYL/acCNi96yghOI5An7mAT7sNwWipPEMvqf/MC4upTDcD+57mxUSQ18Zfelj0Vkvbe5iBVOA0Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257785; c=relaxed/simple; bh=YNQij0CAkhxascxaORo+jbO41NVurarXUSkvZb/98lg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DOPhdYhhZp6t9vF5ilNg1nXOOCDxfvIhfB8EVb0J26IAEANJDZLVy487fh0Za1fQrPwl+8mvaJdHhDrzYvs/82v3CPyG++NGGwLLufnQ5X6Fuya7WskfrTbJBxDXgS+qhaWLmvyccKyUmKDVBxnOTbBz1UyFKJvo3UlhsVtnuDs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=54.92.39.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtp86t1713257729tie0wd9g X-QQ-Originating-IP: G5B4DcVSsayk7alsXd74AVbjTRprl6JewlhKa/j5xRo= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:55:27 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: oxALfFWpRnA7UlOqvALHwj9SpDjYFTCYtiorMn/wLLZVTuR0Fc794SqPklTt4 mVVj6CEoYkVS5tFQ+XXM9yS97ikcnJEk5GtrOngvuGq7Fs8SCIpxjXbxKuKW/QlhcqU+YlQ LQFat0Wo8EVV77rlWs0uzCkAAW46TESOZlAhOUKr7RqQKOX0hbpkuxoo8Ke2j8+yAzFSQUN kmYKOIcs0nprIdt2nalqtGHoPLaQGPeLKyLND5sFlENAB8nIGIn3ZlfNap5HsMlPc1JGgCC FvoxmKeLf24PaQjFvmEKyP1WUae+aslu09tEKWSZym9X7r4Cf3PCgkq5VX0j5q+WTrOjIdb BPNKykklzj6gywa62jAprx3f+nIX0wF+we6gJDLGX0/Un7MSelNTOFwOuYNSI5blUfw/DLV GisvipT8z5SpS9mqSioPX8J4tav2OKQU X-QQ-GoodBg: 2 X-BIZMAIL-ID: 17820891928850758812 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 2/7] irqchip/irq-bcm6345-l1: Avoid explicit cpumask allocation on stack Date: Tue, 16 Apr 2024 16:54:49 +0800 Message-Id: <20240416085454.3547175-3-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Use cpumask_first_and_and() to avoid the need for a temporary cpumask on the stack. Signed-off-by: Dawei Li --- drivers/irqchip/irq-bcm6345-l1.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345= -l1.c index eb02d203c963..90daa274ef23 100644 --- a/drivers/irqchip/irq-bcm6345-l1.c +++ b/drivers/irqchip/irq-bcm6345-l1.c @@ -192,14 +192,10 @@ static int bcm6345_l1_set_affinity(struct irq_data *d, u32 mask =3D BIT(d->hwirq % IRQS_PER_WORD); unsigned int old_cpu =3D cpu_for_irq(intc, d); unsigned int new_cpu; - struct cpumask valid; unsigned long flags; bool enabled; =20 - if (!cpumask_and(&valid, &intc->cpumask, dest)) - return -EINVAL; - - new_cpu =3D cpumask_any_and(&valid, cpu_online_mask); + new_cpu =3D cpumask_first_and_and(&intc->cpumask, dest, cpu_online_mask); if (new_cpu >=3D nr_cpu_ids) return -EINVAL; =20 --=20 2.27.0 From nobody Fri Feb 13 05:42:38 2026 Received: from smtpbgau2.qq.com (smtpbgau2.qq.com [54.206.34.216]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1736484A41 for ; Tue, 16 Apr 2024 08:56:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.206.34.216 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257777; cv=none; b=BaHa8ZCmUA1Kl0LQtavqodzfMwD9lYqbi8DYE1tqJqvoJ9+3V4fBwE9dVFgyYkXUZzebfBP5ZkDftQttSgv+0yCJSXC32kQsbMJfXY3u1VymXKKCEEyUyoKofVS4N1lpOLAaJhpVP9IMPqCYauMwdvPdIudrg/qYB2AmqJ1KvK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257777; c=relaxed/simple; bh=mJVdhhBUdMA0yYpMEwV9fYT1Nc9uTwmOroHTOpBPLaA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=l4WTbu4rJm+mGntUMSw6SMWJppL9uG40ww/TZgFn4uylWI5B7aVXRM5/D4wwNT0Phv6/Rpykqxe3BYHHCqOqSW6Y0t7O21NCcNn/eW6T5VYUTUIQVoTqLOncMY+jiYovxKBsEHqEXf4uJD6Uz0mQsbCOAzp5CV9jQEIFORGTqOk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=54.206.34.216 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtpsz9t1713257735tyj1h5z X-QQ-Originating-IP: J1+XVaKYc4gINHAK8uWrRuN71TwNcJxTaQ1+BDrOPt4= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:55:33 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: aEYUFldOyMrlL4xvOCm8kicnmgOcnKn7UTC/kO5QwMSgrbXFqqLFILxcKGBQG 8g8JFInrcgLGSkjUuFRyFK3dpcrhElOztBn0Yz+vxv9dRRFsdQ6w6brmEofjzPEdxoa38L+ K7ukP9XkdEgYA8GjB5Bp6bS9HCEM0yCDOhvQ9qs6thBvmS6Y9hdZ16N8v/Y6Q1yQ0fFmiAv VMDkukGzfOhevlawcgNHLxQry+u9zc6Vs2cmY4UmkngTnZGft9Ilh6+9PaYZI4JkZdkjFf8 qNnamZRPnUJrKNS/TM2ehxqnIEkRUXAF0vNKeatKpDEAuF1LhtBjK+QnukSd3smmAx+KsyO 1MIwA6cOAJOIx/1g+o2kz3j7MhVE7Gsy5Ycu3ra5S75uI6OZkh0RNYJwUKhxAANf1xBAyAk nnQ+WEYROU5Mje2KMVB1Lya5eb8Lj05W X-QQ-GoodBg: 2 X-BIZMAIL-ID: 6012901568914722649 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 3/7] irqchip/gic-v3-its: Avoid explicit cpumask allocation on stack Date: Tue, 16 Apr 2024 16:54:50 +0800 Message-Id: <20240416085454.3547175-4-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtpsz:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Remove cpumask var on stack and use cpumask_any_and() to address it. Signed-off-by: Dawei Li Reviewed-by: Marc Zyngier --- drivers/irqchip/irq-gic-v3-its.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-= its.c index fca888b36680..20f954211c61 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -3826,9 +3826,9 @@ static int its_vpe_set_affinity(struct irq_data *d, bool force) { struct its_vpe *vpe =3D irq_data_get_irq_chip_data(d); - struct cpumask common, *table_mask; + unsigned int from, cpu =3D nr_cpu_ids; + struct cpumask *table_mask; unsigned long flags; - int from, cpu; =20 /* * Changing affinity is mega expensive, so let's be as lazy as @@ -3850,10 +3850,15 @@ static int its_vpe_set_affinity(struct irq_data *d, * If we are offered another CPU in the same GICv4.1 ITS * affinity, pick this one. Otherwise, any CPU will do. */ - if (table_mask && cpumask_and(&common, mask_val, table_mask)) - cpu =3D cpumask_test_cpu(from, &common) ? from : cpumask_first(&common); - else + if (table_mask) + cpu =3D cpumask_any_and(mask_val, table_mask); + if (cpu < nr_cpu_ids) { + if (cpumask_test_cpu(from, mask_val) && + cpumask_test_cpu(from, table_mask)) + cpu =3D from; + } else { cpu =3D cpumask_first(mask_val); + } =20 if (from =3D=3D cpu) goto out; --=20 2.27.0 From nobody Fri Feb 13 05:42:38 2026 Received: from bg1.exmail.qq.com (bg1.exmail.qq.com [114.132.65.219]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CD028529B for ; Tue, 16 Apr 2024 08:56:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.132.65.219 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257806; cv=none; b=HoiacL7B5Que3W1m6/vs1yQX+0j0UsohIi3ofq+mTzCv8F6AqnYgrCesUioSENNOiqRYIjJnKWxzT3RMlqAjwLOZlfFVGWETdg7y5REyiZjVyGobJ+x+5foEgTr5QAo9LO3ogc+wDVZA2iFi9IQ86kXEBfhyv0kN0DOTkBP/69A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257806; c=relaxed/simple; bh=aNS2CCSzwy6ql/BY4RSh2zfr6aw6EJPA7jfE3nYT5Ko=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PIaViq0A84cu9Sj+1fk9LDA3rmC2rnTqeM4bcNrOwvRUBPBWf2W1nH3LeLGFIh4fTh73nR6uiq8kHuAp9cYAiFr4R9wAj0m27irAwhnwsE/IOX0hIj57N7LoTkO8pmqqM57ThbCQAxumysssa75oMNrMpyvsJaGqu1nX94JrsWo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=114.132.65.219 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtp87t1713257741thn5yuho X-QQ-Originating-IP: b3mBBxw99vad6QHkIMchUCO3f6t5t/SWDS++WDSk0GY= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:55:39 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: oxALfFWpRnAGgHKq5PYOCdKNobJCSzITHPy+s17xVkuOuS8ISpwiXbZ0go368 3DYT2PnvxGELUqHxh975F+zBNMwkoI7n3JZ0zDQPunAZfrrd96hWcEf7CsBhOY1uMX6uxaa vUKVvn5dWomgr5fTnB194u047Rg2hhQSwj9d6sqOdR9Q5inA1MBBidHwAGIxo8MN0D33SCb tWRLEqOxvgOjqlfT5ZvF0gCGZeK8QRefPqfYADeuDTtlUWf1zx/vgivLV1GgTaPqFx3DQjL vuUqUJiW6v6U8YcWlsorr8jhxuMDHwoU/l57qd4BtK9Hqxm+i2uUhqC2VthiQXrUEE4OrRN LQT/Iav8YcXmYY2npfr8+FLyHgHeAaxl4FUAfBVBF7xEa78hSJWcg+G2KpxV92ds6frST21 HZoiVykqT/sD8R3paRKdrA== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 9847811538725789897 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 4/7] irqchip/loongson-eiointc: Avoid explicit cpumask allocation on stack Date: Tue, 16 Apr 2024 16:54:51 +0800 Message-Id: <20240416085454.3547175-5-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Use cpumask_first_and_and() to avoid the need for a temporary cpumask on the stack. Signed-off-by: Dawei Li Reviewed-by: Yury Norov --- drivers/irqchip/irq-loongson-eiointc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-l= oongson-eiointc.c index 4f5e6d21d77d..c7ddebf312ad 100644 --- a/drivers/irqchip/irq-loongson-eiointc.c +++ b/drivers/irqchip/irq-loongson-eiointc.c @@ -93,19 +93,15 @@ static int eiointc_set_irq_affinity(struct irq_data *d,= const struct cpumask *af unsigned int cpu; unsigned long flags; uint32_t vector, regaddr; - struct cpumask intersect_affinity; struct eiointc_priv *priv =3D d->domain->host_data; =20 raw_spin_lock_irqsave(&affinity_lock, flags); =20 - cpumask_and(&intersect_affinity, affinity, cpu_online_mask); - cpumask_and(&intersect_affinity, &intersect_affinity, &priv->cpuspan_map); - - if (cpumask_empty(&intersect_affinity)) { + cpu =3D cpumask_first_and_and(&priv->cpuspan_map, affinity, cpu_online_ma= sk); + if (cpu >=3D nr_cpu_ids) { raw_spin_unlock_irqrestore(&affinity_lock, flags); return -EINVAL; } - cpu =3D cpumask_first(&intersect_affinity); =20 vector =3D d->hwirq; regaddr =3D EIOINTC_REG_ENABLE + ((vector >> 5) << 2); --=20 2.27.0 From nobody Fri Feb 13 05:42:38 2026 Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 209BD85624 for ; Tue, 16 Apr 2024 08:56:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.207.22.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257790; cv=none; b=sufet+6W6jwwX89iuXIKQkyAQdHxRzKvgqTxve/SP1VqJTMGNKNpWYSi0ziEi8cn8pyXs+6FBaW1kp80EUx+GnZeelnIYy9ATFqhdoWOnOTXVY5Ce22vxjhEAEkN0Wa07F1mws4LXI7aNlxfSpQLL50g2pEbqKviAQtJCv+XC2U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257790; c=relaxed/simple; bh=gFUBkPlzF5cDQT9LC54zRf5as74tcIexLd50RAv299g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tFsvO5ivxBeVkGQ9+FMRh1Ij7EwNtJ8I+va7L+x0H8tBn981bQjm0kp8CgaRNYhagUFFGIXdL44COe95sIrQFx+A0XFmT8UO0TYPxp30+N93HyuWwlQFhR1o7DnOA2nCcIflviifQEq5Zb06PKVE46crATeFdQ2PtvPDZDp6PdU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=54.207.22.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtp87t1713257748t7w1efza X-QQ-Originating-IP: iB8jNr9pX2jhXwgd8XhH1up9iEzNHUnblpbgKs1WA9Y= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:55:46 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: oxALfFWpRnDqVrd8haq0aa8Vu7sBhcvD8Jczawzp6iG4QVrsPhEHjyNqYU4vm jUaTLQJCGHeRlwrIGlU5MBZNl+puPXBKLAkHwsdLqKqbuYwa+eezJ/OEHvC4PMx5mkNwBY+ X/j6Napv/Q9twdqZqER0E6w+CxA2ZBOOz6s2kxpzE3++q9xLSTQObcaY/SKbc4DDkwbamoS 1tCV0tl7NTQOM+aeUl7KnSDbQTPzwq3XW0bed08kGFhri1AvjEbVYvSHGuvoLEUYsF2aeA6 wmYaRsqwsKNfO5ZCDOkrGB6bKuejTx/0yK+jQCGwwRhunQgVHPZxxMEobptjZEjIL0MZj85 1Uyex8aTBZqI0AWbe2vSdV5+JuwaLAiFdTLRsqEJmRHPZXqHG4VCzllpO1CvMgI+WbzVFni YrPlU/KVTr3xGY23pEhzNmbDJqLkjWQD X-QQ-GoodBg: 2 X-BIZMAIL-ID: 15208664375220775892 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 5/7] irqchip/riscv-aplic-direct: Avoid explicit cpumask allocation on stack Date: Tue, 16 Apr 2024 16:54:52 +0800 Message-Id: <20240416085454.3547175-6-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Use cpumask_first_and_and() to avoid the need for a temporary cpumask on the stack. Signed-off-by: Dawei Li Reviewed-by: Anup Patel --- drivers/irqchip/irq-riscv-aplic-direct.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-riscv-aplic-direct.c b/drivers/irqchip/irq= -riscv-aplic-direct.c index 06bace9b7497..4a3ffe856d6c 100644 --- a/drivers/irqchip/irq-riscv-aplic-direct.c +++ b/drivers/irqchip/irq-riscv-aplic-direct.c @@ -54,15 +54,12 @@ static int aplic_direct_set_affinity(struct irq_data *d= , const struct cpumask *m struct aplic_direct *direct =3D container_of(priv, struct aplic_direct, p= riv); struct aplic_idc *idc; unsigned int cpu, val; - struct cpumask amask; void __iomem *target; =20 - cpumask_and(&amask, &direct->lmask, mask_val); - if (force) - cpu =3D cpumask_first(&amask); + cpu =3D cpumask_first_and(&direct->lmask, mask_val); else - cpu =3D cpumask_any_and(&amask, cpu_online_mask); + cpu =3D cpumask_first_and_and(&direct->lmask, mask_val, cpu_online_mask); =20 if (cpu >=3D nr_cpu_ids) return -EINVAL; --=20 2.27.0 From nobody Fri Feb 13 05:42:38 2026 Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B077783CDE for ; Tue, 16 Apr 2024 08:56:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.254.200.128 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257792; cv=none; b=jI9TtxD+JmMPTEtJETE2q+pPBTZhhCI6tf5vy48qWchKQo5DbCk3w5Jnu/ZDnWSRQIwHOXYER5xK126yyH3GFuT3bEBam0FYmzPAdSCEE7qqAtAIXkZPW4hLm3ZSim1tDZibVyZMx8rL9w5ICpFbF1jH59w0IKmvQLIjmSnUQxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257792; c=relaxed/simple; bh=WxvSvpe1lEWpQjmS4qBdmYUOUCHYYKCx3os69mqe4Ow=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gNT5uvjQH5BEarMYnUiepzgWxq7NCzW/Ahdhrk0uUC4JEDPIshNi8qsc+I4kJqVVwOQruSVvnikvljLFkwHHvOlJoP/AutNeDTTRdRawzKGk4BnSBxbSMWaeXEDLisTcCO0iIsVCuyP+hpdlH+yuWOJjxo2tVg/SW4wjkisoT2k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=54.254.200.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtp82t1713257756tl8n6h1v X-QQ-Originating-IP: Ufr4iPF8/V5sUCDLB2j/wwxLjOniD0k25Tch4xBqe5A= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:55:55 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: iBxuBmNAXy0+U+zFlkEd8DsB2q5NB3y9GTEuVyNJPCOAmphA/z8pDDd4FmTPM XnuF+ah3SSiTFgnnSbB8lxEjDQWpRatETNDlr51hJPrGWeIq31MF4W9HWhxhwjip+8xwPTX mllW7Yq+phqy6YbTYAFklalRqTzlQjj5/8KPXyo6FWhlf/Xx9pCf42PychtVK6WqPEe6BgW DfPft85HReJVLVzVm70S7PZsu6zcCQmtYeE3SqFhZlOrsXoFBDntOvvxjyYl3z04Eox85kI DuJI1kd4p5pl8GauzI63G48gYufRASlswSqINGIJ2HRpeokE+9IpE/fgQzJS/+cpCH1R8fH 5oCkormUu+9byPSx28mRw2dashv2yYxuijCR3EkNqjjrByTw8PvxICGQLFwbI0R4SW3kOJV jwOpNFagROayyWibirA9eYGbvU1sUNHC X-QQ-GoodBg: 2 X-BIZMAIL-ID: 16523450954059161192 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 6/7] irqchip/sifive-plic: Avoid explicit cpumask allocation on stack Date: Tue, 16 Apr 2024 16:54:53 +0800 Message-Id: <20240416085454.3547175-7-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Use cpumask_first_and_and() to avoid the need for a temporary cpumask on the stack. Signed-off-by: Dawei Li Reviewed-by: Anup Patel --- drivers/irqchip/irq-sifive-plic.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive= -plic.c index f3d4cb9e34f7..8fb183ced1e7 100644 --- a/drivers/irqchip/irq-sifive-plic.c +++ b/drivers/irqchip/irq-sifive-plic.c @@ -164,15 +164,12 @@ static int plic_set_affinity(struct irq_data *d, const struct cpumask *mask_val, bool force) { unsigned int cpu; - struct cpumask amask; struct plic_priv *priv =3D irq_data_get_irq_chip_data(d); =20 - cpumask_and(&amask, &priv->lmask, mask_val); - if (force) - cpu =3D cpumask_first(&amask); + cpu =3D cpumask_first_and(&priv->lmask, mask_val); else - cpu =3D cpumask_any_and(&amask, cpu_online_mask); + cpu =3D cpumask_first_and_and(&priv->lmask, mask_val, cpu_online_mask); =20 if (cpu >=3D nr_cpu_ids) return -EINVAL; --=20 2.27.0 From nobody Fri Feb 13 05:42:38 2026 Received: from smtpbguseast1.qq.com (smtpbguseast1.qq.com [54.204.34.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5269584DE4 for ; Tue, 16 Apr 2024 08:56:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.204.34.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257803; cv=none; b=X94NxjYurjNdw/J/TB7UkfVISV7DwfwkdV+h+zpsvAUXFaQbHtSIU7dBevpWfFfj+N7oSB3cpIVMPZy92+iBO5loYrtU7NVAA4yRO4j4A2FjlpDAuZn8gt9Rm1yH1bUx8ZNTj7fKlO2tU7PgkThVS3eLh4HQSR9AeiQdfw2DsKo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713257803; c=relaxed/simple; bh=Uu0O2oB1LvZpH4vPXcc0Hr8FvkH73mK2S5P1tbInLN4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=U7gf61//BzBKHXUfsTR13LEkuHWCGqm78E1o1iY5zs/1GNqkiFl9ZZOdl75sIinZ7sEnY2rRk8YsjuskQcKCL+oNWFkvDbGl9ceEjJCfDu3W79RSWNX9CXAkPXyAZVf/XYU4t4o5CobHQeaobmfJ2NuAUpV17sTHiKIp/d/4LKc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn; spf=pass smtp.mailfrom=shingroup.cn; arc=none smtp.client-ip=54.204.34.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=shingroup.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shingroup.cn X-QQ-mid: bizesmtp83t1713257762thmop50f X-QQ-Originating-IP: KXlS44mzURqz5FoEu3HmSeXIGk74ORIpgFUrGitRlRA= Received: from localhost ( [112.0.147.129]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 16 Apr 2024 16:56:01 +0800 (CST) X-QQ-SSF: 01400000000000903000000A0000000 X-QQ-FEAT: 6/K5pWSRdGq3D/d8k1DPKz6aXXbHvVAFnd7stBnpo7k5RYurwdvwZG6Cbst5q gWbz1ZyXneKqbpTJ3rqe36BjmF5HPLkT3RF2EUZbWDbq6Y8Gjfk3mnCu5AOuTJ1pCPHQ+7w xBWqwvJEv4JgVHngtYc4wdNR/G4/gxFUw0uwEnZETOP6ZPoWm1Pu8FHV4sziB0jya0scY6C 9YMGxDZo6wFRPaO2JkDkC54Ou0cB9ViqCah8A/4B79gxkN/vysiFyxbRFvoqfYPff/DzOgA r9O0jkVON5GnlkNnidC+dGfsRnZoTNX4OouPMKGZ58u1ZfeLLOvKFAlWQQwGu2M0EXk9xTL 8A38wHxEEXqp6KFawYn6xR8/vGDw5/1MeyRovIVXX29/6FGGIaatTpSSpEuBl+lFf23bYDg gMZl5r9f/q2upv2BI7i4hg== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 1721600554740465518 From: Dawei Li To: tglx@linutronix.de, yury.norov@gmail.com, rafael@kernel.org Cc: akpm@linux-foundation.org, maz@kernel.org, florian.fainelli@broadcom.com, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, anup@brainfault.org, palmer@dabbelt.com, samuel.holland@sifive.com, linux@rasmusvillemoes.dk, daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org, Dawei Li Subject: [PATCH v2 7/7] cpuidle: Avoid explicit cpumask allocation on stack Date: Tue, 16 Apr 2024 16:54:54 +0800 Message-Id: <20240416085454.3547175-8-dawei.li@shingroup.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20240416085454.3547175-1-dawei.li@shingroup.cn> References: <20240416085454.3547175-1-dawei.li@shingroup.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 Content-Type: text/plain; charset="utf-8" In general it's preferable to avoid placing cpumasks on the stack, as for large values of NR_CPUS these can consume significant amounts of stack space and make stack overflows more likely. Use cpumask_first_and_and() and cpumask_weight_and() to avoid the need for a temporary cpumask on the stack. Signed-off-by: Dawei Li --- drivers/cpuidle/coupled.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/cpuidle/coupled.c b/drivers/cpuidle/coupled.c index 9acde71558d5..bb8761c8a42e 100644 --- a/drivers/cpuidle/coupled.c +++ b/drivers/cpuidle/coupled.c @@ -439,13 +439,8 @@ static int cpuidle_coupled_clear_pokes(int cpu) =20 static bool cpuidle_coupled_any_pokes_pending(struct cpuidle_coupled *coup= led) { - cpumask_t cpus; - int ret; - - cpumask_and(&cpus, cpu_online_mask, &coupled->coupled_cpus); - ret =3D cpumask_and(&cpus, &cpuidle_coupled_poke_pending, &cpus); - - return ret; + return cpumask_first_and_and(cpu_online_mask, &coupled->coupled_cpus, + &cpuidle_coupled_poke_pending) < nr_cpu_ids; } =20 /** @@ -626,9 +621,7 @@ int cpuidle_enter_state_coupled(struct cpuidle_device *= dev, =20 static void cpuidle_coupled_update_online_cpus(struct cpuidle_coupled *cou= pled) { - cpumask_t cpus; - cpumask_and(&cpus, cpu_online_mask, &coupled->coupled_cpus); - coupled->online_count =3D cpumask_weight(&cpus); + coupled->online_count =3D cpumask_weight_and(cpu_online_mask, &coupled->c= oupled_cpus); } =20 /** --=20 2.27.0