On Thu, 6 Feb 2025 18:37:49 +0800 mengyuanlou wrote:
static irqreturn_t ngbe_msix_other(int __always_unused irq, void *data)
{
- struct wx *wx = data;
+ struct wx_q_vector *q_vector;
+ struct wx *wx = data;
+ u32 eicr;
- /* re-enable the original interrupt state, no lsc, no queues */
- if (netif_running(wx->netdev))
- ngbe_irq_enable(wx, false);
+ q_vector = wx->q_vector[0];
+
+ eicr = wx_misc_isb(wx, WX_ISB_MISC);
+
+ if (eicr & NGBE_PX_MISC_IC_VF_MBOX)
+ wx_msg_task(wx);
+
+ if (wx->num_vfs == 7) {
+ napi_schedule_irqoff(&q_vector->napi);
+ ngbe_irq_enable(wx, true);
+ } else {
+ /* re-enable the original interrupt state, no lsc, no queues */
+ if (netif_running(wx->netdev))
+ ngbe_irq_enable(wx, false);
+ }
return IRQ_HANDLED;
}
You need to explain in the commit message what's happening here.
IDK why the num_vfs == 7 is special.
Also why are you now scheduling NAPI from a misc MSI-X handler?
--
pw-bot: cr