Received: by 10.223.185.116 with SMTP id b49csp1613754wrg; Wed, 14 Feb 2018 21:39:28 -0800 (PST) X-Google-Smtp-Source: AH8x224eiND9aw31L/Nh1fvldCpCzP6Aip28w8dBrKgwoW1i9cIiThN2Ers0bUZtUATJ2hv/41Uu X-Received: by 2002:a17:902:3103:: with SMTP id w3-v6mr1450399plb.3.1518673168122; Wed, 14 Feb 2018 21:39:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518673168; cv=none; d=google.com; s=arc-20160816; b=JXWroHQGqnytZ//Op3Uw4jbQKNWlVJn87hyXE8SqhnH/3DndS4u2br6bEE0K6r/d4s kWOuF0EYcavalNPAp2ExzBO5huz/NsO1vP5ifjfjTzXzaLklkCqlNX3otQK4Ce0+hLMR uTQ0dxMiksoX56pMtqT2pAOGfieM4qPHAv7FY4O3Ji3MXM63qHLeNvLxA0iBORRuynRD kM1BECZO+6wd/UUeS8Z8f1tPScHKxvH/t73JeSl8OQG9NyECW6MoOxDfIgaua550Wuox HYOA/Qo8GhVQMdHxOyGgh+Q7j2L2t47N/+yaL+U3K1LKjumSKcaExk0j/AhhiiKEfge6 evcQ== 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=5l/nrkioEGGCKrcYwI6jHwxNvh8lkavqflrh7G78pvY=; b=jspmlG0QMAJJlnhpb1tVVSqXOZXj+2RQz0sH7qG+CIb4GJNkfJNZTJVvhUbfzOsSRS uVOKAFZ9RPvNMY/iyxyAsSeORUXqa85YNledCtwcvLC7oYaiThaqTCKSUr1BabOJiZwM 3bnp1nKVM/7Jam4FuIW/oq2Ik6cUMLhm57Eg9p1w3JaBmlDcZrSyAT/A5RQEb3TA3j1w YR7LyCQ1FbtROLIStKqhQFJjKhg4h1LJ7YDcE5rWBWLMW/DbipL48/nHLVxMlUikbDxG DJ7F4p7JW2+I7faIUPvDbN69PKhb/kH9LCnyyHJEiY44eAudNyabvFLYCwcc4Ct2XtYK xP0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bp8eaT+d; 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 p69si1997007pfl.73.2018.02.14.21.39.13; Wed, 14 Feb 2018 21:39: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=bp8eaT+d; 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 S1752398AbeBOFg3 (ORCPT + 99 others); Thu, 15 Feb 2018 00:36:29 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:38681 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751074AbeBOFg1 (ORCPT ); Thu, 15 Feb 2018 00:36:27 -0500 Received: by mail-pg0-f67.google.com with SMTP id l24so3450739pgc.5; Wed, 14 Feb 2018 21:36:27 -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=5l/nrkioEGGCKrcYwI6jHwxNvh8lkavqflrh7G78pvY=; b=bp8eaT+d5MoxREkp0BYGno3DqPn0Fk+8plnhvjO6x2Qt5PKUDPWW/sWFj5NKWrALJN GS0dogeSa6sHTXWniAPXI/OOr6jni1RzVgoGFIgMnDssDbcXjyQG8cUb1lez5W7+Ts3F 1Q/DvtWWmdgaC6hnTMP1ZeDr2njRzcR/jdxZl1KBf05kL4fF0qBzOk6oPNoAo5glKFU8 PbPc1awfFYmsSKkkjXGPX+1NZA17YKjtLFyxtyEkWdPGN5Y9ZNn5av1v34HXf7dmCdRN 1ut+i7/nw2LSS99PsrkX0sanKWK/zMjRJRTI+XkDgVzUf6GsigkEc6txAgGdt9gtQgn5 +h7w== 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=5l/nrkioEGGCKrcYwI6jHwxNvh8lkavqflrh7G78pvY=; b=sNwq2N0y5uJ7AfR3JFVj+BgbYqP//IrNfGtKpkkwww54QX6dG90UISIikkxXSoSoJG KOgPjytIhQ5BIZa5rUbrmKGEiN9wFTrDvVWaHwjir5CJ+2FoEa8yiSxHPLGo0ete6n0X UHWytN52Gu5yIdx81hwRgGhtYkCncuRQK0pX48PnrxS2IUQ9pxrm87CpLhaeeXShqsxA JY/TqLiuYw/V9uQC8bSQxdZw51/9QC+ICiaOGQBibvg6/1rmo1w0u0aKJXR8UUS0hZkH p6Or1/xAiAfTboFgp18dL4od+Q9PW4OuB0+o/5Yrs/F/vZWrtmUr/KiE5IHpVGVYQSQE JM0Q== X-Gm-Message-State: APf1xPAze6nkBzaM9nEF2m0VIlV3iTCQqPJ89e8g+VBUE5dMWStC2HRp UtxW/spap6HrxGb6bB9UjRxETg== X-Received: by 10.98.216.137 with SMTP id e131mr1094212pfg.17.1518672986822; Wed, 14 Feb 2018 21:36:26 -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 d74sm44885032pfb.54.2018.02.14.21.36.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 14 Feb 2018 21:36:25 -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 Subject: [PATCH v3 0/4] of: change overlay apply input data from unflattened Date: Wed, 14 Feb 2018 21:35:42 -0800 Message-Id: <1518672946-7310-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 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/of_private.h | 1 + drivers/of/overlay.c | 129 ++++++++-- 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 | 294 +++++++++++------------ include/linux/of.h | 7 - 26 files changed, 574 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