Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751980AbdLDTfz (ORCPT ); Mon, 4 Dec 2017 14:35:55 -0500 Received: from mail.kernel.org ([198.145.29.99]:44816 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751104AbdLDTfw (ORCPT ); Mon, 4 Dec 2017 14:35:52 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FD2A2199D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=robh+dt@kernel.org X-Google-Smtp-Source: AGs4zMYOb18LU2l6gbdRTt+1hUjeJNCsKgYXDxRFHYC9fZM+EvMgcIJKskuvPENpREVDUMMcCDw+KeZZzq4tY/A1Yqk= MIME-Version: 1.0 In-Reply-To: <1512402456-8176-3-git-send-email-geert+renesas@glider.be> References: <1512402456-8176-1-git-send-email-geert+renesas@glider.be> <1512402456-8176-3-git-send-email-geert+renesas@glider.be> From: Rob Herring Date: Mon, 4 Dec 2017 13:35:30 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 2/2] of: overlay: Fix cleanup order in of_overlay_apply() To: Geert Uytterhoeven Cc: Pantelis Antoniou , Frank Rowand , Colin King , Dan Carpenter , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 828 Lines: 21 On Mon, Dec 4, 2017 at 9:47 AM, Geert Uytterhoeven 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