[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190426211033.GM4041@lunn.ch>
Date: Fri, 26 Apr 2019 23:10:33 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Igor Russkikh <Igor.Russkikh@...antia.com>
Cc: "David S . Miller" <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Nikita Danilov <Nikita.Danilov@...antia.com>,
Dmitry Bogdanov <Dmitry.Bogdanov@...antia.com>
Subject: Re: [PATCH v3 net-next 04/15] net: aquantia: link interrupt handling
function
On Fri, Apr 26, 2019 at 09:47:47AM +0000, Igor Russkikh wrote:
> Define link interrupt handler
>
> Signed-off-by: Nikita Danilov <ndanilov@...antia.com>
> Signed-off-by: Igor Russkikh <igor.russkikh@...antia.com>
> ---
> drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
> index 059df86e8e37..4851fc0a3ae5 100644
> --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
> +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
> @@ -161,6 +161,20 @@ static int aq_nic_update_link_status(struct aq_nic_s *self)
> return 0;
> }
>
> +static irqreturn_t aq_linkstate_threaded_isr(int irq, void *private)
> +{
> + struct aq_nic_s *self = private;
> +
> + if (!self)
> + return IRQ_NONE;
> +
> + aq_nic_update_link_status(self);
> +
> + self->aq_hw_ops->hw_irq_enable(self->aq_hw,
> + BIT(self->aq_nic_cfg.link_irq_vec));
So does this mean the hardware disables interrupts when they fire? Is
this an ack, not an enable?
Can you loose interrupts this way? Or are the internally level
interrupts, so it could immediately fire again if the source has not
been services?
Thanks
Andrew
Powered by blists - more mailing lists