]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
hinic3: Fix missing napi->dev in netif_queue_set_napi
authorFan Gong <gongfan1@huawei.com>
Fri, 12 Sep 2025 06:28:30 +0000 (14:28 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:24 +0000 (15:37 -0500)
[ Upstream commit 4404f6af810829588a51968959c6b85574109c13 ]

As netif_queue_set_napi checks napi->dev, if it doesn't have it and
it will warn_on and return. So we should use netif_napi_add before
netif_queue_set_napi because netif_napi_add has "napi->dev = dev".

Co-developed-by: Zhu Yikai <zhuyikai1@h-partners.com>
Signed-off-by: Zhu Yikai <zhuyikai1@h-partners.com>
Signed-off-by: Fan Gong <gongfan1@huawei.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/a17a5a087350eaf2e081dcd879779ca2c69b0908.1757653621.git.zhuyikai1@h-partners.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/huawei/hinic3/hinic3_irq.c

index 8b92eed25edfeeeb9ba237490c447670ff4c20cf..aba1a1d579c50e6064b3bdccf3ef4c183a9c14a8 100644 (file)
@@ -42,11 +42,11 @@ void qp_add_napi(struct hinic3_irq_cfg *irq_cfg)
 {
        struct hinic3_nic_dev *nic_dev = netdev_priv(irq_cfg->netdev);
 
+       netif_napi_add(nic_dev->netdev, &irq_cfg->napi, hinic3_poll);
        netif_queue_set_napi(irq_cfg->netdev, irq_cfg->irq_id,
                             NETDEV_QUEUE_TYPE_RX, &irq_cfg->napi);
        netif_queue_set_napi(irq_cfg->netdev, irq_cfg->irq_id,
                             NETDEV_QUEUE_TYPE_TX, &irq_cfg->napi);
-       netif_napi_add(nic_dev->netdev, &irq_cfg->napi, hinic3_poll);
        napi_enable(&irq_cfg->napi);
 }