Patch "net: hns3: add interrupts re-initialization while doing VF FLR" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: hns3: add interrupts re-initialization while doing VF FLR

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-hns3-add-interrupts-re-initialization-while-doin.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d80916643dac2b2d3ebce525117cb05e3fde4a01
Author: Jie Wang <wangjie125@xxxxxxxxxx>
Date:   Thu Dec 22 14:43:41 2022 +0800

    net: hns3: add interrupts re-initialization while doing VF FLR
    
    [ Upstream commit 09e6b30eeb254f1818a008cace3547159e908dfd ]
    
    Currently keep alive message between PF and VF may be lost and the VF is
    unalive in PF. So the VF will not do reset during PF FLR reset process.
    This would make the allocated interrupt resources of VF invalid and VF
    would't receive or respond to PF any more.
    
    So this patch adds VF interrupts re-initialization during VF FLR for VF
    recovery in above cases.
    
    Fixes: 862d969a3a4d ("net: hns3: do VF's pci re-initialization while PF doing FLR")
    Signed-off-by: Jie Wang <wangjie125@xxxxxxxxxx>
    Signed-off-by: Hao Lan <lanhao@xxxxxxxxxx>
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 403c1b9cf6ab..48956c30d2ee 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -2592,7 +2592,8 @@ static int hclgevf_pci_reset(struct hclgevf_dev *hdev)
 	struct pci_dev *pdev = hdev->pdev;
 	int ret = 0;
 
-	if (hdev->reset_type == HNAE3_VF_FULL_RESET &&
+	if ((hdev->reset_type == HNAE3_VF_FULL_RESET ||
+	     hdev->reset_type == HNAE3_FLR_RESET) &&
 	    test_bit(HCLGEVF_STATE_IRQ_INITED, &hdev->state)) {
 		hclgevf_misc_irq_uninit(hdev);
 		hclgevf_uninit_msi(hdev);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux