Received: by 10.192.165.148 with SMTP id m20csp1366386imm; Wed, 25 Apr 2018 17:46:16 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpADY7lSIimFRjOKCPVDd6XKc/GvQyGyR3x2MLcLagfu8W63nRk0ptQ+ZnFcKU5qz7KCoOb X-Received: by 2002:a17:902:d808:: with SMTP id a8-v6mr889216plz.177.1524703576481; Wed, 25 Apr 2018 17:46:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524703576; cv=none; d=google.com; s=arc-20160816; b=azm2WZa5/w0/THbm0uxT0LJbWwYxJIrXmhchlElCsU4GaROJ9+TuwCZ7LiVWdNd0bP icUMMLNE4coR/cB1Cragm8JrFnchSTeb1ChBjHzvy3YeoOCYeh8JKy0TrUo4sTNKhwh/ 0FjkffArWsB0ICPZqA26cO+v2vMCV6fIgqeLFWhfwPZxQPJf+3yTjRIEXuzjL5pDwdV4 6zx/TRq9IpCPVqPd1gGtRMUB0LAiCcmElE6Wg254X7xLnMzPIJUBnf6KhYOWlbB8omxL /51a5h+0OSUoRMG3ptus6yj2zLu8ZBItMZrAQ6iznZrqMb/HPADL/aT3GlbsjCAqNMiw ULew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:references:cc:to:from:subject:dkim-signature :arc-authentication-results; bh=mzRery0WNsA5OF/oS1NS/IImWzmt3zmg02rAki0UJfA=; b=hjqXEc+Xoug2MKmEZfQGkqizg5BoPOm09RbK0A9vrinAW1c8QsuD0OIiN2vtyDjt54 bvWrR/bIhMUo03Qx3Q0z7RqWP8/mGxsEsyzRFid6V8evnlcf3k4N27sJ6EvSBZ7vYEng OA/jSWhNV4CRi9gStH3h3OjN3snjGAl7dDuay6XrXG967MEaFizsYM3Dm50pyYzwUMrc eP4znDeTTgHzshY4KiFCLxxT2TcyRDUZ/v4eJtxmc+PBdR1zivyiUn6yiVJwlHNs4AaN u8spYA5UapN463/mtKCqLZWLOp3ShZFM4jtTfRjtZyQp8EvYypFaWJiv/bGsF+/sRrWx 774g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=D81j9g6k; 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 65si15209341pgh.248.2018.04.25.17.46.01; Wed, 25 Apr 2018 17:46:16 -0700 (PDT) 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=D81j9g6k; 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 S1752566AbeDZAoo (ORCPT + 99 others); Wed, 25 Apr 2018 20:44:44 -0400 Received: from mail-pg0-f68.google.com ([74.125.83.68]:45989 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751422AbeDZAol (ORCPT ); Wed, 25 Apr 2018 20:44:41 -0400 Received: by mail-pg0-f68.google.com with SMTP id i29so13035296pgn.12; Wed, 25 Apr 2018 17:44:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=mzRery0WNsA5OF/oS1NS/IImWzmt3zmg02rAki0UJfA=; b=D81j9g6ktjtVWLhqdgA179nFJtRXGJEiu6OY0aVLxo6j5DtgTvTSqa/NdTSCA71l70 fcogNgQOFveCiR+mYHrWPZjJMa1w/SMXnHS4AfWtP4MBdDB/EiJgfllEQRlZZq9dHTaj QX2v3SL7lRaZF5DqJ0LgNC9Zfzhx2AEaaSCtALYHlncugxqj0qQ3ViJH69dU+AvxlxPg H8eymWB/hdpLyItd0fMGCfl+3zURvPKjmRaFcxe35U2ishXFGM+q5nd31ZOugRqOm7qy RYOHisEJYqbFtFFs0xzFeBXTTmCdhL9NNFSXYYispRukFu5v8o/ZimhJe+wu+Y701h4l U1QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=mzRery0WNsA5OF/oS1NS/IImWzmt3zmg02rAki0UJfA=; b=qeSDlucLUZBlFvWabonaJP6S5a+1gWDP0AivSlHqtnI+MXyhI819sd+OMQIceTIqvk 3vGP1kOONrNC/D/rAJR6VgWppmRV3xXhOpuCa+Ix+hGK5Mh6HbIQwICzXruIzeWj9nXy 6H3sYUp7wrP5KnX/qkDbDQsqxe/oZ28to0B7hCQfuVmhBDArHTrph5j7b8VOYUu17psa KdP1iBq/Lmwskz1QL3fIT537AqCfsgInjdnqcYYXEocn7CZpj24yec6AkNEeSyO/vzbw kh9jVAGNVVut2YWMHgdwmnJiHbLaCS10exmVpSeRubRX+LIuvEoKykbK0hrd7R2P4pqp Lb8Q== X-Gm-Message-State: ALQs6tA5pcd9sWYRGMZwZVxWguMsRbkfPYQIn6J7E7jf7GnqLoO4SWDd lIXQUjI041lPSAw02AsqUN0= X-Received: by 10.101.75.202 with SMTP id p10mr25678330pgr.339.1524703480706; Wed, 25 Apr 2018 17:44:40 -0700 (PDT) Received: from [192.168.1.70] (c-24-6-192-50.hsd1.ca.comcast.net. [24.6.192.50]) by smtp.gmail.com with ESMTPSA id u20sm29557295pfm.58.2018.04.25.17.44.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Apr 2018 17:44:40 -0700 (PDT) Subject: Re: [PATCH] of: overlay: Stop leaking resources on overlay removal From: Frank Rowand To: Jan Kiszka , Pantelis Antoniou , Rob Herring , devicetree Cc: Linux Kernel Mailing List , Alan Tull References: <097f1b01-6cb4-8dcb-0498-7b4c59a7ea53@siemens.com> <7aca82c1-a02c-2f84-bc32-6e8a118ba601@gmail.com> <90e7da9d-d40a-17f1-e627-873f58a3dce5@siemens.com> <17561711-94f7-b3d4-8f06-9cfa69daaf23@gmail.com> Message-ID: <033fba6b-d93c-249c-d552-1f5336b34387@gmail.com> Date: Wed, 25 Apr 2018 17:44:39 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <17561711-94f7-b3d4-8f06-9cfa69daaf23@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/25/18 17:32, Frank Rowand wrote: > Hi Jan, > > On 04/24/18 13:58, Frank Rowand wrote: >> On 04/24/18 10:50, Jan Kiszka wrote: >>> On 2018-04-24 19:44, Frank Rowand wrote: >>>> On 04/24/18 09:19, Jan Kiszka wrote: >>>>> Only the overlay notifier callbacks have a chance to potentially get >>>>> hold of references to those two resources, but they do not store them. >>>>> So it is safe to stop the intentional leaking. >>>>> >>>>> See also https://lkml.org/lkml/2018/4/23/1063 and following. >>>>> >>>>> Signed-off-by: Jan Kiszka >>>>> --- >>>>> >>>>> Ideally, we sort out any remaining worries during the 4.17-rc cycle. >>>>> >>>>> drivers/of/overlay.c | 13 ++----------- >>>>> 1 file changed, 2 insertions(+), 11 deletions(-) >>>>> >>>>> diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c >>>>> index b35fe88f1851..3553f1f57a62 100644 >>>>> --- a/drivers/of/overlay.c >>>>> +++ b/drivers/of/overlay.c >>>>> @@ -671,17 +671,8 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs) >>>>> of_node_put(ovcs->fragments[i].overlay); >>>>> } >>>>> kfree(ovcs->fragments); >>>>> - >>>>> - /* >>>>> - * TODO >>>>> - * >>>>> - * would like to: kfree(ovcs->overlay_tree); >>>>> - * but can not since drivers may have pointers into this data >>>>> - * >>>>> - * would like to: kfree(ovcs->fdt); >>>>> - * but can not since drivers may have pointers into this data >>>>> - */ >>>>> - >>>>> + kfree(ovcs->overlay_tree); >>>>> + kfree(ovcs->fdt); >>>>> kfree(ovcs); >>>>> } >>>>> >>>>> >>>> >>>> Nack. It is premature to submit this while the conversation is >>>> continuing in the other thread. >>>> >>>> I'll continue the conversation in the other thread. >>>> >>> >>> Well, at least the strongest argument has been resolved now, the >>> notifier topic. Curious to learn what remains. As I noted, we should >>> work hard to sort out the API regression prior to the release. >> >> Nope, the notifier discussion continues in the other thread. > > Thanks for your patience in the other thread. > > As I noted there, I am now willing to accept this patch with some > small changes. Please add a minimal section to > Documentation/devicetree/overlay-notes.txt about overlay notifiers. > The most important thing to note there is that the overlay notifiers > are not allowed to retain any pointers into the overlay devicetree. Please also add a function header comment to of_overlay_notifier_register() in drivers/of/overlay.c that notes the restriction on the overlay notifier. > Also, instead of removing the "TODO" comment in free_overlay_changeset(), > change it to say something to the effect of "there should be no live pointers > into ovcs->overlay_tree and ovcs->fdt due to the policy that overlay > notifiers are not allowed to retain pointers into the overlay devicetree". > > I will also add myself to the OPEN FIRMWARE AND DEVICE TREE OVERLAYS > entry of MAINTAINERS and add a keyword line to catch overlay notifiers. > > I am not happy about freeing the overlay devicetree and overlay fdt > while overlay notifiers are able to retain pointers into the overlay > devicetree and overlay fdt, but am willing to accept documentation and > review as a partial protection until the devicetree access APIs can be > modified to prevent the notifiers from accessing the pointers. The > volume of overlay notifier patches should be small enough to not be > a review burden. > > -Frank > >