From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751704AbdKKPn5 (ORCPT ); Sat, 11 Nov 2017 10:43:57 -0500 Received: from mail-lf0-f65.google.com ([209.85.215.65]:57307 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750954AbdKKPnv (ORCPT ); Sat, 11 Nov 2017 10:43:51 -0500 X-Google-Smtp-Source: AGs4zMYlX3fiV32TTqaWnW3E5Kkz7EKDBk3TWQPEItnQnDDVN1oEPlrE2yut7a+xFGN4EI0QSvzv5w== From: Johan Hovold To: Dmitry Torokhov Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable , Peter Ujfalusi , "H . Nikolaus Schaller" Subject: [PATCH 2/3] Input: twl6040-vibra: fix child-node lookup Date: Sat, 11 Nov 2017 16:43:38 +0100 Message-Id: <20171111154339.16875-2-johan@kernel.org> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171111154339.16875-1-johan@kernel.org> References: <20171111154339.16875-1-johan@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix child-node lookup during probe, which ended up searching the whole device tree depth-first starting at parent rather than just matching on its children. Later sanity checks on node properties (which would likely be missing) should prevent this from causing much trouble however, especially as the original premature free of the parent node has already been fixed separately (but that "fix" was apparently never backported to stable). Fixes: e7ec014a47e4 ("Input: twl6040-vibra - update for device tree support") Fixes: c52c545ead97 ("Input: twl6040-vibra - fix DT node memory management") Cc: stable # 3.6 Cc: Peter Ujfalusi Cc: H. Nikolaus Schaller Signed-off-by: Johan Hovold --- drivers/input/misc/twl6040-vibra.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/input/misc/twl6040-vibra.c b/drivers/input/misc/twl6040-vibra.c index 5690eb7ff954..15e0d352c4cc 100644 --- a/drivers/input/misc/twl6040-vibra.c +++ b/drivers/input/misc/twl6040-vibra.c @@ -248,8 +248,7 @@ static int twl6040_vibra_probe(struct platform_device *pdev) int vddvibr_uV = 0; int error; - of_node_get(twl6040_core_dev->of_node); - twl6040_core_node = of_find_node_by_name(twl6040_core_dev->of_node, + twl6040_core_node = of_get_child_by_name(twl6040_core_dev->of_node, "vibra"); if (!twl6040_core_node) { dev_err(&pdev->dev, "parent of node is missing?\n"); -- 2.15.0