diff options
| author | Ingo Molnar <mingo@kernel.org> | 2025-12-11 08:06:44 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2025-12-11 08:06:45 +0100 |
| commit | b9f4c59a0a5153b0a802f3e1a92e16b96d767cf0 (patch) | |
| tree | 3ce88a9957aec998552672bd0ae04600193c3e97 | |
| parent | 79fa9f2c1ee5f901ca6b96605a774e70d531200d (diff) | |
| parent | 7dbc0d40d8347bd9de55c904f59ea44bcc8dedb7 (diff) | |
| download | tip-b9f4c59a0a5153b0a802f3e1a92e16b96d767cf0.tar.gz | |
Merge branch into tip/master: 'irq/urgent'
# New commits in irq/urgent:
7dbc0d40d834 ("irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()")
55026a9670ce ("irqdomain: Delete irq_domain_add_tree()")
89acaa5537a2 ("genirq: Allow NULL affinity for setup_percpu_irq()")
Signed-off-by: Ingo Molnar <mingo@kernel.org>
| -rw-r--r-- | Documentation/translations/zh_CN/core-api/irq/irq-domain.rst | 4 | ||||
| -rw-r--r-- | drivers/irqchip/irq-mchp-eic.c | 2 | ||||
| -rw-r--r-- | include/linux/irqdomain.h | 16 | ||||
| -rw-r--r-- | kernel/irq/manage.c | 3 |
4 files changed, 4 insertions, 21 deletions
diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst index 4a2d3b27aa4d21..aaefeda0e16444 100644 --- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst +++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst @@ -109,10 +109,6 @@ irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hw 如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq 号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。 -irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除了第一 -个参数不同——前者接受一个Open Firmware特定的 'struct device_node' ,而后者接受 -一个更通用的抽象 'struct fwnode_handle' 。 - 很少有驱动应该需要这个映射。 无映射 diff --git a/drivers/irqchip/irq-mchp-eic.c b/drivers/irqchip/irq-mchp-eic.c index 2474fa467a059e..31093a8ab67c3a 100644 --- a/drivers/irqchip/irq-mchp-eic.c +++ b/drivers/irqchip/irq-mchp-eic.c @@ -170,7 +170,7 @@ static int mchp_eic_domain_alloc(struct irq_domain *domain, unsigned int virq, ret = irq_domain_translate_twocell(domain, fwspec, &hwirq, &type); if (ret || hwirq >= MCHP_EIC_NIRQ) - return ret; + return ret ?: -EINVAL; switch (type) { case IRQ_TYPE_EDGE_RISING: diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 952d3c8dd6b7a2..62f81bbeb4906b 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -730,22 +730,6 @@ static inline void msi_device_domain_free_wired(struct irq_domain *domain, unsig } #endif -static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node, - const struct irq_domain_ops *ops, - void *host_data) -{ - struct irq_domain_info info = { - .fwnode = of_fwnode_handle(of_node), - .hwirq_max = ~0U, - .ops = ops, - .host_data = host_data, - }; - struct irq_domain *d; - - d = irq_domain_instantiate(&info); - return IS_ERR(d) ? NULL : d; -} - static inline struct irq_domain *irq_domain_add_linear(struct device_node *of_node, unsigned int size, const struct irq_domain_ops *ops, diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 0bb29316b4362c..8b1b4c8a4f54c5 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2470,6 +2470,9 @@ int setup_percpu_irq(unsigned int irq, struct irqaction *act) if (retval < 0) return retval; + if (!act->affinity) + act->affinity = cpu_online_mask; + retval = __setup_irq(irq, desc, act); if (retval) |
