[PATCH] arm/mach: Hold reference returned by of_find_xxx APIs
Russell King (Oracle)
linux at armlinux.org.uk
Tue Jun 28 09:16:04 PDT 2022
On Tue, Jun 28, 2022 at 06:59:45AM +0300, Tony Lindgren wrote:
> * Liang He <windhl at 126.com> [220621 12:14]:
> > diff --git a/arch/arm/mach-omap2/pmic-cpcap.c b/arch/arm/mach-omap2/pmic-cpcap.c
> > index 668dc84fd31e..a7368d657aa8 100644
> > --- a/arch/arm/mach-omap2/pmic-cpcap.c
> > +++ b/arch/arm/mach-omap2/pmic-cpcap.c
> > @@ -238,8 +238,11 @@ static struct omap_voltdm_pmic omap4_fan_iva = {
> > int __init omap4_cpcap_init(void)
> > {
> > struct voltagedomain *voltdm;
> > + struct device_node *np;
> >
> > - if (!of_find_compatible_node(NULL, NULL, "motorola,cpcap"))
> > + np = of_find_compatible_node(NULL, NULL, "motorola,cpcap");
> > + of_node_put(np);
> > + if (!np)
> > return -ENODEV;
>
> Hmm so here you are checking for !np after of_node_put()?
This is permissible, because the value of the _pointer_ is being
checked without dereferencing the pointer. So the fact that the
node may have been freed is actually immaterial.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
More information about the linux-arm-kernel
mailing list