net: hns3: provide .get_cmdq_stat interface for the client
authorHuazhong Tan <tanhuazhong@huawei.com>
Sat, 9 May 2020 09:27:39 +0000 (17:27 +0800)
committerJakub Kicinski <kuba@kernel.org>
Mon, 11 May 2020 02:43:22 +0000 (19:43 -0700)
This patch provides a new interface for the client to query
whether CMDQ is ready to work.

Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/hisilicon/hns3/hnae3.h
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

index 5602bf226687e4b3c4ade626a8054685a48517bf..7506cabaa16e2a4cd2f43b70bedfc540c43727d8 100644 (file)
@@ -552,6 +552,7 @@ struct hnae3_ae_ops {
        int (*set_vf_mac)(struct hnae3_handle *handle, int vf, u8 *p);
        int (*get_module_eeprom)(struct hnae3_handle *handle, u32 offset,
                                 u32 len, u8 *data);
+       bool (*get_cmdq_stat)(struct hnae3_handle *handle);
 };
 
 struct hnae3_dcb_ops {
index 3ad6a6ae6c2f21416bc61856c67ad1cf5bebe177..1ff896a9576cbf4c6faeb9d14216de35293c2c6d 100644 (file)
@@ -6402,6 +6402,14 @@ static bool hclge_get_hw_reset_stat(struct hnae3_handle *handle)
               hclge_read_dev(&hdev->hw, HCLGE_FUN_RST_ING);
 }
 
+static bool hclge_get_cmdq_stat(struct hnae3_handle *handle)
+{
+       struct hclge_vport *vport = hclge_get_vport(handle);
+       struct hclge_dev *hdev = vport->back;
+
+       return test_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state);
+}
+
 static bool hclge_ae_dev_resetting(struct hnae3_handle *handle)
 {
        struct hclge_vport *vport = hclge_get_vport(handle);
@@ -11311,6 +11319,7 @@ static const struct hnae3_ae_ops hclge_ops = {
        .set_vf_rate = hclge_set_vf_rate,
        .set_vf_mac = hclge_set_vf_mac,
        .get_module_eeprom = hclge_get_module_eeprom,
+       .get_cmdq_stat = hclge_get_cmdq_stat,
 };
 
 static struct hnae3_ae_algo ae_algo = {