Received: by 10.223.185.116 with SMTP id b49csp75458wrg; Fri, 2 Mar 2018 13:58:28 -0800 (PST) X-Google-Smtp-Source: AG47ELv6SzN8H9zwDemmB7UL057HXJLFdi5Fjmr/lWWpqfyuGgM1jjX4LBtD0Ucsl8m2baA9fAIF X-Received: by 10.101.90.10 with SMTP id y10mr5662598pgs.34.1520027908045; Fri, 02 Mar 2018 13:58:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520027908; cv=none; d=google.com; s=arc-20160816; b=tbcHB2BJSlXWZTaLI4fVMeXSolR1yg11xTCwFDS+925K5AumFxgN/ECfxIO2gnvpS0 cxI8fw+KNdSapmmh5L7kmJZwF0cy3nIZ5bZMcMF7VuZqpjY4lz74dHCZLIQMpG4NdGOw 3vgw7ldIujD650ebSJmWDIFagh6ProT5FCHWkrNWoeGxSso7+eUn9pcxzCxps2TpigLK Jq86koojzim4A6NupwBXnzdk/qgbpRpREo6sPksG2skq+zseIr4Sl2nO4Jlzmzca/Ja+ d4tu1NBF0FAC0eVNrIqECPLJJAoo7Bt6WjATDEVPOxga/SxLUPJ/98cBzxnVGCMc57jz vv0g== 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=y6ILPpRdG0uJPyuIEmmRpyfCVHk3DfdTDuykGQWtLw0=; b=Ses/ezzjZ7202MQ7C5lZvNkgINTrPlRNj6BFvziHlduWIEvbR+yluXcCP0W9Ww4JDd /Eke2RFj5kniVH3o6Py6OEGsJCO16XzjQoEaH6FCFj5BYp1fjj4BFZ2vaMNVSbHVEpGu 1O9u0/D7QvDz3YQAQUayBeNLAJZDMc07YSpDnxdswekgEdsh1KYTz80X4En0zhSoEsmF qTGlyqWJydEIcRgiyX7Cow9Fn+Il4hz4PJ/U87BMi96vFAJnin+V4Gp5NNn8lfUiTHt0 +s0OcREgOH8to0hHR4ByXjVsgFvPvwtB3am/qNC2YfRpztGUU4QekJ9L7H/AWAZEV7JE 8G9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Hcf9OlNl; 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 r13si4515196pgp.504.2018.03.02.13.58.13; Fri, 02 Mar 2018 13:58:27 -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=Hcf9OlNl; 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 S933408AbeCBVFs (ORCPT + 99 others); Fri, 2 Mar 2018 16:05:48 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:38097 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933374AbeCBVFq (ORCPT ); Fri, 2 Mar 2018 16:05:46 -0500 Received: by mail-pg0-f68.google.com with SMTP id l24so4258133pgc.5; Fri, 02 Mar 2018 13:05:46 -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=y6ILPpRdG0uJPyuIEmmRpyfCVHk3DfdTDuykGQWtLw0=; b=Hcf9OlNll0Z76g+AHG2JI1SEuLA5k/+8w9XetXhsA89cA5hnI+X6+uVD3wUr25n49S +YzkPsNkjSa9VX9tPyBPXKjV/8TlxMn0tYKOx4+AQdJo6LtYiOPjJjBkZT0WtHlX9MUI rg1b8ALMDbLqSXRsjfDCElK/30b8CBX5Huun0IbLedx22f6ES4fWra4wQ5wH6G7Kq0X+ vuUQFI6GSv2hrMv4ns12mPWkiZy4H4rxcEmeI0fuCCer9sLf0C5KU/W+J5Ogfzm0waGS UfuK69Tllxz7N8nd8kqAnCw/KRpzBQrpueCvFG6gyUvfIYV0P47doaOezBWr3tPl5Dd+ iv0Q== 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=y6ILPpRdG0uJPyuIEmmRpyfCVHk3DfdTDuykGQWtLw0=; b=EFDb8isEDcK4mvX2M1ogynifmwSnJrNwFgfRktX4cNYlX8of3GBpOYLHBMoY+KrPY5 zxnzPK/Tu9py01CHusaMccQQS+3NIJJ7lZSAB4VUQTw0cpQvIsdOUgZeeRJWeIsr0HWB uRZhsWtYjpx5Q8/4QEvev+X/6GjDNYJ9Y/2f4UgjKCi+++szDFSx8+vlCbXMos8AsL5o CBYRkGQkIvkQSIQulCBwA3r6QlCbRbAB7Yh4RfzN5eoOh6HFNdMRe7xIGjGtLFsoSvqN gFItA8bfBtSPTLQkFglHTuzcPgdSEUhL8NjW6Homl35p4ks6hhNHypEV/Vxe2Tkx0y0Y wKvQ== X-Gm-Message-State: APf1xPCSIP/qpKne8HdQyue7qemOK3FaH6YLBJOSSJStAYnbC+oWDuTe AyRB9axW3DJVMrkVa3/RLbc= X-Received: by 10.98.91.66 with SMTP id p63mr5123859pfb.163.1520024745440; Fri, 02 Mar 2018 13:05:45 -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 b21sm14186614pfn.145.2018.03.02.13.05.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 02 Mar 2018 13:05:44 -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 v6 0/4] of: change overlay apply input data from unflattened Date: Fri, 2 Mar 2018 13:04:56 -0800 Message-Id: <1520024700-31315-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 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 (4): 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 +- 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 +- 26 files changed, 585 insertions(+), 486 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