]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: hns3: disable interrupt when ptp init failed
authorYonglong Liu <liuyonglong@huawei.com>
Tue, 22 Jul 2025 12:54:21 +0000 (20:54 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 24 Jul 2025 09:27:21 +0000 (11:27 +0200)
When ptp init failed, we'd better disable the interrupt and clear the
flag, to avoid early report interrupt at next probe.

Fixes: 0bf5eb788512 ("net: hns3: add support for PTP")
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250722125423.1270673-3-shaojijie@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c

index ec581d4b696f598ceaef0fa7610b30a347b1837f..4bd52eab391452b305ad6cf4b8a9732ff8f430dd 100644 (file)
@@ -497,14 +497,14 @@ int hclge_ptp_init(struct hclge_dev *hdev)
        if (ret) {
                dev_err(&hdev->pdev->dev,
                        "failed to init freq, ret = %d\n", ret);
-               goto out;
+               goto out_clear_int;
        }
 
        ret = hclge_ptp_set_ts_mode(hdev, &hdev->ptp->ts_cfg);
        if (ret) {
                dev_err(&hdev->pdev->dev,
                        "failed to init ts mode, ret = %d\n", ret);
-               goto out;
+               goto out_clear_int;
        }
 
        ktime_get_real_ts64(&ts);
@@ -512,7 +512,7 @@ int hclge_ptp_init(struct hclge_dev *hdev)
        if (ret) {
                dev_err(&hdev->pdev->dev,
                        "failed to init ts time, ret = %d\n", ret);
-               goto out;
+               goto out_clear_int;
        }
 
        set_bit(HCLGE_STATE_PTP_EN, &hdev->state);
@@ -520,6 +520,9 @@ int hclge_ptp_init(struct hclge_dev *hdev)
 
        return 0;
 
+out_clear_int:
+       clear_bit(HCLGE_PTP_FLAG_EN, &hdev->ptp->flags);
+       hclge_ptp_int_en(hdev, false);
 out:
        hclge_ptp_destroy_clock(hdev);