Re: [PATCH] nvmem: fix registration vs use race

From: Russell King (Oracle)
Date: Tue Jan 03 2023 - 07:49:07 EST


On Tue, Jan 03, 2023 at 12:42:49PM +0000, Srinivas Kandagatla wrote:
>
>
> On 03/01/2023 11:46, Russell King (Oracle) wrote:
> > On Tue, Jan 03, 2023 at 11:30:36AM +0000, Srinivas Kandagatla wrote:
> > >
> > >
> > > On 03/01/2023 09:42, Russell King (Oracle) wrote:
> > > > The i.MX6 CPU frequency driver sometimes fails to register at boot time
> > > > due to nvmem_cell_read_u32() sporadically returning -ENOENT.
> > > >
> > > > This happens because there is a window where __nvmem_device_get() in
> > > > of_nvmem_cell_get() is able to return the nvmem device, but as cells
> > > > have been setup, nvmem_find_cell_entry_by_node() returns NULL.
> > > >
> > > > The occurs because the nvmem core registration code violates one of the
> > > > fundamental principles of kernel programming: do not publish data
> > > > structures before their setup is complete.
> > > >
> > > > Fix this by making nvmem core code conform with this principle.
> > > >
> > > how about a Fixes tag and Cc stable?
> >
> > Which commit do you suggest? This error goes all the way back to the
> > inception of nvmem, commit
> >
> > eace75cfdcf7 ("nvmem: Add a simple NVMEM framework for nvmem providers")
> >
> > but clearly its going to be a lot of effort to backport it all the
> > way due to all the changes.
>
> I understand the backport issue, On the other hand as this a real issue
> backporting to atleast stable kernels would be worth.

I'll add this commit as a fixes tag, but I don't have the ability to
test backports of this, since the use of nvmem on imx6 platforms is
relatively recent. How do you suggest we end up with tested backports
for stable trees?

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!