Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan
@ 2026-09-24 23:12 Jakub Kicinski
  2026-09-24 23:12 ` [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it Jakub Kicinski
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Jakub Kicinski @ 2026-09-24 23:12 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, ivecera, donald.hunter,
	Jakub Kicinski

Fix issues found by an LLM scan of the Netlink spec for DPLL.

Jakub Kicinski (3):
  dpll: do not truncate the requested pin frequency before checking it
  netlink: specs: dpll: declare pad in the nests which carry 64-bit
    values
  netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED

 Documentation/netlink/specs/dpll.yaml | 7 +++++--
 include/uapi/linux/dpll.h             | 3 +--
 drivers/dpll/dpll_netlink.c           | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

-- 
2.55.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it
  2026-09-24 23:12 [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan Jakub Kicinski
@ 2026-09-24 23:12 ` Jakub Kicinski
  2026-09-25 17:59   ` Ivan Vecera
  2026-09-24 23:12 ` [PATCH net-next 2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values Jakub Kicinski
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Jakub Kicinski @ 2026-09-24 23:12 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, ivecera, donald.hunter,
	Jakub Kicinski

DPLL_A_PIN_FREQUENCY is a u64 on the wire and dpll_pin_freq_set() keeps it
as one, but dpll_pin_is_freq_supported() takes a u32 while the ranges it
compares against are u64. The supported-frequency check therefore only
looks at the low 32 bits, and the full value is what reaches the driver.

Nothing is hitting this today. Reaching it at all needs a pin-set above
U32_MAX, which no sane caller sends, and the outcome is mild: a pin
advertising 10 kHz accepts 0x1_0000_2710, ice narrows it straight back to
10 kHz in ice_dpll_pin_freq_set(), so the hardware still ends up on an
advertised frequency and only the "frequency is not supported by the
device" rejection goes missing. The other direction - a legitimate request
above U32_MAX wrapping out of the pin's range - needs a driver advertising
such a range, and none does; zl3073x_pin_check_freq() refuses one outright.

So this is types rather than a live bug. Widen the check to match the
attribute, the ranges and the driver callback instead of adding a U32_MAX
rejection, so that the second case stays right if such a driver appears.
dpll_pin_esync_set() already keeps u64 throughout its equivalent loop.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 drivers/dpll/dpll_netlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dpll/dpll_netlink.c b/drivers/dpll/dpll_netlink.c
index fb24fd53f2e1..e5380d95f238 100644
--- a/drivers/dpll/dpll_netlink.c
+++ b/drivers/dpll/dpll_netlink.c
@@ -608,7 +608,7 @@ dpll_msg_add_pin_ref_sync(struct sk_buff *msg, struct dpll_pin *pin,
 	return -EMSGSIZE;
 }
 
-static bool dpll_pin_is_freq_supported(struct dpll_pin *pin, u32 freq)
+static bool dpll_pin_is_freq_supported(struct dpll_pin *pin, u64 freq)
 {
 	int fs;
 
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next 2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values
  2026-09-24 23:12 [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan Jakub Kicinski
  2026-09-24 23:12 ` [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it Jakub Kicinski
@ 2026-09-24 23:12 ` Jakub Kicinski
  2026-09-25 18:00   ` Ivan Vecera
  2026-09-24 23:12 ` [PATCH net-next 3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED Jakub Kicinski
  2026-09-26  1:20 ` [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan patchwork-bot+netdevbpf
  3 siblings, 1 reply; 8+ messages in thread
From: Jakub Kicinski @ 2026-09-24 23:12 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, ivecera, donald.hunter,
	Jakub Kicinski

Pads need to be propagated to subsets if they are used.
Otherwise Python YNL can fail with:

  YnlException: Space 'frequency-range' has no attribute with value '4'

This affects only platforms which care about alignment
so not much real impact.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 Documentation/netlink/specs/dpll.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/specs/dpll.yaml
index e2ca4df5699a..7009a64473b1 100644
--- a/Documentation/netlink/specs/dpll.yaml
+++ b/Documentation/netlink/specs/dpll.yaml
@@ -550,6 +550,8 @@ doc: DPLL subsystem.
     attributes:
       -
         name: parent-id
+      -
+        name: pad
       -
         name: direction
       -
@@ -576,6 +578,8 @@ doc: DPLL subsystem.
     name: frequency-range
     subset-of: pin
     attributes:
+      -
+        name: pad
       -
         name: frequency-min
       -
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next 3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED
  2026-09-24 23:12 [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan Jakub Kicinski
  2026-09-24 23:12 ` [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it Jakub Kicinski
  2026-09-24 23:12 ` [PATCH net-next 2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values Jakub Kicinski
@ 2026-09-24 23:12 ` Jakub Kicinski
  2026-09-25 18:00   ` Ivan Vecera
  2026-09-26  1:20 ` [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan patchwork-bot+netdevbpf
  3 siblings, 1 reply; 8+ messages in thread
From: Jakub Kicinski @ 2026-09-24 23:12 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, ivecera, donald.hunter,
	Jakub Kicinski

The lock-status doc tells userspace that DPLL_LOCK_STATUS_UNLOCKED
can be forced by setting DPLL_A_MODE to DPLL_MODE_DETACHED.
But no such value has been defined so far. enum dpll_mode has only
MANUAL and AUTOMATIC. Let's make sure the doc reflects current
reality.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 Documentation/netlink/specs/dpll.yaml | 3 +--
 include/uapi/linux/dpll.h             | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/specs/dpll.yaml
index 7009a64473b1..8fa789a50273 100644
--- a/Documentation/netlink/specs/dpll.yaml
+++ b/Documentation/netlink/specs/dpll.yaml
@@ -31,8 +31,7 @@ doc: DPLL subsystem.
       -
         name: unlocked
         doc: |
-          dpll was not yet locked to any valid input (or forced by setting
-          DPLL_A_MODE to DPLL_MODE_DETACHED)
+          dpll was not yet locked to any valid input
         value: 1
       -
         name: locked
diff --git a/include/uapi/linux/dpll.h b/include/uapi/linux/dpll.h
index 85b898b1db5e..8c71fc3f9863 100644
--- a/include/uapi/linux/dpll.h
+++ b/include/uapi/linux/dpll.h
@@ -29,8 +29,7 @@ enum dpll_mode {
 /**
  * enum dpll_lock_status - provides information of dpll device lock status,
  *   valid values for DPLL_A_LOCK_STATUS attribute
- * @DPLL_LOCK_STATUS_UNLOCKED: dpll was not yet locked to any valid input (or
- *   forced by setting DPLL_A_MODE to DPLL_MODE_DETACHED)
+ * @DPLL_LOCK_STATUS_UNLOCKED: dpll was not yet locked to any valid input
  * @DPLL_LOCK_STATUS_LOCKED: dpll is locked to a valid signal, but no holdover
  *   available
  * @DPLL_LOCK_STATUS_LOCKED_HO_ACQ: dpll is locked and holdover acquired
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it
  2026-09-24 23:12 ` [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it Jakub Kicinski
@ 2026-09-25 17:59   ` Ivan Vecera
  0 siblings, 0 replies; 8+ messages in thread
From: Ivan Vecera @ 2026-09-25 17:59 UTC (permalink / raw)
  To: Jakub Kicinski, davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, donald.hunter

On 9/25/26 1:12 AM, Jakub Kicinski wrote:
> DPLL_A_PIN_FREQUENCY is a u64 on the wire and dpll_pin_freq_set() keeps it
> as one, but dpll_pin_is_freq_supported() takes a u32 while the ranges it
> compares against are u64. The supported-frequency check therefore only
> looks at the low 32 bits, and the full value is what reaches the driver.
> 
> Nothing is hitting this today. Reaching it at all needs a pin-set above
> U32_MAX, which no sane caller sends, and the outcome is mild: a pin
> advertising 10 kHz accepts 0x1_0000_2710, ice narrows it straight back to
> 10 kHz in ice_dpll_pin_freq_set(), so the hardware still ends up on an
> advertised frequency and only the "frequency is not supported by the
> device" rejection goes missing. The other direction - a legitimate request
> above U32_MAX wrapping out of the pin's range - needs a driver advertising
> such a range, and none does; zl3073x_pin_check_freq() refuses one outright.
> 
> So this is types rather than a live bug. Widen the check to match the
> attribute, the ranges and the driver callback instead of adding a U32_MAX
> rejection, so that the second case stays right if such a driver appears.
> dpll_pin_esync_set() already keeps u64 throughout its equivalent loop.
> 
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
>   drivers/dpll/dpll_netlink.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/dpll/dpll_netlink.c b/drivers/dpll/dpll_netlink.c
> index fb24fd53f2e1..e5380d95f238 100644
> --- a/drivers/dpll/dpll_netlink.c
> +++ b/drivers/dpll/dpll_netlink.c
> @@ -608,7 +608,7 @@ dpll_msg_add_pin_ref_sync(struct sk_buff *msg, struct dpll_pin *pin,
>   	return -EMSGSIZE;
>   }
>   
> -static bool dpll_pin_is_freq_supported(struct dpll_pin *pin, u32 freq)
> +static bool dpll_pin_is_freq_supported(struct dpll_pin *pin, u64 freq)
>   {
>   	int fs;
>   

Reviewed-by: Ivan Vecera <ivecera@redhat.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values
  2026-09-24 23:12 ` [PATCH net-next 2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values Jakub Kicinski
@ 2026-09-25 18:00   ` Ivan Vecera
  0 siblings, 0 replies; 8+ messages in thread
From: Ivan Vecera @ 2026-09-25 18:00 UTC (permalink / raw)
  To: Jakub Kicinski, davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, donald.hunter



On 9/25/26 1:12 AM, Jakub Kicinski wrote:
> Pads need to be propagated to subsets if they are used.
> Otherwise Python YNL can fail with:
> 
>    YnlException: Space 'frequency-range' has no attribute with value '4'
> 
> This affects only platforms which care about alignment
> so not much real impact.
> 
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
>   Documentation/netlink/specs/dpll.yaml | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/specs/dpll.yaml
> index e2ca4df5699a..7009a64473b1 100644
> --- a/Documentation/netlink/specs/dpll.yaml
> +++ b/Documentation/netlink/specs/dpll.yaml
> @@ -550,6 +550,8 @@ doc: DPLL subsystem.
>       attributes:
>         -
>           name: parent-id
> +      -
> +        name: pad
>         -
>           name: direction
>         -
> @@ -576,6 +578,8 @@ doc: DPLL subsystem.
>       name: frequency-range
>       subset-of: pin
>       attributes:
> +      -
> +        name: pad
>         -
>           name: frequency-min
>         -

Reviewed-by: Ivan Vecera <ivecera@redhat.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED
  2026-09-24 23:12 ` [PATCH net-next 3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED Jakub Kicinski
@ 2026-09-25 18:00   ` Ivan Vecera
  0 siblings, 0 replies; 8+ messages in thread
From: Ivan Vecera @ 2026-09-25 18:00 UTC (permalink / raw)
  To: Jakub Kicinski, davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, vadim.fedorenko,
	arkadiusz.kubalewski, jiri, donald.hunter

On 9/25/26 1:12 AM, Jakub Kicinski wrote:
> The lock-status doc tells userspace that DPLL_LOCK_STATUS_UNLOCKED
> can be forced by setting DPLL_A_MODE to DPLL_MODE_DETACHED.
> But no such value has been defined so far. enum dpll_mode has only
> MANUAL and AUTOMATIC. Let's make sure the doc reflects current
> reality.
> 
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
>   Documentation/netlink/specs/dpll.yaml | 3 +--
>   include/uapi/linux/dpll.h             | 3 +--
>   2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/specs/dpll.yaml
> index 7009a64473b1..8fa789a50273 100644
> --- a/Documentation/netlink/specs/dpll.yaml
> +++ b/Documentation/netlink/specs/dpll.yaml
> @@ -31,8 +31,7 @@ doc: DPLL subsystem.
>         -
>           name: unlocked
>           doc: |
> -          dpll was not yet locked to any valid input (or forced by setting
> -          DPLL_A_MODE to DPLL_MODE_DETACHED)
> +          dpll was not yet locked to any valid input
>           value: 1
>         -
>           name: locked
> diff --git a/include/uapi/linux/dpll.h b/include/uapi/linux/dpll.h
> index 85b898b1db5e..8c71fc3f9863 100644
> --- a/include/uapi/linux/dpll.h
> +++ b/include/uapi/linux/dpll.h
> @@ -29,8 +29,7 @@ enum dpll_mode {
>   /**
>    * enum dpll_lock_status - provides information of dpll device lock status,
>    *   valid values for DPLL_A_LOCK_STATUS attribute
> - * @DPLL_LOCK_STATUS_UNLOCKED: dpll was not yet locked to any valid input (or
> - *   forced by setting DPLL_A_MODE to DPLL_MODE_DETACHED)
> + * @DPLL_LOCK_STATUS_UNLOCKED: dpll was not yet locked to any valid input
>    * @DPLL_LOCK_STATUS_LOCKED: dpll is locked to a valid signal, but no holdover
>    *   available
>    * @DPLL_LOCK_STATUS_LOCKED_HO_ACQ: dpll is locked and holdover acquired

Reviewed-by: Ivan Vecera <ivecera@redhat.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan
  2026-09-24 23:12 [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan Jakub Kicinski
                   ` (2 preceding siblings ...)
  2026-09-24 23:12 ` [PATCH net-next 3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED Jakub Kicinski
@ 2026-09-26  1:20 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-09-26  1:20 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: davem, netdev, edumazet, pabeni, andrew+netdev, horms,
	vadim.fedorenko, arkadiusz.kubalewski, jiri, ivecera,
	donald.hunter

Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 24 Sep 2026 16:12:08 -0700 you wrote:
> Fix issues found by an LLM scan of the Netlink spec for DPLL.
> 
> Jakub Kicinski (3):
>   dpll: do not truncate the requested pin frequency before checking it
>   netlink: specs: dpll: declare pad in the nests which carry 64-bit
>     values
>   netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED
> 
> [...]

Here is the summary with links:
  - [net-next,1/3] dpll: do not truncate the requested pin frequency before checking it
    https://git.kernel.org/netdev/net-next/c/7f92b7f381ff
  - [net-next,2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values
    https://git.kernel.org/netdev/net-next/c/398f802dba01
  - [net-next,3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED
    https://git.kernel.org/netdev/net-next/c/863da457b407

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-09-26  1:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-24 23:12 [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan Jakub Kicinski
2026-09-24 23:12 ` [PATCH net-next 1/3] dpll: do not truncate the requested pin frequency before checking it Jakub Kicinski
2026-09-25 17:59   ` Ivan Vecera
2026-09-24 23:12 ` [PATCH net-next 2/3] netlink: specs: dpll: declare pad in the nests which carry 64-bit values Jakub Kicinski
2026-09-25 18:00   ` Ivan Vecera
2026-09-24 23:12 ` [PATCH net-next 3/3] netlink: specs: dpll: drop the reference to DPLL_MODE_DETACHED Jakub Kicinski
2026-09-25 18:00   ` Ivan Vecera
2026-09-26  1:20 ` [PATCH net-next 0/3] dpll: fix LLM nit picks from the spec scan patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox