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] [day] [month] [year] [list]
Message-ID: <7b0c1f38-51f9-46a7-8e38-1fbeb189133c@gmail.com>
Date: Tue, 22 Jul 2025 20:25:58 +0200
From: Jonas Jelonek <jelonek.jonas@...il.com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: linux-i2c@...r.kernel.org,
 Chris Packham <chris.packham@...iedtelesis.co.nz>,
 Andi Shyti <andi.shyti@...nel.org>, Rob Herring <robh@...nel.org>,
 Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
 <conor+dt@...nel.org>, devicetree@...r.kernel.org,
 linux-kernel@...r.kernel.org, Markus Stockhausen <markus.stockhausen@....de>
Subject: Re: [PATCH v2 2/3] dt-bindings: i2c: realtek,rtl9301-i2c: extend for
 RTL9310 support

Hi Krzysztoof,

On 21.07.2025 09:02, Krzysztof Kozlowski wrote:
>>>> +    minimum: 1
>>>> +    maximum: 2
>>>> +
>>>>  patternProperties:
>>>> -  '^i2c@[0-7]$':
>>>> +  '^i2c@([0-9]|1[0-1])$':
>>>>      $ref: /schemas/i2c/i2c-controller.yaml
>>>>      unevaluatedProperties: false
>>>>  
>>> As mentioned last time, missing constraints.
>>>
>>> How did you solve this:
>>>
>>> "you should clearly narrow this per variant"?
>>>
>>> See example schema. It has EXACTLY this case.
>>>
>>> https://elixir.bootlin.com/linux/v5.19/source/Documentation/devicetree/bindings/example-schema.yaml#L212
>>>
>>> You also need to narrow the number of children.
>> I missed that from your previous review by mistake, sorry for that.
>>
>> I managed to narrow it per variant whether 'realtek,mst-id' is required or not.
>> But I'm not really able to do the same for the different regex patterns or the
>> number of children. Although I'm trying to follow various examples,
>> dt_binding_check just fails not taking the regex patterns into account.
>>
>> Since you have a lot of expertise on that and I obviously fail to find
>> documentation that helps me to do that properly, could you give me some hints
>> on how that has to look? I'd really appreciate this.
>
> So in your if:then: block where you narrow mst-id, you add on same level
> as properties:
>
> patternProperties:
>   YOUR_REGEX: false

How I thought of narrowing that in the first place was to make mst-id required
for RTL9310 but optional for RTL9300. In terms of describing the hardware, this
is valid for RTL9300 too (but there's no need for the driver or anything else to
know that).

But I don't mind if you'd rather have it only defined in the 'then' block, or
just disallowed for RTL9300, effectively forbidding the usage for RTL9300.

Either way, it seems I'm still doing it wrong with the regex. Adding as you
suggested:

if:
    properties:
        compatible:
            contains:
                const: realtek,rtl9301-i2c
then:
    patternProperties:
        '^i2c@([0-9]|1[0-1])$': false

breaks validation of the RTL9300 example. Probably I don't see how this
is expected to look like in a working state.

Doing it like the following, very verbose and redundant but at least obvious to
me what it should achieve:

if:
    ...
then:
    patternProperties:
        '^i2c@([0-9]|1[0-1])$':
            ...
else:
    patternProperties:
        '^i2c@[0-7]$':
            ....

breaks validation of both example. To be honest I don't know why.

>
> Best regards,
> Krzysztof

Best regards,
Jonas Jelonek

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ