From 3738ed7d505faa7677bb49d5e84b0c99e3df107b Mon Sep 17 00:00:00 2001 From: liweihang Date: Fri, 24 May 2019 14:43:09 +0800 Subject: [PATCH] net: hns3: dump MSI-X interrupts status when MSI-X recovery failed driver inclusion category: bugfix bugzilla: NA CVE: NA Instead of dump MSI-X interrupts status each time we got a MSI-X interrupt, we should only dump it when we failed to handle MSI-X. Or there will be redudant message printed about the module with issues, which can be got from normal process of handling MSI-X. Feature or Bugfix: Bugfix Signed-off-by: liweihang Reviewed-by: lipeng Reviewed-by: Yang Yingliang Signed-off-by: Yang Yingliang --- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index b9fb5c3059a5..52c64f2162fa 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -2735,8 +2735,6 @@ static u32 hclge_check_event_cause(struct hclge_dev *hdev, u32 *clearval) /* check for vector0 msix event source */ if (msix_src_reg & HCLGE_VECTOR0_REG_MSIX_MASK) { - dev_info(&hdev->pdev->dev, "received event 0x%x\n", - msix_src_reg); *clearval = msix_src_reg; return HCLGE_VECTOR0_EVENT_ERR; } @@ -3524,13 +3522,20 @@ static void hclge_reset_subtask(struct hclge_dev *hdev) static void hclge_misc_err_recovery(struct hclge_dev *hdev) { struct hnae3_ae_dev *ae_dev = pci_get_drvdata(hdev->pdev); + struct device *dev = &hdev->pdev->dev; u32 msix_sts_reg; + int ret; msix_sts_reg = hclge_read_dev(&hdev->hw, HCLGE_VECTOR0_PF_OTHER_INT_STS_REG); if (msix_sts_reg & HCLGE_VECTOR0_REG_MSIX_MASK) { - hclge_handle_hw_msix_error(hdev, &hdev->default_reset_request); + ret = hclge_handle_hw_msix_error(hdev, + &hdev->default_reset_request); + if (ret) + dev_info(dev, "received msix interrupt 0x%x\n", + msix_sts_reg); + if (hdev->default_reset_request) if (ae_dev->ops->reset_event) ae_dev->ops->reset_event(hdev->pdev, NULL); -- GitLab