* [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce
@ 2021-10-29 11:29 Simon Horman
2021-10-29 11:29 ` [PATCH net 1/2] nfp: fix NULL pointer access when scheduling dim work Simon Horman
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Simon Horman @ 2021-10-29 11:29 UTC (permalink / raw)
To: David Miller, Jakub Kicinski
Cc: netdev, oss-drivers, Yinjun Zhang, Louis Peens, Simon Horman
Hi,
this series contains fixes for two bugs introduced when
when adaptive coalesce support was added to the NFP driver in
v5.15 by 9d32e4e7e9e1 ("nfp: add support for coalesce adaptive feature")
Yinjun Zhang (2):
nfp: fix NULL pointer access when scheduling dim work
nfp: fix potential deadlock when canceling dim work
drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH net 1/2] nfp: fix NULL pointer access when scheduling dim work
2021-10-29 11:29 [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce Simon Horman
@ 2021-10-29 11:29 ` Simon Horman
2021-10-29 11:29 ` [PATCH net 2/2] nfp: fix potential deadlock when canceling " Simon Horman
2021-10-29 12:50 ` [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Simon Horman @ 2021-10-29 11:29 UTC (permalink / raw)
To: David Miller, Jakub Kicinski
Cc: netdev, oss-drivers, Yinjun Zhang, Louis Peens, Simon Horman
From: Yinjun Zhang <yinjun.zhang@corigine.com>
Each rx/tx ring has a related dim work, when rx/tx ring number is
decreased by `ethtool -L`, the corresponding rx_ring or tx_ring is
assigned NULL, while its related work is not destroyed. When scheduled,
the work will access NULL pointer.
Fixes: 9d32e4e7e9e1 ("nfp: add support for coalesce adaptive feature")
Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Signed-off-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
---
drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 5bfa22accf2c..f8b880c8e514 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -2067,7 +2067,7 @@ static int nfp_net_poll(struct napi_struct *napi, int budget)
if (napi_complete_done(napi, pkts_polled))
nfp_net_irq_unmask(r_vec->nfp_net, r_vec->irq_entry);
- if (r_vec->nfp_net->rx_coalesce_adapt_on) {
+ if (r_vec->nfp_net->rx_coalesce_adapt_on && r_vec->rx_ring) {
struct dim_sample dim_sample = {};
unsigned int start;
u64 pkts, bytes;
@@ -2082,7 +2082,7 @@ static int nfp_net_poll(struct napi_struct *napi, int budget)
net_dim(&r_vec->rx_dim, dim_sample);
}
- if (r_vec->nfp_net->tx_coalesce_adapt_on) {
+ if (r_vec->nfp_net->tx_coalesce_adapt_on && r_vec->tx_ring) {
struct dim_sample dim_sample = {};
unsigned int start;
u64 pkts, bytes;
--
2.20.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH net 2/2] nfp: fix potential deadlock when canceling dim work
2021-10-29 11:29 [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce Simon Horman
2021-10-29 11:29 ` [PATCH net 1/2] nfp: fix NULL pointer access when scheduling dim work Simon Horman
@ 2021-10-29 11:29 ` Simon Horman
2021-10-29 12:50 ` [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Simon Horman @ 2021-10-29 11:29 UTC (permalink / raw)
To: David Miller, Jakub Kicinski
Cc: netdev, oss-drivers, Yinjun Zhang, Louis Peens, Simon Horman
From: Yinjun Zhang <yinjun.zhang@corigine.com>
When port is linked down, the process which has acquired rtnl_lock
will wait for the in-progress dim work to finish, and the work also
acquires rtnl_lock, which may cause deadlock.
Currently IRQ_MOD registers can be configured by `ethtool -C` and
dim work, and which will take effect depends on the execution order,
rtnl_lock is useless here, so remove them.
Fixes: 9d32e4e7e9e1 ("nfp: add support for coalesce adaptive feature")
Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Signed-off-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
---
drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index f8b880c8e514..850bfdf83d0a 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -3016,10 +3016,8 @@ static void nfp_net_rx_dim_work(struct work_struct *work)
/* copy RX interrupt coalesce parameters */
value = (moder.pkts << 16) | (factor * moder.usec);
- rtnl_lock();
nn_writel(nn, NFP_NET_CFG_RXR_IRQ_MOD(r_vec->rx_ring->idx), value);
(void)nfp_net_reconfig(nn, NFP_NET_CFG_UPDATE_IRQMOD);
- rtnl_unlock();
dim->state = DIM_START_MEASURE;
}
@@ -3047,10 +3045,8 @@ static void nfp_net_tx_dim_work(struct work_struct *work)
/* copy TX interrupt coalesce parameters */
value = (moder.pkts << 16) | (factor * moder.usec);
- rtnl_lock();
nn_writel(nn, NFP_NET_CFG_TXR_IRQ_MOD(r_vec->tx_ring->idx), value);
(void)nfp_net_reconfig(nn, NFP_NET_CFG_UPDATE_IRQMOD);
- rtnl_unlock();
dim->state = DIM_START_MEASURE;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce
2021-10-29 11:29 [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce Simon Horman
2021-10-29 11:29 ` [PATCH net 1/2] nfp: fix NULL pointer access when scheduling dim work Simon Horman
2021-10-29 11:29 ` [PATCH net 2/2] nfp: fix potential deadlock when canceling " Simon Horman
@ 2021-10-29 12:50 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-10-29 12:50 UTC (permalink / raw)
To: Simon Horman; +Cc: davem, kuba, netdev, oss-drivers, yinjun.zhang, louis.peens
Hello:
This series was applied to netdev/net.git (master)
by David S. Miller <davem@davemloft.net>:
On Fri, 29 Oct 2021 13:29:01 +0200 you wrote:
> Hi,
>
> this series contains fixes for two bugs introduced when
> when adaptive coalesce support was added to the NFP driver in
> v5.15 by 9d32e4e7e9e1 ("nfp: add support for coalesce adaptive feature")
>
> Yinjun Zhang (2):
> nfp: fix NULL pointer access when scheduling dim work
> nfp: fix potential deadlock when canceling dim work
>
> [...]
Here is the summary with links:
- [net,1/2] nfp: fix NULL pointer access when scheduling dim work
https://git.kernel.org/netdev/net/c/f8d384a640dd
- [net,2/2] nfp: fix potential deadlock when canceling dim work
https://git.kernel.org/netdev/net/c/17e712c6a1ba
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] 4+ messages in thread
end of thread, other threads:[~2021-10-29 12:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-29 11:29 [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce Simon Horman
2021-10-29 11:29 ` [PATCH net 1/2] nfp: fix NULL pointer access when scheduling dim work Simon Horman
2021-10-29 11:29 ` [PATCH net 2/2] nfp: fix potential deadlock when canceling " Simon Horman
2021-10-29 12:50 ` [PATCH net 0/2] nfp: fix bugs caused by adaptive coalesce patchwork-bot+netdevbpf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.