Re: PCI schema accepts unevaluated properties

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 27, 2022 at 1:29 AM Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> On 27/04/2022 04:36, Rob Herring wrote:
> > On Sat, Apr 23, 2022 at 5:46 AM Krzysztof Kozlowski
> > <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> >>
> >> Hi Rob,
> >>
> >> Dmitry pointed out interesting issue when writing PCI schema. Consider
> >> the patch for Exynos PCI schema (which includes SNPS schema and
> >> unevaluatedProperties:false):
> >> https://pastebin.ubuntu.com/p/4SzxVP4N3j/
> >>
> >> This passes `make dt_binding_check
> >> DT_SCHEMA_FILES=Documentation/devicetree/bindings/pci/` without a
> >> problem. It should not. The property is nowhere described, so
> >> unevaluatedProperties should scream.
> >>
> >> Other bindings using unevaluated:false and some ref, also has this
> >> issue. The additionalProperties:false (when there is no ref for other
> >> schema) works correct.
> >
> > This is because I never committed the fix for all this which explains the issue:
> >
> >     dtschema: Strip 'additionalProperties: true' from schemas
> >
> >     An 'additionalProperties: true' makes all properties evaluated, so an
> >     'unevaluatedProperties: false' schema doesn't work when referencing a
> >     schema with 'additionalProperties: true'.
> >
> >     Really, 'additionalProperties: true' should be dropped, but it is used as
> >     a flag for common schemas which are usually incomplete and included by
> >     device specific schemas. Removing it would mean dropping the meta-schema
> >     requiring either 'additionalProperties' or 'unevaluatedProperties'.
> >
> >     Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> >
> > Since snps,dw-pcie.yaml defines 'additionalProperties: true',
> > everything is evaluated...
>
> Thanks for explanation.
>
> >
> > This fix needed schema fixes to land before I committed this, but it
> > was the end of the year and I guess I forgot about it. Now, it looks
> > like we have more to fix. :(  25 to be exact:
> >
> > Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.example.dtb:
> > audio-subsystem@11400000: dma-controller@11420000: Unevaluated
> > properties are not allowed ('#dma-channels', '#dma-requests',
> > 'power-domains' were unexpected)
>
> I'll fix the power-domains, but dma-channels/dma-requests should not
> fail. This should be accepted through:
> arm,pl330.yaml -> dma-controller.yaml -> dma-common.yaml

Except that the standard property names are 'dma-channels' and
'dma-requests' without the '#'.

Thanks for the fixes. Unfortunately, it looks like NAND needs the same
parent/child schema split that was done for SPI.

Rob



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux