From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.mindbit.ro (xs1.mindbit.ro [80.86.107.70]) (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 74AAC3AFD04 for ; Sun, 23 Aug 2026 19:50:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=80.86.107.70 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787514641; cv=none; b=EMleosfj+FtXqXbNK77ob5+5ohCyHqdRSNmdB5sImOGphVksSAWlJXXP/1UAp/OOeves4gROUL6gImgINvaYhtDM27ARBm4GbXITs0diOQbwBYhbYWIfC/za3nb9XEZ2CYzaGN0RYNxyXW4JHgyCgz/BhYfkeWA0G6aZ7rxPI8Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787514641; c=relaxed/simple; bh=XDAiDdC6+d7ks6R7Eorb6EMXj7XBpdOdz7ey7e47IPU=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=tO/bne/xKoOuTfiqenuRZF53yPR+YtyLOpxNcIBkYi/R2PubPE9YCXczvSjgrPYVGUmAun4oQymXsTpPZAByAcexIbO1Hm6YmWI0alXenucb+JwR89RrIiXNO6I/d1wZ9DyxzUrMM6qA5wB8uVd0cs8GsXijSDIS+uxMRInVgP8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=rendec.net; spf=pass smtp.mailfrom=rendec.net; dkim=pass (2048-bit key) header.d=rendec.net header.i=@rendec.net header.b=Hbx3IobS; arc=none smtp.client-ip=80.86.107.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=rendec.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rendec.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rendec.net header.i=@rendec.net header.b="Hbx3IobS" Received: from dog.kanata.rendec.net (pool-174-112-193-187.cpe.net.cable.rogers.com [174.112.193.187]) by mail.mindbit.ro (Postfix) with ESMTPSA id 62B8DCC396; Sun, 23 Aug 2026 22:50:27 +0300 (EEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.mindbit.ro 62B8DCC396 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rendec.net; s=default; t=1787514628; bh=9r4LAYRTxmcPTIzs0B93HRjxDTYq+g/tibt58jd9x2A=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=Hbx3IobSs7l4EXax2cmJftpUVTpEJPApQz23FC91iv5EuTgItIrwDPyYW4QEQNVNE YPQv1mgLQOih93xFVxPClDWQRc3HQWMps9i99P75iu69aI2OcDqc8we5roo0Lh/ino d5ZCf1TjOZJTHZhFCzebCv+eyIdJQk0+0k0eKfhEzGqLclnKa4T9f1OGJxl9jNOhWM /zbn9vZhpOcoA8gyaA3qTUvixNEN/GD13BeqNaQFWEfXvK9nvxVGHANbC3WGUzmsbv VDciDwmC8376QEDwQijA2uiF/gF+8raXi8350rIqi92yebGlBCpqtGj5Iz91QKD2sP BNpwUTqd3aFUQ== Message-ID: <6aab877237072e6087c1945fae511b9eebd68dc2.camel@rendec.net> Subject: Re: [PATCH] genirq: Discard cpumask of irqaffinity= boot parameter if parsing fails From: Radu Rendec To: Lukas Beckmann , Thomas Gleixner Cc: linux-kernel@vger.kernel.org Date: Sun, 23 Aug 2026 15:50:25 -0400 In-Reply-To: <20260822160502.4665-1-lbckmnn@mailbox.org> References: <20260822160502.4665-1-lbckmnn@mailbox.org> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.58.3 (3.58.3-1.fc43) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Sat, 2026-08-22 at 18:05 +0200, Lukas Beckmann wrote: > irq_affinity_setup() ignores the return value of cpulist_parse(). This > can result in using a "half parsed" cpulist. E.g. on a system with 8 > cores, the parameter "irqaffinity=3D0,1,6-10,4" would result in using onl= y > CPU 0 and 1, since the parsing fails at 6-10. Other boot parameters > which take a cpulist (e.g. isolcpus=3D, workqueue.unbound_cpus=3D) alread= y > handle this by falling back to a default. >=20 > Check the return value of cpulist_parse() and let > init_irq_default_affinity() set the default in early_irq_init() > later, if parsing fails. >=20 > Signed-off-by: Lukas Beckmann > --- > =C2=A0kernel/irq/irqdesc.c | 10 +++++++++- > =C2=A01 file changed, 9 insertions(+), 1 deletion(-) >=20 > diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c > index 3a818f07a101..7cbcc3fb9e6d 100644 > --- a/kernel/irq/irqdesc.c > +++ b/kernel/irq/irqdesc.c > @@ -28,7 +28,15 @@ static struct lock_class_key irq_desc_lock_class; > =C2=A0static int __init irq_affinity_setup(char *str) > =C2=A0{ > =C2=A0 alloc_bootmem_cpumask_var(&irq_default_affinity); > - cpulist_parse(str, irq_default_affinity); > + if (cpulist_parse(str, irq_default_affinity) < 0) { > + /* > + * Clear the mask so that init_irq_default_affinity() > + * defaults it later. > + */ > + cpumask_clear(irq_default_affinity); > + pr_warn("irqaffinity: incorrect CPU range, using default\n"); > + return 1; > + } > =C2=A0 /* > =C2=A0 * Set at least the boot cpu. We don't want to end up with > =C2=A0 * bugreports caused by random commandline masks >=20 > base-commit: 1ad6d4a722f509128038f9c85c6a122a382179fe Reviewed-by: Radu Rendec