Re: [PATCH net-next 1/2] net: ti: icssg-prueth: Add Frame Preemption MAC Merge support
From: Meghana Malladi
Date: Wed Feb 04 2026 - 06:23:45 EST
Hi Simon,
On 1/15/26 20:27, Simon Horman wrote:
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@xxxxxx>
Signed-off-by: Meghana Malladi <m-malladi@xxxxxx>
...
/* 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.
Thanks for catching this.
Will include W=1 build test in my checklist before posting in upstream from next time :)
+ 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;
+}
...