2022-07-04 19:23:25

by Vladimir Oltean

[permalink] [raw]
Subject: [PATCH net-next 1/2] net: sched: provide shim definitions for taprio_offload_{get,free}

All callers of taprio_offload_get() and taprio_offload_free() prior to
the blamed commit are conditionally compiled based on CONFIG_NET_SCH_TAPRIO.

felix_vsc9959.c is different; it provides vsc9959_qos_port_tas_set()
even when taprio is compiled out.

Provide shim definitions for the functions exported by taprio so that
felix_vsc9959.c is able to compile. vsc9959_qos_port_tas_set() in that
case is dead code anyway, and ocelot_port->taprio remains NULL, which is
fine for the rest of the logic.

Fixes: 1c9017e44af2 ("net: dsa: felix: keep reference on entire tc-taprio config")
Reported-by: Colin Foster <[email protected]>
Signed-off-by: Vladimir Oltean <[email protected]>
---
include/net/pkt_sched.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index 44a35531952e..3372a1f67cf4 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -173,11 +173,28 @@ struct tc_taprio_qopt_offload {
struct tc_taprio_sched_entry entries[];
};

+#if IS_ENABLED(CONFIG_NET_SCH_TAPRIO)
+
/* Reference counting */
struct tc_taprio_qopt_offload *taprio_offload_get(struct tc_taprio_qopt_offload
*offload);
void taprio_offload_free(struct tc_taprio_qopt_offload *offload);

+#else
+
+/* Reference counting */
+static inline struct tc_taprio_qopt_offload *
+taprio_offload_get(struct tc_taprio_qopt_offload *offload)
+{
+ return NULL;
+}
+
+static inline void taprio_offload_free(struct tc_taprio_qopt_offload *offload)
+{
+}
+
+#endif
+
/* Ensure skb_mstamp_ns, which might have been populated with the txtime, is
* not mistaken for a software timestamp, because this will otherwise prevent
* the dispatch of hardware timestamps to the socket.
--
2.25.1


2022-07-05 14:50:46

by Colin Foster

[permalink] [raw]
Subject: Re: [PATCH net-next 1/2] net: sched: provide shim definitions for taprio_offload_{get,free}

On Mon, Jul 04, 2022 at 10:02:40PM +0300, Vladimir Oltean wrote:
> All callers of taprio_offload_get() and taprio_offload_free() prior to
> the blamed commit are conditionally compiled based on CONFIG_NET_SCH_TAPRIO.
>
> felix_vsc9959.c is different; it provides vsc9959_qos_port_tas_set()
> even when taprio is compiled out.
>
> Provide shim definitions for the functions exported by taprio so that
> felix_vsc9959.c is able to compile. vsc9959_qos_port_tas_set() in that
> case is dead code anyway, and ocelot_port->taprio remains NULL, which is
> fine for the rest of the logic.
>
> Fixes: 1c9017e44af2 ("net: dsa: felix: keep reference on entire tc-taprio config")
> Reported-by: Colin Foster <[email protected]>
> Signed-off-by: Vladimir Oltean <[email protected]>
> ---
> include/net/pkt_sched.h | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
> index 44a35531952e..3372a1f67cf4 100644
> --- a/include/net/pkt_sched.h
> +++ b/include/net/pkt_sched.h
> @@ -173,11 +173,28 @@ struct tc_taprio_qopt_offload {
> struct tc_taprio_sched_entry entries[];
> };
>
> +#if IS_ENABLED(CONFIG_NET_SCH_TAPRIO)
> +
> /* Reference counting */
> struct tc_taprio_qopt_offload *taprio_offload_get(struct tc_taprio_qopt_offload
> *offload);
> void taprio_offload_free(struct tc_taprio_qopt_offload *offload);
>
> +#else
> +
> +/* Reference counting */
> +static inline struct tc_taprio_qopt_offload *
> +taprio_offload_get(struct tc_taprio_qopt_offload *offload)
> +{
> + return NULL;
> +}
> +
> +static inline void taprio_offload_free(struct tc_taprio_qopt_offload *offload)
> +{
> +}
> +
> +#endif
> +
> /* Ensure skb_mstamp_ns, which might have been populated with the txtime, is
> * not mistaken for a software timestamp, because this will otherwise prevent
> * the dispatch of hardware timestamps to the socket.
> --
> 2.25.1
>

Fixes my build!

Tested-by: Colin Foster <[email protected]>

2022-07-05 22:36:06

by Vinicius Costa Gomes

[permalink] [raw]
Subject: Re: [PATCH net-next 1/2] net: sched: provide shim definitions for taprio_offload_{get,free}

Vladimir Oltean <[email protected]> writes:

> All callers of taprio_offload_get() and taprio_offload_free() prior to
> the blamed commit are conditionally compiled based on CONFIG_NET_SCH_TAPRIO.
>
> felix_vsc9959.c is different; it provides vsc9959_qos_port_tas_set()
> even when taprio is compiled out.
>
> Provide shim definitions for the functions exported by taprio so that
> felix_vsc9959.c is able to compile. vsc9959_qos_port_tas_set() in that
> case is dead code anyway, and ocelot_port->taprio remains NULL, which is
> fine for the rest of the logic.
>
> Fixes: 1c9017e44af2 ("net: dsa: felix: keep reference on entire tc-taprio config")
> Reported-by: Colin Foster <[email protected]>
> Signed-off-by: Vladimir Oltean <[email protected]>
> ---

Acked-by: Vinicius Costa Gomes <[email protected]>


--
Vinicius

2022-07-06 01:45:29

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net-next 1/2] net: sched: provide shim definitions for taprio_offload_{get,free}

Hello:

This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <[email protected]>:

On Mon, 4 Jul 2022 22:02:40 +0300 you wrote:
> All callers of taprio_offload_get() and taprio_offload_free() prior to
> the blamed commit are conditionally compiled based on CONFIG_NET_SCH_TAPRIO.
>
> felix_vsc9959.c is different; it provides vsc9959_qos_port_tas_set()
> even when taprio is compiled out.
>
> Provide shim definitions for the functions exported by taprio so that
> felix_vsc9959.c is able to compile. vsc9959_qos_port_tas_set() in that
> case is dead code anyway, and ocelot_port->taprio remains NULL, which is
> fine for the rest of the logic.
>
> [...]

Here is the summary with links:
- [net-next,1/2] net: sched: provide shim definitions for taprio_offload_{get,free}
https://git.kernel.org/netdev/net-next/c/d7be266adbfd
- [net-next,2/2] net: dsa: felix: build as module when tc-taprio is module
https://git.kernel.org/netdev/net-next/c/10ed11ab6399

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