[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250516084842.26c80cb5@kernel.org>
Date: Tue, 20 May 2025 15:05:34 +0800
From: Jinjian Song <jinjian.song@...ocom.com>
To: kuba@...nel.org
Cc: andrew+netdev@...n.ch,
angelogioacchino.delregno@...labora.com,
chandrashekar.devegowda@...el.com,
chiranjeevi.rapolu@...ux.intel.com,
corbet@....net,
danielwinkler@...gle.com,
davem@...emloft.net,
edumazet@...gle.com,
haijun.liu@...iatek.com,
helgaas@...nel.org,
horms@...nel.org,
jinjian.song@...ocom.com,
johannes@...solutions.net,
linux-arm-kernel@...ts.infradead.org,
linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-mediatek@...ts.infradead.org,
loic.poulain@...aro.org,
m.chetan.kumar@...ux.intel.com,
matthias.bgg@...il.com,
netdev@...r.kernel.org,
pabeni@...hat.com,
ricardo.martinez@...ux.intel.com,
ryazanov.s.a@...il.com,
liuqf@...ocom.com
Subject: Re: [net v1] net: wwan: t7xx: Fix napi rx poll issue
>On Fri, 16 May 2025 15:30:38 +0800 Jinjian Song wrote:
>> It seems that a judgment is made every time ccmni_inst[x] is used in the driver,
>> and the synchronization on the 2 way might have been done when NAPI triggers
>> polling by napi_schedule and when WWAN trigger dellink.
>
>Synchronization is about ensuring that the condition validating
>by the if() remains true for as long as necessary.
>You need to wrap the read with READ_ONCE() and write with WRITE_ONCE().
>The rest if fine because netdev unregister sync against NAPIs in flight.
>
Hi Jakub,
I think I got your point.
I can use the atomic_t usage in struct t7xx_ccmni to synchronization.
static void t7xx_ccmni_wwan_dellink(...) {
[...]
if (WARN_ON(ctlb->ccmni_inst[if_id] != ccmni))
return;
unregister_netdevice(dev);
//Add here use this variable(ccmnii->usage) to synchronization
if (atomic_read(&ccmni->usage) == 0)
ccmni == NULL;
}
How about this modify?
Thanks.
Jinjian,
Best Regards.
Powered by blists - more mailing lists