RDMA/hns: Set parameters of all the functions belong to a PF
authorWei Xu <xuwei5@hisilicon.com>
Tue, 6 Apr 2021 13:25:12 +0000 (21:25 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 13 Apr 2021 23:01:28 +0000 (20:01 -0300)
Switch parameters of all functions belong to a PF should be set including
VFs.

Link: https://lore.kernel.org/r/1617715514-29039-5-git-send-email-liweihang@huawei.com
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
Signed-off-by: Shengming Shu <shushengming1@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index d68f9f0..34368ae 100644 (file)
@@ -1698,7 +1698,8 @@ static int hns_roce_query_pf_timer_resource(struct hns_roce_dev *hr_dev)
        return 0;
 }
 
-static int hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev, int vf_id)
+static int __hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev,
+                                         u32 vf_id)
 {
        struct hns_roce_cmq_desc desc;
        struct hns_roce_vf_switch *swt;
@@ -1723,6 +1724,19 @@ static int hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev, int vf_id)
        return hns_roce_cmq_send(hr_dev, &desc, 1);
 }
 
+static int hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev)
+{
+       u32 vf_id;
+       int ret;
+
+       for (vf_id = 0; vf_id < hr_dev->func_num; vf_id++) {
+               ret = __hns_roce_set_vf_switch_param(hr_dev, vf_id);
+               if (ret)
+                       return ret;
+       }
+       return 0;
+}
+
 static int __hns_roce_alloc_vf_resource(struct hns_roce_dev *hr_dev, int vf_id)
 {
        struct hns_roce_cmq_desc desc[2];
@@ -2324,7 +2338,7 @@ static int hns_roce_v2_profile(struct hns_roce_dev *hr_dev)
                return ret;
        }
 
-       ret = hns_roce_set_vf_switch_param(hr_dev, 0);
+       ret = hns_roce_set_vf_switch_param(hr_dev);
        if (ret) {
                dev_err(hr_dev->dev,
                        "failed to set function switch param, ret = %d.\n",