Received: by 10.223.185.116 with SMTP id b49csp8123616wrg; Thu, 1 Mar 2018 18:02:06 -0800 (PST) X-Google-Smtp-Source: AG47ELv/fkaYVuESaMjONRhNMhQHkbV+MkbMvbPtLv9n2jxg0OEE4nESTrz6Bw9ul1kc/KL1balc X-Received: by 10.98.66.89 with SMTP id p86mr3969449pfa.228.1519956126621; Thu, 01 Mar 2018 18:02:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519956126; cv=none; d=google.com; s=arc-20160816; b=OfW+rXLVCaxH/1TOAPGA/rMZkW7EE4VVG/N7nNVA6uSRZtLbyCnWOGzUuia2b++M8U smJp8w8+iORK8ZO9sJv0fs24P0P+yYnPa6lhHqaYOyPimHi1LaqyVQchFt8JYQWAvfyM Uo1eOMSUZaPiu38WnqIbHfW8UawCLbJVnb7xZsxbSwAPVQw2a6M6UP7o09+W9VyheXLz ZBmqFNw78CbzIwj7+Uzuh19tDofOoCGJE8YwqEvLsh+qkWppng53l1OhStnJgc1YyLKY 7My67NRixf67zWL/dPPNUBKEygWv6LSjVEFKnEaF7flzw41cTqlfNP0GcAEBsbQ8Hy88 yt9w== 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=rtucS97HD2z286Kw/F865GUuyvc0MzfxA8a1uJcl/Kc=; b=G4Hc/49jConyRD9a6PHy0GLr7RwAOfzDjNjWzomVOVpZ/KYVUk2OZtcFcu0h18auuQ lxFJb2maj5BRdwX/0lpfLTi4whGQLL5KObkNeE72mrtNlz6lDMKawaR6la/186IVw2PB BD0NExPePgxfYqYqsxaxrxrt/GjEpmBPO4ABfmrrQdhUQEO4u/KsCYnPhM/Un/ThDzrJ 6u9Tmw6s9oDpUouQ38ZEi7LjKbKh2P7wzbnhyI01yl8x8YZOxxo4cwGo4AX+XxfwJAkq mKaR/tenvj4lDabuAnap+mMmr7rIDZfY1ob2vJM8PCTxJRee/Smi3KhuDURRbbNNc09I VoLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kQB1YpFl; 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 x10si3948276pfd.188.2018.03.01.18.01.51; Thu, 01 Mar 2018 18:02:06 -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=kQB1YpFl; 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 S1164075AbeCBBwu (ORCPT + 99 others); Thu, 1 Mar 2018 20:52:50 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:36957 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1163120AbeCBBwr (ORCPT ); Thu, 1 Mar 2018 20:52:47 -0500 Received: by mail-pg0-f68.google.com with SMTP id y26so3124285pgv.4; Thu, 01 Mar 2018 17:52: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=rtucS97HD2z286Kw/F865GUuyvc0MzfxA8a1uJcl/Kc=; b=kQB1YpFlZXk2s4hO7NaOY4QqdnsVyV0wKwvAJqcaW+TDGqY1Qc4edROzS0/0ban803 cJfxzdK/fUWLX1ZfcdXtjWAah+bd1uGPiWz2qSj3sqrLT8POXlvWC3ImmSKhHPQzvqnp 9fpw6ljALtLc+Bo4UrQBJSP/zfgITLxNYWHfoPaK23km271wBzpjUxtm9fG8aBHHJMt8 EcJolXxoEhnJ3UZBuXmVKfwRuilD88XrG8RgU9JhojWEOC5zZraZUMtK3VaXMwfkwg9j xENWXCfOlcAzzaXv7MlXpaRFNif1Qkkbihi+BAj63gemoyVBV0cB6FhE2siwrFbdg1S8 cqWw== 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=rtucS97HD2z286Kw/F865GUuyvc0MzfxA8a1uJcl/Kc=; b=hrTyfq1xG4t+Urpcs/TxYCRvJT/hJPUP+zfEeek+HQ74po4xMn7SItoPjrUy1BcvjB gl49ZT468opSPlM2pALsMfb4jwkgRIiWE/LkAGr3zxIPiauAsGiIwcP5euK/gGjPxHvp fKAeIsbhj7Ow00+uL99emr62zvuxzkdmLFc50Fj5cQBnap/CH/lZECW4KN2eWvAIJJ3z ZS3zYHl+6dtTVqAJzubnzbLRSFZjeexonrt5+dPHOi0bZTOU8+NoBIeQRzfnaJb/QyR/ AcB1aQGJJZ3IlpBJ6wzX93+tenxos8CEh62JJrVRucFV8FMOpI7ZsH1P46KfiIL3yqlG WXpQ== X-Gm-Message-State: APf1xPCJpRJonWoQkGnE/8sZyCvXNak/1YFkZDZMXp3wQwqQCE8wv6xl A8eQsgfCwW3ujAnmFibHyr4= X-Received: by 10.98.63.75 with SMTP id m72mr4019277pfa.122.1519955566567; Thu, 01 Mar 2018 17:52:46 -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 b88sm10550313pfd.108.2018.03.01.17.52.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 01 Mar 2018 17:52:45 -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 v5 0/4] of: change overlay apply input data from unflattened Date: Thu, 1 Mar 2018 17:51:56 -0800 Message-Id: <1519955520-29975-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 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 | 294 +++++++++++------------ include/linux/of.h | 6 +- 26 files changed, 582 insertions(+), 483 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