Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

genirq: Simplify the checks for irq_set_percpu_devid_partition()

Since whether desc is NULL or desc->percpu_enabled is true, it returns
-EINVAL, check them together, and assign desc->percpu_affinity using a
ternary to simplify the code.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20240417085356.3785381-1-ruanjinjie@huawei.com

authored by

Jinjie Ruan and committed by
Thomas Gleixner
bb58c1ba 35d77eb7

+2 -8
+2 -8
kernel/irq/irqdesc.c
··· 911 911 { 912 912 struct irq_desc *desc = irq_to_desc(irq); 913 913 914 - if (!desc) 915 - return -EINVAL; 916 - 917 - if (desc->percpu_enabled) 914 + if (!desc || desc->percpu_enabled) 918 915 return -EINVAL; 919 916 920 917 desc->percpu_enabled = kzalloc(sizeof(*desc->percpu_enabled), GFP_KERNEL); ··· 919 922 if (!desc->percpu_enabled) 920 923 return -ENOMEM; 921 924 922 - if (affinity) 923 - desc->percpu_affinity = affinity; 924 - else 925 - desc->percpu_affinity = cpu_possible_mask; 925 + desc->percpu_affinity = affinity ? : cpu_possible_mask; 926 926 927 927 irq_set_percpu_devid_flags(irq); 928 928 return 0;