All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Cc: Alan Tull <atull@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	David Laight <David.Laight@aculab.com>,
	linux-fpga@vger.kernel.org
Subject: Re: [PATCH v2 5/5] of/fdt: only store the device node basename in full_name
Date: Wed, 18 Oct 2017 13:30:46 -0500	[thread overview]
Message-ID: <CAL_JsqKJ74y3qHVqbRph5C8=0Ggb+n=JT3TZybu2+mENyZ1VZA@mail.gmail.com> (raw)
In-Reply-To: <1508341985.25643.12.camel@hp800z>

On Wed, Oct 18, 2017 at 10:53 AM, Pantelis Antoniou
<pantelis.antoniou@konsulko.com> wrote:
> On Wed, 2017-10-18 at 10:44 -0500, Rob Herring wrote:
>> On Wed, Oct 18, 2017 at 10:12 AM, Alan Tull <atull@kernel.org> wrote:
>> > On Tue, Oct 17, 2017 at 6:51 PM, Frank Rowand <frowand.list@gmail.com> wrote:
>> >> On 10/17/17 14:46, Rob Herring wrote:
>> >>> On Tue, Oct 17, 2017 at 4:32 PM, Alan Tull <atull@kernel.org> wrote:
>> >>>> On Mon, Aug 21, 2017 at 10:16 AM, Rob Herring <robh@kernel.org> wrote:
>> >>>>
>> >>>> Hi Rob,
>> >>>>
>> >>>>> With dependencies on a statically allocated full path name converted to
>> >>>>> use %pOF format specifier, we can store just the basename of node, and
>> >>>>> the unflattening of the FDT can be simplified.
>> >>>>>
>> >>>>> This commit will affect the remaining users of full_name. After
>> >>>>> analyzing these users, the remaining cases should only change some print
>> >>>>> messages. The main users of full_name are providing a name for struct
>> >>>>> resource. The resource names shouldn't be important other than providing
>> >>>>> /proc/iomem names.
>> >>>>>
>> >>>>> We no longer distinguish between pre and post 0x10 dtb formats as either
>> >>>>> a full path or basename will work. However, less than 0x10 formats have
>> >>>>> been broken since the conversion to use libfdt (and no one has cared).
>> >>>>> The conversion of the unflattening code to be non-recursive also broke
>> >>>>> pre 0x10 formats as the populate_node function would return 0 in that
>> >>>>> case.
>> >>>>>
>> >>>>> Signed-off-by: Rob Herring <robh@kernel.org>
>> >>>>> ---
>> >>>>> v2:
>> >>>>> - rebase to linux-next
>> >>>>>
>> >>>>>  drivers/of/fdt.c | 69 +++++++++-----------------------------------------------
>> >>>>>  1 file changed, 11 insertions(+), 58 deletions(-)
>> >>>>
>> >>>> I've just updated to the latest next branch and am finding problems
>> >>>> applying overlays.   Reverting this commit alleviates things.  The
>> >>>> errors I get are:
>> >>>>
>> >>>> [   88.498704] OF: overlay: Failed to apply prop @/__symbols__/clk_0
>> >>>> [   88.513447] OF: overlay: apply failed '/__symbols__'
>> >>>> [   88.518423] create_overlay: Failed to create overlay (err=-12)
>> >>>
>> >>> Frank's series with overlay updates should fix this.
>> >>
>> >> Yes, it does:
>> >>
>> >>   [PATCH v3 11/12] of: overlay: remove a dependency on device node full_name
>> >
>> > Thanks for the fast response.  I fetched the dt/next branch to test
>> > this but there are sufficient changes that Pantelis' "OF: DT-Overlay
>> > configfs interface (v7)" is broken now.  I've been adding that
>> > downstream since 4.4.  We're using it as an interface for applying
>> > overlays to program FPGAs.  If we fix it again, is there any chance
>> > that can go upstream now?
>>
>> With a drive-by posting once every few years, no.
>>
>
> I take offense to that. There's nothing changed in the patch for years.
> Reposting the same patch without changes would achieve nothing.

Are you still expecting review comments on it or something?
Furthermore, If something is posted infrequently, then I'm not
inclined to comment or care if the next posting is going to be after I
forget what I previously said (which is not very long).

I'm just saying, don't expect to forward port, post and it will be
accepted. Below is minimally one of the issues that needs to be
addressed.

>> The issue remains that the kernel is not really setup to deal with any
>> random property or node to be changed at any point in run-time. I
>> think there needs to be some restrictions around what the overlays can
>> touch. We can't have it be wide open and then lock things down later
>> and break users. One example of what you could do is you can only add
>> sub-trees to whitelisted nodes. That's probably acceptable for your
>> usecase.
>>
>
> Defining what can and what cannot be changed is not as trivial as a
> list of white-listed nodes.

No, but we have to start somewhere and we are not starting with any
change allowed anywhere at anytime. If that is what people want, then
they are going to get to maintain that out of tree.

> In some cases there is a whole node hierarchy being inserted (like in
> a FPGA).

Yes, so you'd have a target fpga region. That sounds fine to me. Maybe
its not a static whitelist, but drivers have to register target
nodes/paths.

> In others, it's merely changing a status property to "okay" and
> a few device parameters.

That seems fine too. Disabled nodes could be allowed. But what if you
add/change properties on a node that is not disabled? Once a node is
enabled, who is responsible for registering the device?

What about changing a node from enabled to disabled? The kernel would
need to handle that or not allow it.

> The real issue is that the kernel has no way to verify that a given
> device tree, either at boot time or at overlay application time, is
> correct.
>
> When the tree is wrong at boot-time you'll hang (if you're lucky).
> If the tree is wrong at run-time you'll get some into some unidentified
> funky state.

Or have some security hole or a mechanism for userspace to crash the system.

> Finally what is, and what is not 'correct' is not for the kernel to
> decide arbitrarily, it's a matter of policy, different for each
> use-case.

It is if the kernel will break doing so.

Rob

  reply	other threads:[~2017-10-18 18:31 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-21 15:16 [PATCH v2 0/5] Removing full paths from DT full_name Rob Herring
2017-08-21 15:16 ` Rob Herring
2017-08-21 15:16 ` [PATCH v2 1/5] powerpc: Convert to using %pOF instead of full_name Rob Herring
2017-08-24 12:37   ` [v2,1/5] " Michael Ellerman
2017-08-24 12:37     ` Michael Ellerman
2017-08-21 15:16 ` [PATCH v2 2/5] powerpc: pseries: vio: match parent nodes with of_find_node_by_path Rob Herring
2017-08-22  5:12   ` Michael Ellerman
2017-08-22  5:12     ` Michael Ellerman
2017-08-24 18:08     ` Rob Herring
2017-08-24 18:08       ` Rob Herring
2017-08-25  0:10       ` Michael Ellerman
2017-08-25  0:10         ` Michael Ellerman
2017-08-21 15:16 ` [PATCH v2 3/5] powerpc: pseries: remove dlpar_attach_node dependency on full path Rob Herring
2017-08-24 12:37   ` [v2, " Michael Ellerman
2017-08-21 15:16 ` [PATCH v2 4/5] powerpc: pseries: only store the device node basename in full_name Rob Herring
2017-10-03  9:26   ` Michael Ellerman
2017-10-03  9:26     ` Michael Ellerman
2017-10-03 18:44     ` Rob Herring
2017-10-04 12:37       ` Michael Ellerman
2017-10-04 12:37         ` Michael Ellerman
2017-08-21 15:16 ` [PATCH v2 5/5] of/fdt: " Rob Herring
2017-10-17 21:32   ` Alan Tull
2017-10-17 21:32     ` Alan Tull
2017-10-17 21:46     ` Rob Herring
2017-10-17 23:51       ` Frank Rowand
2017-10-17 23:51         ` Frank Rowand
2017-10-18 15:12         ` Alan Tull
2017-10-18 15:12           ` Alan Tull
2017-10-18 15:44           ` Rob Herring
2017-10-18 15:53             ` Pantelis Antoniou
2017-10-18 15:53               ` Pantelis Antoniou
2017-10-18 18:30               ` Rob Herring [this message]
2017-10-18 21:46                 ` Frank Rowand
2017-10-19  8:41                   ` Pantelis Antoniou
2017-10-19  8:41                     ` Pantelis Antoniou
2017-10-19  8:41                     ` Pantelis Antoniou
2017-10-19  8:51                 ` Pantelis Antoniou
2017-10-19  8:51                   ` Pantelis Antoniou
2017-10-19  8:51                   ` Pantelis Antoniou
2017-10-19 20:06                   ` Moritz Fischer
2017-10-19 21:46                     ` Frank Rowand
2017-10-20  8:06                       ` Pantelis Antoniou
2017-10-20  8:06                         ` Pantelis Antoniou
2017-10-20  8:06                         ` Pantelis Antoniou
2017-10-20 14:59                         ` Rob Herring
2017-10-18 18:39               ` Alan Tull
2017-10-18 18:39                 ` Alan Tull
2017-10-18 21:40                 ` Frank Rowand
2017-10-18 21:40                   ` Frank Rowand
2017-11-28 13:13   ` Geert Uytterhoeven
2017-11-28 13:13     ` Geert Uytterhoeven
2017-11-28 13:26     ` Rob Herring
2017-11-28 13:26       ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAL_JsqKJ74y3qHVqbRph5C8=0Ggb+n=JT3TZybu2+mENyZ1VZA@mail.gmail.com' \
    --to=robh@kernel.org \
    --cc=David.Laight@aculab.com \
    --cc=atull@kernel.org \
    --cc=benh@kernel.crashing.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=linux-fpga@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=pantelis.antoniou@konsulko.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.