Skip to content

Commit c9e4e96

Browse files
committed
Merge tag 'irq_urgent_for_v6.17_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Borislav Petkov: - Remove unnecessary and noisy WARN_ONs in gic-v5's init path - Avoid a kmemleak false positive for the gic-v5's L2 IST table entries - Fix a retval check in mvebu-gicp's probe function - Fix a wrong conversion to guards in atmel-aic[5] irqchip * tag 'irq_urgent_for_v6.17_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gic-v5: Remove undue WARN_ON()s in the IRS affinity parsing irqchip/gic-v5: Fix kmemleak L2 IST table entries false positives irqchip/mvebu-gicp: Fix an IS_ERR() vs NULL check in probe() irqchip/atmel-aic[5]: Fix incorrect lock guard conversion
2 parents 9acd5b8 + 35c2387 commit c9e4e96

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

drivers/irqchip/irq-atmel-aic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ static int aic_irq_domain_xlate(struct irq_domain *d,
188188

189189
gc = dgc->gc[idx];
190190

191-
guard(raw_spinlock_irq)(&gc->lock);
191+
guard(raw_spinlock_irqsave)(&gc->lock);
192192
smr = irq_reg_readl(gc, AT91_AIC_SMR(*out_hwirq));
193193
aic_common_set_priority(intspec[2], &smr);
194194
irq_reg_writel(gc, smr, AT91_AIC_SMR(*out_hwirq));

drivers/irqchip/irq-atmel-aic5.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ static int aic5_irq_domain_xlate(struct irq_domain *d,
279279
if (ret)
280280
return ret;
281281

282-
guard(raw_spinlock_irq)(&bgc->lock);
282+
guard(raw_spinlock_irqsave)(&bgc->lock);
283283
irq_reg_writel(bgc, *out_hwirq, AT91_AIC5_SSR);
284284
smr = irq_reg_readl(bgc, AT91_AIC5_SMR);
285285
aic_common_set_priority(intspec[2], &smr);

drivers/irqchip/irq-gic-v5-irs.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#define pr_fmt(fmt) "GICv5 IRS: " fmt
77

8+
#include <linux/kmemleak.h>
89
#include <linux/log2.h>
910
#include <linux/of.h>
1011
#include <linux/of_address.h>
@@ -117,6 +118,7 @@ static int __init gicv5_irs_init_ist_linear(struct gicv5_irs_chip_data *irs_data
117118
kfree(ist);
118119
return ret;
119120
}
121+
kmemleak_ignore(ist);
120122

121123
return 0;
122124
}
@@ -232,6 +234,7 @@ int gicv5_irs_iste_alloc(const u32 lpi)
232234
kfree(l2ist);
233235
return ret;
234236
}
237+
kmemleak_ignore(l2ist);
235238

236239
/*
237240
* Make sure we invalidate the cache line pulled before the IRS
@@ -623,12 +626,14 @@ static int __init gicv5_irs_of_init_affinity(struct device_node *node,
623626
int cpu;
624627

625628
cpu_node = of_parse_phandle(node, "cpus", i);
626-
if (WARN_ON(!cpu_node))
629+
if (!cpu_node) {
630+
pr_warn(FW_BUG "Erroneous CPU node phandle\n");
627631
continue;
632+
}
628633

629634
cpu = of_cpu_node_to_id(cpu_node);
630635
of_node_put(cpu_node);
631-
if (WARN_ON(cpu < 0))
636+
if (cpu < 0)
632637
continue;
633638

634639
if (iaffids[i] & ~iaffid_mask) {

drivers/irqchip/irq-mvebu-gicp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
238238
}
239239

240240
base = ioremap(gicp->res->start, resource_size(gicp->res));
241-
if (IS_ERR(base)) {
241+
if (!base) {
242242
dev_err(&pdev->dev, "ioremap() failed. Unable to clear pending interrupts.\n");
243243
} else {
244244
for (i = 0; i < 64; i++)

0 commit comments

Comments
 (0)