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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'irq-urgent-2025-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Ingo Molnar:

- Fix error code in the irqchip/mchp-eic driver

- Fix setup_percpu_irq() affinity assumptions

- Remove the unused irq_domain_add_tree() function

* tag 'irq-urgent-2025-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()
irqdomain: Delete irq_domain_add_tree()
genirq: Allow NULL affinity for setup_percpu_irq()

+4 -21
-4
Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
··· 109 109 如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq 110 110 号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。 111 111 112 - irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除了第一 113 - 个参数不同——前者接受一个Open Firmware特定的 'struct device_node' ,而后者接受 114 - 一个更通用的抽象 'struct fwnode_handle' 。 115 - 116 112 很少有驱动应该需要这个映射。 117 113 118 114 无映射
+1 -1
drivers/irqchip/irq-mchp-eic.c
··· 170 170 171 171 ret = irq_domain_translate_twocell(domain, fwspec, &hwirq, &type); 172 172 if (ret || hwirq >= MCHP_EIC_NIRQ) 173 - return ret; 173 + return ret ?: -EINVAL; 174 174 175 175 switch (type) { 176 176 case IRQ_TYPE_EDGE_RISING:
-16
include/linux/irqdomain.h
··· 730 730 } 731 731 #endif 732 732 733 - static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node, 734 - const struct irq_domain_ops *ops, 735 - void *host_data) 736 - { 737 - struct irq_domain_info info = { 738 - .fwnode = of_fwnode_handle(of_node), 739 - .hwirq_max = ~0U, 740 - .ops = ops, 741 - .host_data = host_data, 742 - }; 743 - struct irq_domain *d; 744 - 745 - d = irq_domain_instantiate(&info); 746 - return IS_ERR(d) ? NULL : d; 747 - } 748 - 749 733 static inline struct irq_domain *irq_domain_add_linear(struct device_node *of_node, 750 734 unsigned int size, 751 735 const struct irq_domain_ops *ops,
+3
kernel/irq/manage.c
··· 2470 2470 if (retval < 0) 2471 2471 return retval; 2472 2472 2473 + if (!act->affinity) 2474 + act->affinity = cpu_online_mask; 2475 + 2473 2476 retval = __setup_irq(irq, desc, act); 2474 2477 2475 2478 if (retval)