[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aWkAXHXHHOD9SDBt@horms.kernel.org>
Date: Thu, 15 Jan 2026 14:57:32 +0000
From: Simon Horman <horms@...nel.org>
To: Meghana Malladi <m-malladi@...com>
Cc: vadim.fedorenko@...ux.dev, jacob.e.keller@...el.com, afd@...com,
pmohan@...thit.com, basharath@...thit.com, vladimir.oltean@....com,
rogerq@...nel.org, danishanwar@...com, pabeni@...hat.com,
kuba@...nel.org, edumazet@...gle.com, davem@...emloft.net,
andrew+netdev@...n.ch, linux-arm-kernel@...ts.infradead.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org, srk@...com,
Vignesh Raghavendra <vigneshr@...com>
Subject: Re: [PATCH net-next 1/2] net: ti: icssg-prueth: Add Frame Preemption
MAC Merge support
On Wed, Jan 07, 2026 at 06:21:10PM +0530, Meghana Malladi wrote:
> This patch adds utility functions to configure firmware to enable
> IET FPE. The highest priority queue is marked as Express queue and
> lower priority queues as pre-emptable, as the default configuration
> which will be overwritten by the mqprio tc mask passed by tc qdisc.
> Driver optionally allow configure the Verify state machine in the
> firmware to check remote peer capability. If remote fails to respond
> to Verify command, then FPE is disabled by firmware and TX FPE active
> status is disabled.
>
> This also adds the necessary hooks to enable IET/FPE feature in ICSSG
> driver. IET/FPE gets configured when Link is up and gets disabled when link
> goes down or device is stopped.
>
> Signed-off-by: MD Danish Anwar <danishanwar@...com>
> Signed-off-by: Meghana Malladi <m-malladi@...com>
...
> /* The buf includes headroom compatible with both skb and xdpf */
> diff --git a/drivers/net/ethernet/ti/icssg/icssg_qos.c b/drivers/net/ethernet/ti/icssg/icssg_qos.c
...
> +static int emac_tc_setup_mqprio(struct net_device *ndev, void *type_data)
> +{
> + struct tc_mqprio_qopt_offload *mqprio = type_data;
> + struct prueth_emac *emac = netdev_priv(ndev);
> + struct prueth_qos_mqprio *p_mqprio;
> + int ret;
> +
> + if (mqprio->qopt.hw == TC_MQPRIO_HW_OFFLOAD_TCS)
> + return -EOPNOTSUPP;
> +
> + if (!mqprio->qopt.num_tc) {
> + netdev_reset_tc(ndev);
> + p_mqprio->preemptible_tcs = 0;
Hi MD & Meghana,
p_mqprio is dereferenced here.
But it isn't initialised yet.
Flagged by Clang 21.1.7 W=1 build for arm64.
> + return 0;
> + }
> +
> + ret = prueth_mqprio_validate(ndev, mqprio);
> + if (ret)
> + return ret;
> +
> + p_mqprio = &emac->qos.mqprio;
> + memcpy(&p_mqprio->mqprio, mqprio, sizeof(*mqprio));
> + netdev_set_num_tc(ndev, mqprio->qopt.num_tc);
> +
> + return 0;
> +}
...
Powered by blists - more mailing lists