Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp269013imm; Wed, 22 Aug 2018 04:00:31 -0700 (PDT) X-Google-Smtp-Source: AA+uWPydACZ2oSyo8IpNIJB/NWHb2evzgk31RdIaJeFB5C7OhDp4uVcZ6iDyhoGrH9NcTWGU7ezM X-Received: by 2002:a17:902:7147:: with SMTP id u7-v6mr53999815plm.154.1534935630956; Wed, 22 Aug 2018 04:00:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534935630; cv=none; d=google.com; s=arc-20160816; b=zpA/I/fNDWDbokemI/edr/VAgS+CXRTuvfnm8C4Q1hjYOs+Jgq8SeJPdlepp9nJAdA Xdx0LzCPHySXQ79gXMDVAoZ7j/sx2pUdX3jgqCxBOHmzAgf8y6anYVJja+qO/+FhCGe2 PUj7dYCfT7afzXLynMQI+4aBYd2dgMKuQrHHitoGl4zRraosNqTfRba+WNkXFCp3Tjg8 //eKq/ji2nvuzkR5/lDWizoB/N+GBXCgYc1hWHptrQlD4/q2HxF9tpLotQlJnAjtyfkg +GufiSUReWoxXDT5DFSVro4k4DolomlnqDGlY9wri5Gz8LZ/rgGnb6XalLsmL0t7pYQw 4+7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=wSs1l6PmM4K4/Ve834uTzWQTw3quXKXXanO8Je85/wc=; b=iGlWiGjJ0wSQ2B5Am0wuG2pOEL7twwzol9M7ACrqiAiLRWcLFKbXPHtXzOxrU4rpjr GkXgNUS0DozuPZosvM18xo6HZcgTaBS4/RcXxy/zOHy3I0DUSQJgH2onJLoMRAy3jUuE SI4o75vmQjbcKMQTOCWxYM1Z+e1M1/Kefy1qFfW8NXvNX+hNfY3TuESyn4hgipkE86+p xII0Zgw3WVIk1RVkb7SlSrY72ABufS2ltuqKzmCfuzE5ZZyznbuba4GOXrMKFg1bYvUN RK8yz5GWcLXqAhzmT5bQrQr8ujncYVLnmv2UoIWo+2YFq7hbKRAyNRQCPC+So4j58xfO +LLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=LGbb8p0e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n8-v6si1434818pgl.101.2018.08.22.04.00.15; Wed, 22 Aug 2018 04:00:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=LGbb8p0e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728837AbeHVOVo (ORCPT + 99 others); Wed, 22 Aug 2018 10:21:44 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:40719 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728355AbeHVOVn (ORCPT ); Wed, 22 Aug 2018 10:21:43 -0400 Received: by mail-lj1-f194.google.com with SMTP id j19-v6so1090405ljc.7; Wed, 22 Aug 2018 03:57:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=wSs1l6PmM4K4/Ve834uTzWQTw3quXKXXanO8Je85/wc=; b=LGbb8p0emylOWoSTc24ySPHVbX4LBMmOkKSu38ijl4uoztrH5yOlapbdF07+4XCADG jO/BgK524VeLKoLxVg/UVz6PbNhUvBMrbepD+PwhV0jQmEEgijf/AvwQBc0vJ3CCYTqy WqcFd3JtSqxQGoewj7jH1Fa8waAqmRqTyILlBG1Pvz+hOuqVfKCpvEA4RWl3mqBovJ9o ZVymqOflXKsO0sFHYor4/9qzn4Jnf4cACADXUa+Eb7NzkUcnpOEgPXLpq6kEdcHkoDzM sAPOtL1ctOf/aqKGVZQvj/M40mjixnnb730s7u7E+9mz/TXHalJntLzVYRHnCeqF8a5d 9I/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=wSs1l6PmM4K4/Ve834uTzWQTw3quXKXXanO8Je85/wc=; b=Pb1JyhRA+YiWGgCjBSR5K3CGkwe5/sLP/hpPVhOY8Afyw5j6WRwbBsHGEcOVREZxQE yBlujFYCu+i7qYAroNa98kcMXYtUC3uX22RNGmMU8B6aDFBIQ7IP1R56jsKIsBF9vnjv kGT++HAKs90lqOedtnyKIpGYPrTE22GuwdvbnwNkxSQtDJfB/2w6y4PkUm8m0CbyHr4L f6E+CDFx8qzsf8qob/V9H4mBOcT8yq2sn22z3JRdbc4sPI4ifIccgz+sOF9Y3AFrA3ed oIgvxbSsxN19yEUGqjoY5b7lHl2iO1qZ0SGT7vg6lrFwtnAJ1QaOm/QAVeZVx+Co6/7d SYag== X-Gm-Message-State: APzg51ADXNQY/CYw75qAEApD6JRaWonP+0akQPhFQRehd5QM9KSNa4Eu ZBVweYkK5O5V/sTBTAKznPA= X-Received: by 2002:a2e:3c1a:: with SMTP id j26-v6mr4348454lja.149.1534935437889; Wed, 22 Aug 2018 03:57:17 -0700 (PDT) Received: from xi.terra (c-74bee655.07-184-6d6c6d4.bbcust.telenor.se. [85.230.190.116]) by smtp.gmail.com with ESMTPSA id z18-v6sm253692lfj.89.2018.08.22.03.57.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Aug 2018 03:57:16 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1fsQpB-0002X9-R4; Wed, 22 Aug 2018 12:57:18 +0200 From: Johan Hovold To: Rob Herring , Greg Kroah-Hartman Cc: Frank Rowand , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , CK Hu , Philipp Zabel , Rob Clark , David Airlie , Ulf Hansson , Josh Wu , Boris Brezillon , Doug Berger , Florian Fainelli , "David S. Miller" , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , Samuel Ortiz , Sebastian Reichel Subject: [PATCH 0/9] of: fix compatible-child-node lookups Date: Wed, 22 Aug 2018 12:55:38 +0200 Message-Id: <20180822105547.9634-1-johan@kernel.org> X-Mailer: git-send-email 2.18.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Several drivers currently use of_find_compatible_node() to lookup child nodes while failing to notice that the of_find_ functions search the entire tree depth-first and therefore can match unrelated (non-child) nodes. The fact that these functions also drop a reference to the node they start searching from (e.g. the parent node) is typically also overlooked, something which can lead to use-after-free bugs (e.g. after probe deferrals). This series adds a new helper, similar to of_get_child_by_name(), that can be used to lookup compatible child nodes, and uses the new helper to fix child-node lookups throughout the tree. This is related to the fixes I posted about a year ago, which addressed a similar anti-pattern when looking up child nodes by name. Since it took me more than a year to get all those fixes into Linus' tree (one fix is still pending), and as these fixes depend on the new helper, I'm suggesting that these all go in through Rob's or Greg's trees. Alternatively, the helper could go into to -rc2, and I'll be pinging submaintainers for coming year as well. ;) Johan Johan Hovold (9): of: add helper to lookup compatible child node drm/mediatek: fix OF sibling-node lookup drm/msm: fix OF child-node lookup mmc: meson-mx-sdio: fix OF child-node lookup mtd: nand: atmel: fix OF child-node lookup net: bcmgenet: fix OF child-node lookup net: stmmac: dwmac-sun8i: fix OF child-node lookup NFC: nfcmrvl_uart: fix OF child-node lookup power: supply: twl4030-charger: fix OF sibling-node lookup drivers/gpu/drm/mediatek/mtk_hdmi.c | 5 ++-- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 5 ++-- drivers/mmc/host/meson-mx-sdio.c | 8 ++++-- drivers/mtd/nand/raw/atmel/nand-controller.c | 11 +++++--- drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +- .../net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 12 +++++++-- drivers/nfc/nfcmrvl/uart.c | 5 ++-- drivers/of/base.c | 25 +++++++++++++++++++ drivers/power/supply/twl4030_charger.c | 5 ++-- include/linux/of.h | 8 ++++++ 10 files changed, 68 insertions(+), 18 deletions(-) -- 2.18.0