[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f116c89b-26d4-1603-df07-277fbb82ada4@aquantia.com>
Date: Sat, 27 Apr 2019 06:10:23 +0000
From: Igor Russkikh <Igor.Russkikh@...antia.com>
To: Andrew Lunn <andrew@...n.ch>
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
>> +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?
Right, hw has a feature of interrupts automasking on trigger.
This is essentially an unmasking operation.
> 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?
Pending masked ISR will trigger as soon as we enable it again.
So it won't be lost.
Regards,
Igor
Powered by blists - more mailing lists