* [PATCH net v2] net: ti: icssg-prueth: Fix race condition for VLAN table access
@ 2024-10-07 5:41 MD Danish Anwar
2024-10-07 11:48 ` Roger Quadros
2024-10-09 11:20 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: MD Danish Anwar @ 2024-10-07 5:41 UTC (permalink / raw)
To: robh, jan.kiszka, diogo.ivo, andrew, pabeni, kuba, edumazet,
davem
Cc: linux-kernel, netdev, linux-arm-kernel, srk, Vignesh Raghavendra,
Roger Quadros, danishanwar
The VLAN table is a shared memory between the two ports/slices
in a ICSSG cluster and this may lead to race condition when the
common code paths for both ports are executed in different CPUs.
Fix the race condition access by locking the shared memory access
Fixes: 487f7323f39a ("net: ti: icssg-prueth: Add helper functions to configure FDB")
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
---
v1 - v2:
*) Fixed kdoc and checkpatch warning by moving kdoc inline for vtbl_lock
as suggested by Jakub Kicinski <kuba@kernel.org>
v1 https://lore.kernel.org/all/20241003105940.533921-1-danishanwar@ti.com/
drivers/net/ethernet/ti/icssg/icssg_config.c | 2 ++
drivers/net/ethernet/ti/icssg/icssg_prueth.c | 1 +
drivers/net/ethernet/ti/icssg/icssg_prueth.h | 2 ++
3 files changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/ti/icssg/icssg_config.c b/drivers/net/ethernet/ti/icssg/icssg_config.c
index 72ace151d8e9..5d2491c2943a 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_config.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_config.c
@@ -735,6 +735,7 @@ void icssg_vtbl_modify(struct prueth_emac *emac, u8 vid, u8 port_mask,
u8 fid_c1;
tbl = prueth->vlan_tbl;
+ spin_lock(&prueth->vtbl_lock);
fid_c1 = tbl[vid].fid_c1;
/* FID_C1: bit0..2 port membership mask,
@@ -750,6 +751,7 @@ void icssg_vtbl_modify(struct prueth_emac *emac, u8 vid, u8 port_mask,
}
tbl[vid].fid_c1 = fid_c1;
+ spin_unlock(&prueth->vtbl_lock);
}
EXPORT_SYMBOL_GPL(icssg_vtbl_modify);
diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth.c b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
index 5fd9902ab181..5c20ceb164df 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_prueth.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
@@ -1442,6 +1442,7 @@ static int prueth_probe(struct platform_device *pdev)
icss_iep_init_fw(prueth->iep1);
}
+ spin_lock_init(&prueth->vtbl_lock);
/* setup netdev interfaces */
if (eth0_node) {
ret = prueth_netdev_init(prueth, eth0_node);
diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth.h b/drivers/net/ethernet/ti/icssg/icssg_prueth.h
index bba6da2e6bd8..8722bb4a268a 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_prueth.h
+++ b/drivers/net/ethernet/ti/icssg/icssg_prueth.h
@@ -296,6 +296,8 @@ struct prueth {
bool is_switchmode_supported;
unsigned char switch_id[MAX_PHYS_ITEM_ID_LEN];
int default_vlan;
+ /** @vtbl_lock: Lock for vtbl in shared memory */
+ spinlock_t vtbl_lock;
};
struct emac_tx_ts_response {
base-commit: 9234a2549cb6ac038bec36cc7c084218e9575513
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH net v2] net: ti: icssg-prueth: Fix race condition for VLAN table access
2024-10-07 5:41 [PATCH net v2] net: ti: icssg-prueth: Fix race condition for VLAN table access MD Danish Anwar
@ 2024-10-07 11:48 ` Roger Quadros
2024-10-09 11:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Roger Quadros @ 2024-10-07 11:48 UTC (permalink / raw)
To: MD Danish Anwar, robh, jan.kiszka, diogo.ivo, andrew, pabeni,
kuba, edumazet, davem
Cc: linux-kernel, netdev, linux-arm-kernel, srk, Vignesh Raghavendra
On 07/10/2024 08:41, MD Danish Anwar wrote:
> The VLAN table is a shared memory between the two ports/slices
> in a ICSSG cluster and this may lead to race condition when the
> common code paths for both ports are executed in different CPUs.
>
> Fix the race condition access by locking the shared memory access
>
> Fixes: 487f7323f39a ("net: ti: icssg-prueth: Add helper functions to configure FDB")
> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH net v2] net: ti: icssg-prueth: Fix race condition for VLAN table access
2024-10-07 5:41 [PATCH net v2] net: ti: icssg-prueth: Fix race condition for VLAN table access MD Danish Anwar
2024-10-07 11:48 ` Roger Quadros
@ 2024-10-09 11:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-10-09 11:20 UTC (permalink / raw)
To: MD Danish Anwar
Cc: robh, jan.kiszka, diogo.ivo, andrew, pabeni, kuba, edumazet,
davem, linux-kernel, netdev, linux-arm-kernel, srk, vigneshr,
rogerq
Hello:
This patch was applied to netdev/net.git (main)
by David S. Miller <davem@davemloft.net>:
On Mon, 7 Oct 2024 11:11:24 +0530 you wrote:
> The VLAN table is a shared memory between the two ports/slices
> in a ICSSG cluster and this may lead to race condition when the
> common code paths for both ports are executed in different CPUs.
>
> Fix the race condition access by locking the shared memory access
>
> Fixes: 487f7323f39a ("net: ti: icssg-prueth: Add helper functions to configure FDB")
> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>
> [...]
Here is the summary with links:
- [net,v2] net: ti: icssg-prueth: Fix race condition for VLAN table access
https://git.kernel.org/netdev/net/c/ff8ee11e7785
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-10-09 11:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-07 5:41 [PATCH net v2] net: ti: icssg-prueth: Fix race condition for VLAN table access MD Danish Anwar
2024-10-07 11:48 ` Roger Quadros
2024-10-09 11:20 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).