[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <469fd8d0-c72e-4ca6-87a9-2f42b180276b@redhat.com>
Date: Thu, 3 Apr 2025 13:25:34 +0200
From: Paolo Abeni <pabeni@...hat.com>
To: "Malladi, Meghana" <m-malladi@...com>, Roger Quadros <rogerq@...nel.org>,
dan.carpenter@...aro.org, kuba@...nel.org, edumazet@...gle.com,
davem@...emloft.net, andrew+netdev@...n.ch
Cc: bpf@...r.kernel.org, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
namcao@...utronix.de, javier.carrasco.cruz@...il.com, diogo.ivo@...mens.com,
horms@...nel.org, jacob.e.keller@...el.com, john.fastabend@...il.com,
hawk@...nel.org, daniel@...earbox.net, ast@...nel.org, srk@...com,
Vignesh Raghavendra <vigneshr@...com>, danishanwar@...com
Subject: Re: [PATCH net v3 3/3] net: ti: icss-iep: Fix possible NULL pointer
dereference for perout request
On 4/2/25 2:37 PM, Malladi, Meghana wrote:
> On 4/2/2025 5:58 PM, Roger Quadros wrote:
>> On 28/03/2025 12:24, Meghana Malladi wrote:
>>> ICSS IEP driver has flags to check if perout or pps has been enabled
>>> at any given point of time. Whenever there is request to enable or
>>> disable the signal, the driver first checks its enabled or disabled
>>> and acts accordingly.
>>>
>>> After bringing the interface down and up, calling PPS/perout enable
>>> doesn't work as the driver believes PPS is already enabled,
>>
>> How? aren't we calling icss_iep_pps_enable(iep, false)?
>> wouldn't this disable the IEP and clear the iep->pps_enabled flag?
>>
>
> The whole purpose of calling icss_iep_pps_enable(iep, false) is to clear
> iep->pps_enabled flag, because if this flag is not cleared it hinders
> generating new pps signal (with the newly loaded firmware) once any of
> the interfaces are up (check icss_iep_perout_enable()), so instead of
> calling icss_iep_pps_enable(iep, false) I am just clearing the
> iep->pps_enabled flag.
IDK what Roger thinks, but the above is not clear to me. I read it as
you are stating that icss_iep_pps_enable() indeed clears the flag, so i
don't see/follow the reasoning behind this change.
Skimmir over the code, icss_iep_pps_enable() could indeed avoid clearing
the flag under some circumstances is that the reason?
Possibly a more describing commit message would help.
>> And, what if you brought 2 interfaces of the same ICSS instances up
>> but put only 1 interface down and up?
>>
>
> Then the flag need not be disabled if only one interface is brought down
> because the IEP is still alive and all the IEP configuration (including
> pps/perout) is still valid.
I read the above as stating this fix is not correct in such scenario,
leading to the wrong final state.
I think it would be better to either give a better reasoning about this
change in the commit message or refactor it to handle even such scenario,
Thanks,
Paolo
Powered by blists - more mailing lists