Re: [PATCH] genirq: Discard cpumask of irqaffinity= boot parameter if parsing fails

Radu Rendec <[email protected]>
Newsgroups org.kernel.vger.linux-kernel
Message-ID <[email protected]>
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=0,1,6-10,4" would result in using only
> CPU 0 and 1, since the parsing fails at 6-10. Other boot parameters
> which take a cpulist (e.g. isolcpus=, workqueue.unbound_cpus=) already
> handle this by falling back to a default.
> 
> Check the return value of cpulist_parse() and let
> init_irq_default_affinity() set the default in early_irq_init()
> later, if parsing fails.
> 
> Signed-off-by: Lukas Beckmann <[email protected]>
> ---
>  kernel/irq/irqdesc.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> 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;
>  static int __init irq_affinity_setup(char *str)
>  {
>  	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;
> +	}
>  	/*
>  	 * Set at least the boot cpu. We don't want to end up with
>  	 * bugreports caused by random commandline masks
> 
> base-commit: 1ad6d4a722f509128038f9c85c6a122a382179fe

Reviewed-by: Radu Rendec <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.