[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <84dfd44f-56e6-4d1a-a1c3-702988236f3f@ti.com>
Date: Wed, 4 Feb 2026 16:48:38 +0530
From: Meghana Malladi <m-malladi@...com>
To: Simon Horman <horms@...nel.org>
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
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@...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.
>
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;
>> +}
>
> ...
Powered by blists - more mailing lists