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: <20240819175350.GA1700516-robh@kernel.org>
Date: Mon, 19 Aug 2024 11:53:50 -0600
From: Rob Herring <robh@...nel.org>
To: Geert Uytterhoeven <geert@...ux-m68k.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
	Ulf Hansson <ulf.hansson@...aro.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>,
	Magnus Damm <magnus.damm@...il.com>,
	Wolfram Sang <wsa+renesas@...g-engineering.com>,
	linux-mmc@...r.kernel.org, devicetree@...r.kernel.org,
	linux-kernel@...r.kernel.org, linux-renesas-soc@...r.kernel.org
Subject: Re: [PATCH] dt-bindings: mmc: renesas,sdhi: add top-level constraints

On Mon, Aug 19, 2024 at 03:38:48PM +0200, Geert Uytterhoeven wrote:
> Hi Krzysztof,
> 
> On Sun, Aug 18, 2024 at 7:29 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@...aro.org> wrote:
> > Properties with variable number of items per each device are expected to
> > have widest constraints in top-level "properties:" block and further
> > customized (narrowed) in "if:then:".  Add missing top-level constraints
> > for clocks.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
> 
> Thanks for your patch!
> 
> > --- a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
> > +++ b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
> > @@ -77,9 +77,13 @@ properties:
> >      minItems: 1
> >      maxItems: 3
> >
> > -  clocks: true
> > +  clocks:
> > +    minItems: 1
> > +    maxItems: 4
> >
> > -  clock-names: true
> > +  clock-names:
> > +    minItems: 1
> > +    maxItems: 4
> >
> >    dmas:
> >      minItems: 4
> 
> I am a bit puzzled by all these add-top-level-constraint patches.
> E.g. this file already constrains all of them below.
> 
> To me, it feels the same as a patch for driver code that would do:
> 
>     +   if (param < 16 || param > 512)
>     +           return -EINVAL;
>     +
>         if (hw_variant_a) {
>                 if (param < 16 || param > 256)
>                         return -EINVAL;
>                 ...
>         } else if (hw_variant_b) {
>                 if (param < 32 || param > 512)
>                         return -EINVAL;
>                 ...
>         } else /* hw_variant_c */ {
>                 if (param < 32 || param > 384)
>                         return -EINVAL;
>                 ...
>         }
> 
> What's the point?

if/then schemas can be incomplete and we don't enforce they are missing 
constraints. We could change that, but we'd have to do that everywhere. 
It would make the schemas longer. 

If you have a new chip not yet documented, but matches the fallback 
compatible (as many Renesas bindings have), then you at least 
get constraints within the existing bounds.

The keywords didn't exist when we started out. It is somewhat academic 
because we know what the implementation supports, but it is entirely 
possible a json-schema implementation doesn't support if/then schemas. 
The spec says unknown keywords are ignored.

Rob

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ