lkml.org 
[lkml]   [2019]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 104/124] net: aquantia: linkstate irq should be oneshot
    Date
    From: Igor Russkikh <Igor.Russkikh@aquantia.com>

    [ Upstream commit 5c47e3ba6fe52465603cf9d816b3371e6881d649 ]

    Declaring threaded irq handler should also indicate the irq is
    oneshot. It is oneshot indeed, because HW implements irq automasking
    on trigger.

    Not declaring this causes some kernel configurations to fail
    on interface up, because request_threaded_irq returned an err code.

    The issue was originally hidden on normal x86_64 configuration with
    latest kernel, because depending on interrupt controller, irq driver
    added ONESHOT flag on its own.

    Issue was observed on older kernels (4.14) where no such logic exists.

    Fixes: 4c83f170b3ac ("net: aquantia: link status irq handling")
    Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
    Reported-by: Michael Symolkin <Michael.Symolkin@aquantia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
    index 41172fbebddd3..1a2b090652930 100644
    --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
    +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
    @@ -390,7 +390,7 @@ int aq_nic_start(struct aq_nic_s *self)
    self->aq_nic_cfg.link_irq_vec);
    err = request_threaded_irq(irqvec, NULL,
    aq_linkstate_threaded_isr,
    - IRQF_SHARED,
    + IRQF_SHARED | IRQF_ONESHOT,
    self->ndev->name, self);
    if (err < 0)
    goto err_exit;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-09-20 00:11    [W:4.147 / U:0.700 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site