disable_irq() after request_irq() still has a time gap in which
interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will
disable IRQ auto-enable when request IRQ.

Signed-off-by: Jinjie Ruan <ruanjin...@huawei.com>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c 
b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 182ba0a8b095..6e0929af0f72 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -821,14 +821,13 @@ nfp_net_prepare_vector(struct nfp_net *nn, struct 
nfp_net_r_vector *r_vec,
 
        snprintf(r_vec->name, sizeof(r_vec->name),
                 "%s-rxtx-%d", nfp_net_name(nn), idx);
-       err = request_irq(r_vec->irq_vector, r_vec->handler, 0, r_vec->name,
-                         r_vec);
+       err = request_irq(r_vec->irq_vector, r_vec->handler, IRQF_NO_AUTOEN,
+                         r_vec->name, r_vec);
        if (err) {
                nfp_net_napi_del(&nn->dp, r_vec);
                nn_err(nn, "Error requesting IRQ %d\n", r_vec->irq_vector);
                return err;
        }
-       disable_irq(r_vec->irq_vector);
 
        irq_set_affinity_hint(r_vec->irq_vector, &r_vec->affinity_mask);
 
-- 
2.34.1


Reply via email to