On Wed, 14 Apr 2021 09:51:38 +0800 Huazhong Tan wrote:
> On 2021/4/14 1:18, Jakub Kicinski wrote:
> > On Tue, 13 Apr 2021 14:17:00 +0800 Huazhong Tan wrote:
> >> +static void hclge_push_link_status(struct hclge_dev *hdev)
> >> +{
> >> + struct hclge_vport *vport;
> >> + int ret;
> >> + u16 i;
> >> +
> >> + for (i = 0; i < pci_num_vf(hdev->pdev); i++) {
> >> + vport = &hdev->vport[i + HCLGE_VF_VPORT_START_NUM];
> >> +
> >> + if (!test_bit(HCLGE_VPORT_STATE_ALIVE, &vport->state) ||
> >> + vport->vf_info.link_state != IFLA_VF_LINK_STATE_AUTO)
> >> + continue;
> >> +
> >> + ret = hclge_push_vf_link_status(vport);
> >> + if (ret) {
> >> + dev_err(&hdev->pdev->dev,
> >> + "failed to push link status to vf%u, ret =
> >> %d\n",
> >> + i, ret);
> > Isn't this error printed twice? Here and...
>
> They are in different contexts. here will be called to
> update the link status of all VFs when the underlying
> link status is changed, while the below one is called
> when the admin set up the specific VF link status.
I see.