Misc fixes:
- Fix error code in the irqchip/mchp-eic driver - Fix setup_percpu_irq() affinity assumptions - Remove the unused irq_domain_add_tree() function Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmk74RgRHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1gSEw/+IwHsSH9a4fOJGwV+vlwljy3zw6Sbmfwh D8C+jtVBQwocYzb/snbTvWnHJuhGwyLh6gVcYDDwJj/8IRGXnKVm7S1UKpV/XpRl O/dhqo8uogjqVAlo7osqTlYlwSGVLBY++iYCZrt9cY/Hn1bCm0Oz19/wbSJupHqp G/aG05iX4SRDHhTI8oWp7oEnnS1Hyox/2CKYHEBQoR2BapJL10exHqnyDpQ48pgL 60LCQbPeZp5KArQ+NRkc4RbcHBW6tsBJQUPc+m71H5HJTuetxwQ7uNuc3UsaR6jI 0A/vBryzeS5d88+FO08WxAYaiSENaGBAZ7aAKVbuiSoddwuRBUhvW6OYvWIGNqJG gCk4YB9K5li/2slrQdS4BQhq8thdVGkgzcSDFiFLyYmg7NjECPpr4IWggKwFT2zn hTF6tjuanBL9jew4Zxw21WcoJa3Kz6FXwSbU+PfWUUb+xc0/zouai17vkP8qwXR6 xeMqVJCZjb88VXUvL42xqKjIYD4x6UaoUqOtXjfO7xa40XC+2KVmALRInbSdTDpa 9MsJg6Mi2C+hYPXM1fPCymbktZoBSWnzi8vGUbA9CegyP9J4Zhpl8vmDIn+mXMmB Lu7pGAotSWHnXf9oCqAJ4eioaAj4V6HtIPKkSpmQGozifYMvlEI+boIwfkS2sJWK lLGe7LH6QeU= =/KYE -----END PGP SIGNATURE----- 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()master
commit
db0130185e
|
|
@ -109,10 +109,6 @@ irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hw
|
||||||
如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq
|
如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq
|
||||||
号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。
|
号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。
|
||||||
|
|
||||||
irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除了第一
|
|
||||||
个参数不同——前者接受一个Open Firmware特定的 'struct device_node' ,而后者接受
|
|
||||||
一个更通用的抽象 'struct fwnode_handle' 。
|
|
||||||
|
|
||||||
很少有驱动应该需要这个映射。
|
很少有驱动应该需要这个映射。
|
||||||
|
|
||||||
无映射
|
无映射
|
||||||
|
|
|
||||||
|
|
@ -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);
|
ret = irq_domain_translate_twocell(domain, fwspec, &hwirq, &type);
|
||||||
if (ret || hwirq >= MCHP_EIC_NIRQ)
|
if (ret || hwirq >= MCHP_EIC_NIRQ)
|
||||||
return ret;
|
return ret ?: -EINVAL;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case IRQ_TYPE_EDGE_RISING:
|
case IRQ_TYPE_EDGE_RISING:
|
||||||
|
|
|
||||||
|
|
@ -730,22 +730,6 @@ static inline void msi_device_domain_free_wired(struct irq_domain *domain, unsig
|
||||||
}
|
}
|
||||||
#endif
|
#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,
|
static inline struct irq_domain *irq_domain_add_linear(struct device_node *of_node,
|
||||||
unsigned int size,
|
unsigned int size,
|
||||||
const struct irq_domain_ops *ops,
|
const struct irq_domain_ops *ops,
|
||||||
|
|
|
||||||
|
|
@ -2470,6 +2470,9 @@ int setup_percpu_irq(unsigned int irq, struct irqaction *act)
|
||||||
if (retval < 0)
|
if (retval < 0)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
if (!act->affinity)
|
||||||
|
act->affinity = cpu_online_mask;
|
||||||
|
|
||||||
retval = __setup_irq(irq, desc, act);
|
retval = __setup_irq(irq, desc, act);
|
||||||
|
|
||||||
if (retval)
|
if (retval)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue