lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNASLaEX_Ocph88ZYMyi03KPQmr6-3mMhrZeAZCoAgUrEtQ@mail.gmail.com>
Date:   Tue, 25 Feb 2020 00:59:53 +0900
From:   Masahiro Yamada <masahiroy@...nel.org>
To:     Rob Herring <robh@...nel.org>
Cc:     DTML <devicetree@...r.kernel.org>,
        Frank Rowand <frowand.list@...il.com>,
        Bartosz Golaszewski <bgolaszewski@...libre.com>,
        "David S. Miller" <davem@...emloft.net>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Jonathan Cameron <Jonathan.Cameron@...wei.com>,
        Linus Walleij <linus.walleij@...aro.org>,
        Mark Rutland <mark.rutland@....com>,
        Mauro Carvalho Chehab <mchehab+samsung@...nel.org>,
        linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
        "open list:GPIO SUBSYSTEM" <linux-gpio@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema

Hi Rob,

On Mon, Feb 24, 2020 at 11:52 PM Rob Herring <robh@...nel.org> wrote:
>
> On Fri, Feb 21, 2020 at 11:33 PM Masahiro Yamada <masahiroy@...nel.org> wrote:
> >
> > Hi Rob,
> >
> > On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@...nel.org> wrote:
> > >
> > > On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> > > > Convert the UniPhier GPIO controller binding to DT schema format.
> > > >
> > > > I omitted the 'gpio-ranges' property because it is defined in the
> > > > dt-schema project (/schemas/gpio/gpio.yaml).
> > > >
> > > > As of writing, the 'gpio-ranges-group-names' is not defined in that
> > > > file despite it is a common property described in
> > > > Documentation/devicetree/bindings/gpio/gpio.txt
> > > > So, I defined it in this schema.
> > > >
> > > > Signed-off-by: Masahiro Yamada <yamada.masahiro@...ionext.com>
> > > > ---
> > > >
> > > > I have a question about the range about 'ngpio'.
> > > >
> > > >   ngpios:
> > > >     minimum: 0
> > > >     maximum: 512
> > > >
> > > > The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> > > > https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> > > >
> > > > 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> > > >
> > > > I cannot omit the minimum because minimum and maximum depend on each other.
> > > > I just put a sensible number, 512, in maximum.
> > > >
> > > > If this range is entirely unneeded, I will delete it.
> > >
> > > This property is generally for when you can have some number less
> > > than a maximum number implied by the compatible string.
> > >
> > > If there is really no max (e.g. 2^32 - 1 is valid), then just do
> > > 'ngpios: true'
> >
> >
> > What does ': true' mean?
>
> It's a schema that always passes validation. It's purpose here is just
> to say you are using this common property for this binding.



OK, I see two useful cases:

[1]
Documenting purpose in order to clarify
that you are using this property

[2]
You need to explicitly specify ': true'
if you have 'additionalProperties: false' .
Otherwise, the following warning is displayed:
... do not match any of the regexes: 'pinctrl-[0-9]+'



For [1], it is already clear that this binding
is using ngpios from 'require'


require:
  - ngpios



> >
> > If it is documented somewhere,
> > could you point me to the reference?
>
> https://github.com/devicetree-org/dt-schema/blob/master/schemas/gpio/gpio.yaml
>
> >
> > Even if I remove the 'ngpio' entirely
> > from my dt-schema, the 'ngpio' is checked
> > correctly.
>
> Yes, if you change it to a string value for example, it should fail.
> (Only if DT_SCHEMA_FILES is not set without my kbuild changes)
>
> You should also add 'additionalProperties: false' at the top level of
> your schema and then it will also fail if you don't list ngpios in
> properties.

Hmm, I am confused.

'require: - ngpios' will warn if you don't list ngpios.

'additionalProperties: false' will warn if you list
other properties than what is explicitly specified.



BTW, I will not add 'additionalProperties: false'
in this binding.


The real DT files have

 interrupt-parent = <&aidet>;
(arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi line 324)

but, commit 791d3ef2e11100449837dc0b6fe884e60ca3a484
removed interrupt-parent from bindings.





--
Best Regards
Masahiro Yamada

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ