On Mon, Dec 4, 2017 at 9:47 AM, Geert Uytterhoeven <geert+rene...@glider.be> wrote: > The special overlay mutex is taken first, hence it should be released > last in the error path. > > Move "mutex_lock(&of_mutex)" up, as suggested by Frank, as > free_overlay_changeset() should be called with that mutex held if any > non-trivial cleanup is to be done.
Not holding the of_mutex for of_resolve_phandles is just wrong. Without it, a node and new phandle could be added via of_attach_node making the max phandle wrong. Now, with the 2 mutexes adjacent, what is the point of even having the of_overlay_mutex? Seems like we should just drop it. I also don't think we really need to hold the mutex during post-apply notifiers. It also seems like some steps could be moved outside the mutex(es) like init_overlay_changeset(). Rob