- several refcount fixes

- added missing clock for ingenic
 - fix wrong irq_err_count for vr41xx
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCAA4FiEEbt46xwy6kEcDOXoUeZbBVTGwZHAFAmK0lwcaHHRzYm9nZW5k
 QGFscGhhLmZyYW5rZW4uZGUACgkQeZbBVTGwZHBXIA/7Bo6a71xyobvEhy0Xqz0s
 5qfUV104lA+eRfEA3/e09jEiDpAd4LGgC5o+bSt9WJxMLVvRFzK5vX60w1QEZ1qC
 IPwbF/IitYlsoAhnGr4mQ145pYTDC/y1hHhQItZvnIjtDqDryAS/lgRtvEMLQFU1
 RWkSUdINixwXX2EYhpxGJD8uJbPHy97tJKLQ/7IQHG8vLPwXpeNmuvmz/WT6LllD
 tbZfu8BRMSYDvC9IORV+QnXcYy6R31vineJgxnGf9BTh28yaDBIWZo6au7v4YRLf
 KBZi9sUCLsT2P5lpHDNLqx9cH8F8pKm5m08GuM6FkgrV5rysKom7NjJFWerkZlt+
 64GgntNYEOqEghKVAhfigYtctunU05Y9oJI3M9RyocuY64qjI97vHgAS1B8VDaeM
 96yh2iSucy/zo0HyR+zmQ9wOsDfzVT3ItmKGvkr8ZdF221av29Ui5PKpbjfpb3un
 3zubL2VCcbxg1ADCtbX+wMltIL3GjoYVEu7aQtFIwRMlU+h/5faLp6FZmh40nS7R
 VIAMQf7n1WX4D8aqzX90ykbXlsn55pZDNaXuYplaGPTF+TVscARC2FpnsClHLA2F
 9epn2WmZ2FOl9eaEa/BMGYc0QOiwPuZMN7oHKIt+3wy+AQZnCElkBgGy9iNu6DsN
 Lf5XRqyD7sDx+poSWCNakPE=
 =clmb
 -----END PGP SIGNATURE-----

Merge tag 'mips-fixes_5.19_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux

Pull MIPS fixes from Thomas Bogendoerfer:

 - several refcount fixes

 - added missing clock for ingenic

 - fix wrong irq_err_count for vr41xx

* tag 'mips-fixes_5.19_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
  mips: lantiq: Add missing of_node_put() in irq.c
  mips: dts: ingenic: Add TCU clock to x1000/x1830 tcu device node
  mips/pic32/pic32mzda: Fix refcount leak bugs
  mips: lantiq: xway: Fix refcount leak bug in sysctrl
  mips: lantiq: falcon: Fix refcount leak bug in sysctrl
  mips: ralink: Fix refcount leak in of.c
  mips: mti-malta: Fix refcount leak in malta-time.c
  arch: mips: generic: Add missing of_node_put() in board-ranchu.c
  MIPS: Remove repetitive increase irq_err_count
This commit is contained in:
Linus Torvalds 2022-06-23 12:11:26 -05:00
commit 599d16912d
12 changed files with 31 additions and 9 deletions
arch/mips
boot/dts/ingenic
generic
lantiq
mti-malta
pic32/pic32mzda
ralink
vr41xx/common
drivers/gpio

View File

@ -111,8 +111,9 @@
clocks = <&cgu X1000_CLK_RTCLK>,
<&cgu X1000_CLK_EXCLK>,
<&cgu X1000_CLK_PCLK>;
clock-names = "rtc", "ext", "pclk";
<&cgu X1000_CLK_PCLK>,
<&cgu X1000_CLK_TCU>;
clock-names = "rtc", "ext", "pclk", "tcu";
interrupt-controller;
#interrupt-cells = <1>;

View File

@ -104,8 +104,9 @@
clocks = <&cgu X1830_CLK_RTCLK>,
<&cgu X1830_CLK_EXCLK>,
<&cgu X1830_CLK_PCLK>;
clock-names = "rtc", "ext", "pclk";
<&cgu X1830_CLK_PCLK>,
<&cgu X1830_CLK_TCU>;
clock-names = "rtc", "ext", "pclk", "tcu";
interrupt-controller;
#interrupt-cells = <1>;

View File

@ -44,6 +44,7 @@ static __init unsigned int ranchu_measure_hpt_freq(void)
__func__);
rtc_base = of_iomap(np, 0);
of_node_put(np);
if (!rtc_base)
panic("%s(): Failed to ioremap Goldfish RTC base!", __func__);

View File

@ -208,6 +208,12 @@ void __init ltq_soc_init(void)
of_address_to_resource(np_sysgpe, 0, &res_sys[2]))
panic("Failed to get core resources");
of_node_put(np_status);
of_node_put(np_ebu);
of_node_put(np_sys1);
of_node_put(np_syseth);
of_node_put(np_sysgpe);
if ((request_mem_region(res_status.start, resource_size(&res_status),
res_status.name) < 0) ||
(request_mem_region(res_ebu.start, resource_size(&res_ebu),

View File

@ -408,6 +408,7 @@ int __init icu_of_init(struct device_node *node, struct device_node *parent)
if (!ltq_eiu_membase)
panic("Failed to remap eiu memory");
}
of_node_put(eiu_node);
return 0;
}

View File

@ -441,6 +441,10 @@ void __init ltq_soc_init(void)
of_address_to_resource(np_ebu, 0, &res_ebu))
panic("Failed to get core resources");
of_node_put(np_pmu);
of_node_put(np_cgu);
of_node_put(np_ebu);
if (!request_mem_region(res_pmu.start, resource_size(&res_pmu),
res_pmu.name) ||
!request_mem_region(res_cgu.start, resource_size(&res_cgu),

View File

@ -214,6 +214,8 @@ static void update_gic_frequency_dt(void)
if (of_update_property(node, &gic_frequency_prop) < 0)
pr_err("error updating gic frequency property\n");
of_node_put(node);
}
#endif

View File

@ -98,13 +98,18 @@ static int __init pic32_of_prepare_platform_data(struct of_dev_auxdata *lookup)
np = of_find_compatible_node(NULL, NULL, lookup->compatible);
if (np) {
lookup->name = (char *)np->name;
if (lookup->phys_addr)
if (lookup->phys_addr) {
of_node_put(np);
continue;
}
if (!of_address_to_resource(np, 0, &res))
lookup->phys_addr = res.start;
of_node_put(np);
}
}
of_node_put(root);
return 0;
}

View File

@ -32,6 +32,9 @@ static unsigned int pic32_xlate_core_timer_irq(void)
goto default_map;
irq = irq_of_parse_and_map(node, 0);
of_node_put(node);
if (!irq)
goto default_map;

View File

@ -40,6 +40,8 @@ __iomem void *plat_of_remap_node(const char *node)
if (of_address_to_resource(np, 0, &res))
panic("Failed to get resource for %s", node);
of_node_put(np);
if (!request_mem_region(res.start,
resource_size(&res),
res.name))

View File

@ -640,8 +640,6 @@ static int icu_get_irq(unsigned int irq)
printk(KERN_ERR "spurious ICU interrupt: %04x,%04x\n", pend1, pend2);
atomic_inc(&irq_err_count);
return -1;
}

View File

@ -217,8 +217,6 @@ static int giu_get_irq(unsigned int irq)
printk(KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n",
maskl, pendl, maskh, pendh);
atomic_inc(&irq_err_count);
return -EINVAL;
}