Received: by 10.223.185.116 with SMTP id b49csp7728956wrg; Thu, 1 Mar 2018 10:04:48 -0800 (PST) X-Google-Smtp-Source: AG47ELu11dyAPswMaqGwyju8wPcvZc6PyxEsEZ3mJ0gHsLUrqD5tp4XiB6fYHSgFSo1iOi33toui X-Received: by 10.98.16.23 with SMTP id y23mr2805711pfi.84.1519927488541; Thu, 01 Mar 2018 10:04:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519927488; cv=none; d=google.com; s=arc-20160816; b=Vdxijps7NEYJhvBuVN+EH156jHtCmdwB26T2nSMrKkZNPZc86D5xCw0csHEcOp2gKk VNdCG6mwCH8GjD8/B5YRP1QqWEiNqJmOhs6SK/C4BJc64UIo7ZoDX2c7aYenKTiORgGb 9ynFAr0BiiPL4EoOvms4is4macydOS/mNcTAnAPEWu//x33ofxf6m/IuEJbH6L3aXVb1 KaGgIn4vBWO7vWoZs9wlq1KFhCBWI5HQQHulDTnIfHeh26YqMBabD6enypDk1AD8C3o0 ud+Gi0ANyNi9xyo158L+4wCCPtbT3e1r3M7//qCbb/atnzlIf8DpQweDruGVVjAJ+YRb KCmA== 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=wBdOiS6VYaJFA1dtejPYqMLZKovlrUxHOHgQ9xpP01M=; b=x55+tX2mOcLfAejftwfa7MpYkBnovNoAFIc0NPm0ajB0ja0nwSeqnjyJdCBkKEdbv9 CKXGHYJUenrWuBaxJNeTGD6yuhbl4RKKY8HD29lSRLXjhjHevvQ7/mHqF/KaM7kMHUjC d7GHf4jTQkiwBMQ+9MDorGmiQ8Ta233O+zgDbgpEmoW0u4OpaLqtwIpR3dVOYghqkCXT Fk+IKBya83UOZtyTOetktGr+DSEWECI5dvUZsZPhENlsfBq/AjCdCIqiOqkrqIe3GirN jKBauQyj5QSQAbmQoOdy+SCF/WbpXlltEAjjQ0U4+sIif5RhXqUYznSIZtliORTamkww jRtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fMcDNS3y; 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 k186si2746824pgc.15.2018.03.01.10.04.33; Thu, 01 Mar 2018 10:04:48 -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=fMcDNS3y; 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 S1033715AbeCASBr (ORCPT + 99 others); Thu, 1 Mar 2018 13:01:47 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:46012 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1033223AbeCASBn (ORCPT ); Thu, 1 Mar 2018 13:01:43 -0500 Received: by mail-pf0-f195.google.com with SMTP id h19so1900284pfd.12; Thu, 01 Mar 2018 10:01:43 -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=wBdOiS6VYaJFA1dtejPYqMLZKovlrUxHOHgQ9xpP01M=; b=fMcDNS3y1MH4+dKg1Iiug+iQ54CIljiJhWxwbemCjtVUbtGLTmAxQWop4I9aNVsy9s Pd+CfcoXYYZPKqpkpVdluIJNtriNZWGqVaK7V7d2qnbsY/f28qpsErMbsDv181SoX2b2 +OUT1aw+6mp3oHo06vjQM0PQDbsihmZZMnh3x8jZrmbIGhpivN4iXBS9YLrFVrFaIVId p/6MDYyvCg4btEWTtGPM8jXdSdcTL2LitAVaCUmGEaJzhOxKxPUEW5L/O8alkpwgR1eb eZRYEKWkaQ2VIJ2X1iQ7IPOvTey0A0EDphCLp1reTGtNTl+/9tKux6VFOhGgVHMG6Er3 GqOg== 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=wBdOiS6VYaJFA1dtejPYqMLZKovlrUxHOHgQ9xpP01M=; b=tJQLJfcZoqCxMogUl1r1l2OYOW5+6xEoCZa2IBAsV7o61KKhbXjEugpkJOl6/9e26D Gb5B+Tc+nqH4eo36vrY/SIBzk9oGqgBn6Saw9f1qrIcKyD/ddvYvXzuqsBJyeCNEErfY qhxu2Jo8IsaQtkZxmrxYjaxSssnfJETupUz0iVBrtjhfkpQ0+Yi5Z9BR7O28vIbIQjJ6 YdE1T79eIWKEfBjUUTSo6Um1p5fuazt5Nwd2XXaISzPJcGhKAWAox8xzmrHh4M3r0J0o ZS5c7bKzCfRhXW53Vx/NLKIDQaaSMnfoxMEV53x7YsTSxj3lTy8kpjSGyalfkGSEvOA1 8afw== X-Gm-Message-State: APf1xPCxOe/A6WI2qqFLeGPzBaV9CXwoGehAkPI0ETypDz82VqXbEsT5 rIMQXP9QFwrS28beHSSVsFA= X-Received: by 10.99.95.15 with SMTP id t15mr2168549pgb.183.1519927303164; Thu, 01 Mar 2018 10:01:43 -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 r29sm9407554pfj.99.2018.03.01.10.01.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 01 Mar 2018 10:01:42 -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 v4 0/4] of: change overlay apply input data from unflattened Date: Thu, 1 Mar 2018 10:00:52 -0800 Message-Id: <1519927256-4868-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 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/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 - 27 files changed, 575 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