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 timehow about a Fixes tag and Cc stable?
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.
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.