mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
- 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 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmi0Fg8ACgkQEsHwGGHe VUpIuhAAhJgn/IYdvjAAKby3Auki5BseIyfKC1LxiC5+s9mlRh1DuOO6HwMnl7yg eg5bozX9j6DCekZadO3PglYs8zcjBxf7UcdfGJiu54HyzncIynJlsq/U7k0zQIBd JRQ+SmCHWKQ+LSLgg6iJFOmN05i5tdmgVfiBEOrkfMuSwNxh74+bst/+/p3y/nvw AxsHbm2w8CSIJGOkRRazyWdufwGHz1CQO17Oboqchw5xDKA1Hsvpn666r0iD4nkd EX3tpLOr9B+h1sicYLJGzZWvQHy6E+X45/6V4blqLFDBHMRYm/oph+oRSF2A3K2H ynN4bB8biZG33FkbLqLl4o9jw2eBUiPH4ocGRK946eebp/G0Kbeg6x4P20FS0Cz6 m2sGkGKChCWpExqCIWlyJ2Umt7+pCe1q3CMbezDczXEJyxSKXuzprndRpFveCDFl rd4nU2Icr9FUZBPQzRZiTH21N+DpDSa04PbwoVSCbf8j2nxygzKiAA5aj3JJp8US 8bmEyMq+6/Zzt5zZll2gORLEVcln6rcEGc2Ext6F21LaCjK6nuPpfuzQDEhs2RqX xt67Z/njdSKqBKO4w2Nhsih5ekru1yabBH1e1nXTP0XrCI2U/l/CZ2QOrpfMzC89 V7RxD+KxUCapzLaKkjaJtnC1lrMwphfV9mQdr90/m4HzQbCWRrY= =iZ3x -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
c9e4e96185
4 changed files with 10 additions and 5 deletions
|
@ -188,7 +188,7 @@ static int aic_irq_domain_xlate(struct irq_domain *d,
|
|||
|
||||
gc = dgc->gc[idx];
|
||||
|
||||
guard(raw_spinlock_irq)(&gc->lock);
|
||||
guard(raw_spinlock_irqsave)(&gc->lock);
|
||||
smr = irq_reg_readl(gc, AT91_AIC_SMR(*out_hwirq));
|
||||
aic_common_set_priority(intspec[2], &smr);
|
||||
irq_reg_writel(gc, smr, AT91_AIC_SMR(*out_hwirq));
|
||||
|
|
|
@ -279,7 +279,7 @@ static int aic5_irq_domain_xlate(struct irq_domain *d,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
guard(raw_spinlock_irq)(&bgc->lock);
|
||||
guard(raw_spinlock_irqsave)(&bgc->lock);
|
||||
irq_reg_writel(bgc, *out_hwirq, AT91_AIC5_SSR);
|
||||
smr = irq_reg_readl(bgc, AT91_AIC5_SMR);
|
||||
aic_common_set_priority(intspec[2], &smr);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#define pr_fmt(fmt) "GICv5 IRS: " fmt
|
||||
|
||||
#include <linux/kmemleak.h>
|
||||
#include <linux/log2.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
|
@ -117,6 +118,7 @@ static int __init gicv5_irs_init_ist_linear(struct gicv5_irs_chip_data *irs_data
|
|||
kfree(ist);
|
||||
return ret;
|
||||
}
|
||||
kmemleak_ignore(ist);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -232,6 +234,7 @@ int gicv5_irs_iste_alloc(const u32 lpi)
|
|||
kfree(l2ist);
|
||||
return ret;
|
||||
}
|
||||
kmemleak_ignore(l2ist);
|
||||
|
||||
/*
|
||||
* 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,
|
|||
int cpu;
|
||||
|
||||
cpu_node = of_parse_phandle(node, "cpus", i);
|
||||
if (WARN_ON(!cpu_node))
|
||||
if (!cpu_node) {
|
||||
pr_warn(FW_BUG "Erroneous CPU node phandle\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
cpu = of_cpu_node_to_id(cpu_node);
|
||||
of_node_put(cpu_node);
|
||||
if (WARN_ON(cpu < 0))
|
||||
if (cpu < 0)
|
||||
continue;
|
||||
|
||||
if (iaffids[i] & ~iaffid_mask) {
|
||||
|
|
|
@ -238,7 +238,7 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
base = ioremap(gicp->res->start, resource_size(gicp->res));
|
||||
if (IS_ERR(base)) {
|
||||
if (!base) {
|
||||
dev_err(&pdev->dev, "ioremap() failed. Unable to clear pending interrupts.\n");
|
||||
} else {
|
||||
for (i = 0; i < 64; i++)
|
||||
|
|
Loading…
Add table
Reference in a new issue