From patchwork Tue Mar 3 10:02:15 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geert Uytterhoeven X-Patchwork-Id: 445652 X-Patchwork-Delegate: benh@kernel.crashing.org Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 93298140140 for ; Tue, 3 Mar 2015 21:13:21 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 6EC9E1A0912 for ; Tue, 3 Mar 2015 21:13:21 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org X-Greylist: delayed 601 seconds by postgrey-1.35 at bilbo; Tue, 03 Mar 2015 21:12:23 AEDT Received: from winston.telenet-ops.be (winston.telenet-ops.be [195.130.137.75]) by lists.ozlabs.org (Postfix) with ESMTP id C49AF1A01E7 for ; Tue, 3 Mar 2015 21:12:23 +1100 (AEDT) Received: from andre.telenet-ops.be (andre.telenet-ops.be [195.130.132.53]) by winston.telenet-ops.be (Postfix) with ESMTP id 5F81D1BE8F0 for ; Tue, 3 Mar 2015 11:02:19 +0100 (CET) Received: from ayla.of.borg ([84.193.93.87]) by andre.telenet-ops.be with bizsmtp id yy2H1p00B1t5w8s01y2Hro; Tue, 03 Mar 2015 11:02:18 +0100 Received: from ramsan.of.borg ([192.168.97.29] helo=ramsan) by ayla.of.borg with esmtp (Exim 4.82) (envelope-from ) id 1YSjeb-0000en-2R; Tue, 03 Mar 2015 11:02:17 +0100 Received: from geert by ramsan with local (Exim 4.82) (envelope-from ) id 1YSjed-0001d1-7A; Tue, 03 Mar 2015 11:02:19 +0100 From: Geert Uytterhoeven To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Subject: [PATCH v2] powerpc/pmac: Fix DT refcount imbalance in pmac_pic_probe_oldstyle Date: Tue, 3 Mar 2015 11:02:15 +0100 Message-Id: <1425376935-6226-1-git-send-email-geert+renesas@glider.be> X-Mailer: git-send-email 1.9.1 Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" Internally, of_find_node_by_name() calls of_node_put() on its "from" parameter, which must not be done on "master", as it's still in use, and will be released manually later. This may cause a zero kref refcount. Call of_node_get() before to compensate for this. Signed-off-by: Geert Uytterhoeven --- Compile-tested only v2: - Avoid a logic change by adding a call to of_node_get() instead of replacing of_find_node_by_name() by of_get_child_by_name(). No-one seems to remember which machines are affected by this. --- arch/powerpc/platforms/powermac/pic.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 4c24bf60d39d2834..59cfc9d63c2d51a7 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c @@ -321,6 +321,9 @@ static void __init pmac_pic_probe_oldstyle(void) max_irqs = max_real_irqs = 64; /* We might have a second cascaded heathrow */ + + /* Compensate for of_node_put() in of_find_node_by_name() */ + of_node_get(master); slave = of_find_node_by_name(master, "mac-io"); /* Check ordering of master & slave */