Received: by 10.223.185.116 with SMTP id b49csp1125711wrg; Sat, 3 Mar 2018 16:19:28 -0800 (PST) X-Google-Smtp-Source: AG47ELsJg/XrSbPTmV3w8VKOp/eter4117nKq3YKkuAmQSKrHRZUkxYpdNh+SE3stTx+EGP/BTls X-Received: by 2002:a17:902:a5c2:: with SMTP id t2-v6mr6121888plq.244.1520122768339; Sat, 03 Mar 2018 16:19:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520122768; cv=none; d=google.com; s=arc-20160816; b=uk22gMn4KwvNzsofJHE1V43X0UBaXwJZWbXpctD0iUJ2eftPwXSc0yZrLC+zsXsAuw lyz55HBvekU83rbg+kb89zbpjbRpKRFkb0+tU3ykCqte/bh590nJIoN42Qn5uMuUPLCB 2D6y4FJFKz5oGl3EzmRwA3dPSY63iPdgIFkaaSEHPpMTk4u1QAQOL32ZFMepqqbhHTVr 9lOCcHV97IKWgwigj2QWeeCzE6PvNvsL1NxKemq6KGkOtHDC/w3JhZSu9NE8zHt6gZ17 1w4ADbCVcob9RL1Kzz1pTK9QqkimHbI5PjPs0wWBuGPQonDhP4jGhQQ49IH+pRqT1YNl CmNQ== 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=D3/hLc/PSxffIFNFPpYoOaiXbUQo2zrPz9JsWFIvw6g=; b=RgfHF5Fkj4P+yWkUPV3Pd7eEQNo3UmH9c61/3ByvkkNAk91XwXdCeVm6LYWmiiFRzo 8pugirx58KRvN+lNWqvHw4+dD0E0ptzSJVpkAu4zOgQYIvzqhND4fpNTaqBIwn/mvB8z vhjcVL1HUHI/ujdATagEIu8ZMJFSmxTNjCkMyNoIAis7m8tealChU8klTgVsF1cEoKCz 2M6ZhPYJDZNbYqikXmhzuEfqy5WqzYWtgscJiJ0eRg45rycb+pJHtO7JBUD7hSr+WubN 6X3aBLOuoY17wgkf08ldTN2kSZwR31nMW+hsoqaRjq6KGZnTunYn+rC0uzp6blKjEm8l B4Gg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=sZZKzCuA; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q9-v6si6916433plr.110.2018.03.03.16.19.14; Sat, 03 Mar 2018 16:19:28 -0800 (PST) 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=pass header.i=@gmail.com header.s=20161025 header.b=sZZKzCuA; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933448AbeCDASp (ORCPT + 99 others); Sat, 3 Mar 2018 19:18:45 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:36641 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933402AbeCDASj (ORCPT ); Sat, 3 Mar 2018 19:18:39 -0500 Received: by mail-pf0-f194.google.com with SMTP id 68so5639325pfx.3; Sat, 03 Mar 2018 16:18:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=D3/hLc/PSxffIFNFPpYoOaiXbUQo2zrPz9JsWFIvw6g=; b=sZZKzCuAeQbf6Wl1vln5SvJu1u/gUgqd0VvToXZQj/k2MYINxH19eFHp2h4B21ne3P g93AiwUn4BD70lP9mihMdfKIWTp6xQljIFE8O3nMlae3xJz2NKMaGllhvfTbOYclO3ZY G5LvMpIaRvicwMtuJf2n6RM+NU2bcClv7YllrCJ40xJctikuEsRZ7BNw2djaKhsFzwjC Q79LrUGrmKxglfYu4fi/PVCcF9GGcAEtccKS2EOba8pDDnVfbkLJh9BFW2WHim2gcMF2 ySQSrmBhQPPMZMFQBwbCKe0LvYYkJ/r0BocRxf/UWeRAjqN6Vb0tRsGu6/w2ji0Sn+uh asFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=D3/hLc/PSxffIFNFPpYoOaiXbUQo2zrPz9JsWFIvw6g=; b=YSeD2GyWqNNT7Z8WRwxb76d4nI9fFd8NU/H+sRCRxj+ien69OXXDiLrwurngOUiumM AtyeD8/ovZHovuPyrB97UK8HptLLZMg+sAFCGkiUc2Ilmw/RbKljZH6AUccafnZkAO5Y omAN/Gxuf8pNpFatxOQC3lYcHBKVnTsAbGczbDEQWmDuqQLTbZotS0//+97W+6DWj/yz Yqbtor1Ji+XtRFGg/tBDud2A3U31YoXdJVBw5AXh66gYe/xn0sM08RtG2YBHdlnmw8yK 3iLcGoRwGJYw0L60o1bLD6dk1tQlOLWY0rGASH3CZN8tKIJyUaQf82QdfIFTacrTrxxU CuoQ== X-Gm-Message-State: APf1xPDletH62mPvf+wzxsOPOP1NoIFmMsbuErDGoZjFc1M45FLo+Pag P7/XJx7593/TM9USyGFZx49nRQ== X-Received: by 10.98.138.66 with SMTP id y63mr10485705pfd.12.1520122718950; Sat, 03 Mar 2018 16:18:38 -0800 (PST) Received: from localhost.localdomain (c-73-93-215-6.hsd1.ca.comcast.net. [73.93.215.6]) by smtp.gmail.com with ESMTPSA id t20sm17597343pfh.182.2018.03.03.16.18.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 03 Mar 2018 16:18:38 -0800 (PST) From: frowand.list@gmail.com To: Rob Herring , pantelis.antoniou@konsulko.com, Pantelis Antoniou Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, geert@linux-m68k.org, laurent.pinchart+renesas@ideasonboard.com Subject: [PATCH v7 0/5] of: change overlay apply input data from unflattened Date: Sat, 3 Mar 2018 16:17:48 -0800 Message-Id: <1520122673-11003-1-git-send-email-frowand.list@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frank Rowand Move duplicating and unflattening of an overlay flattened devicetree (FDT) into the overlay application code. To accomplish this, of_overlay_apply() is replaced by of_overlay_fdt_apply(). The copy of the FDT (aka "duplicate FDT") now belongs to devicetree code, which is thus responsible for freeing the duplicate FDT. The caller of of_overlay_fdt_apply() remains responsible for freeing the original FDT. The unflattened devicetree now belongs to devicetree code, which is thus responsible for freeing the unflattened devicetree. These ownership changes prevent early freeing of the duplicated FDT or the unflattened devicetree, which could result in use after free errors. These changes led to migrating some unittest overlay data into their own devicetree source files, and then converting most of them to use sugar syntax instead of hand coding fragments. Changes from v6: - patches 2-5 were previously patches 1-4 - patch 1/5 previously submitted separately as: "x86: devicetree: fix config option around x86_flattree_get_config()" https://lkml.org/lkml/2018/3/2/1148 Changes from v5: - Add __init to of_unittest_apply_revert_overlay_check(), of_unittest_overlay_5(), and of_unittest_overlay_11() to fix compile warnings reported by Geert Changes from v4: (all in patch 1/4) - move of_overlay_fdt_apply() prototype from of_private.h to of.h - of_overlay_apply(): add kfree(fdt) if resolve phandles or initialize changeset fail - of_overlay_fdt_apply(): add parameter size of overlay_fdt and use it for some additional validation of the overlay fdt - update unittest.c with additional parameter to of_overlay_fdt_apply() Changes from v3: - patch 1/4: OF_OVERLAY: add select OF_FLATTREE Changes from v2: - improve error messages in patch 4/4, as suggested by Geert Changes from v1: - rebase on v4.16-rc1 - update documentation - split out error message to a separate patch Frank Rowand (5): x86: devicetree: fix config option around x86_flattree_get_config() of: change overlay apply input data from unflattened to FDT of: Documentation: of_overlay_apply() replaced by of_overlay_fdt_apply() of: convert unittest overlay devicetree source to sugar syntax of: improve reporting invalid overlay target path Documentation/devicetree/overlay-notes.txt | 4 +- arch/x86/kernel/devicetree.c | 2 +- drivers/of/Kconfig | 1 + drivers/of/overlay.c | 134 ++++++++-- drivers/of/resolver.c | 6 - drivers/of/unittest-data/Makefile | 28 ++- drivers/of/unittest-data/overlay.dts | 101 ++++---- drivers/of/unittest-data/overlay_0.dts | 14 ++ drivers/of/unittest-data/overlay_1.dts | 14 ++ drivers/of/unittest-data/overlay_10.dts | 27 ++ drivers/of/unittest-data/overlay_11.dts | 28 +++ drivers/of/unittest-data/overlay_12.dts | 14 ++ drivers/of/unittest-data/overlay_13.dts | 14 ++ drivers/of/unittest-data/overlay_15.dts | 30 +++ drivers/of/unittest-data/overlay_2.dts | 9 + drivers/of/unittest-data/overlay_3.dts | 9 + drivers/of/unittest-data/overlay_4.dts | 18 ++ drivers/of/unittest-data/overlay_5.dts | 9 + drivers/of/unittest-data/overlay_6.dts | 10 + drivers/of/unittest-data/overlay_7.dts | 10 + drivers/of/unittest-data/overlay_8.dts | 10 + drivers/of/unittest-data/overlay_9.dts | 10 + drivers/of/unittest-data/overlay_bad_phandle.dts | 23 +- drivers/of/unittest-data/overlay_bad_symbol.dts | 25 +- drivers/of/unittest-data/tests-overlay.dtsi | 217 +--------------- drivers/of/unittest.c | 300 +++++++++++------------ include/linux/of.h | 6 +- 27 files changed, 586 insertions(+), 487 deletions(-) create mode 100644 drivers/of/unittest-data/overlay_0.dts create mode 100644 drivers/of/unittest-data/overlay_1.dts create mode 100644 drivers/of/unittest-data/overlay_10.dts create mode 100644 drivers/of/unittest-data/overlay_11.dts create mode 100644 drivers/of/unittest-data/overlay_12.dts create mode 100644 drivers/of/unittest-data/overlay_13.dts create mode 100644 drivers/of/unittest-data/overlay_15.dts create mode 100644 drivers/of/unittest-data/overlay_2.dts create mode 100644 drivers/of/unittest-data/overlay_3.dts create mode 100644 drivers/of/unittest-data/overlay_4.dts create mode 100644 drivers/of/unittest-data/overlay_5.dts create mode 100644 drivers/of/unittest-data/overlay_6.dts create mode 100644 drivers/of/unittest-data/overlay_7.dts create mode 100644 drivers/of/unittest-data/overlay_8.dts create mode 100644 drivers/of/unittest-data/overlay_9.dts -- Frank Rowand