| 493 | } |
| 494 | |
| 495 | int vnic_dev_cmd_args(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd, |
| 496 | uint64_t *args, int nargs, int wait) |
| 497 | { |
| 498 | bool vf_rep; |
| 499 | int vf_idx; |
| 500 | int err; |
| 501 | |
| 502 | vf_rep = false; |
| 503 | if (vdev->pf_vdev) { |
| 504 | vf_rep = true; |
| 505 | vf_idx = vdev->vf_id; |
| 506 | vdev = vdev->pf_vdev; |
| 507 | } |
| 508 | if (vdev->lock) |
| 509 | vdev->lock(vdev->priv); |
| 510 | if (vf_rep) |
| 511 | vnic_dev_cmd_proxy_by_index_start(vdev, vf_idx); |
| 512 | |
| 513 | switch (vdev->proxy) { |
| 514 | case PROXY_BY_INDEX: |
| 515 | err = vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_INDEX, cmd, |
| 516 | args, nargs, wait); |
| 517 | break; |
| 518 | case PROXY_BY_BDF: |
| 519 | err = vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_BDF, cmd, |
| 520 | args, nargs, wait); |
| 521 | break; |
| 522 | case PROXY_NONE: |
| 523 | default: |
| 524 | err = vnic_dev_cmd_no_proxy(vdev, cmd, args, nargs, wait); |
| 525 | break; |
| 526 | } |
| 527 | |
| 528 | if (vf_rep) |
| 529 | vnic_dev_cmd_proxy_end(vdev); |
| 530 | if (vdev->unlock) |
| 531 | vdev->unlock(vdev->priv); |
| 532 | return err; |
| 533 | } |
| 534 | |
| 535 | int vnic_dev_fw_info(struct vnic_dev *vdev, |
| 536 | struct vnic_devcmd_fw_info **fw_info) |
no test coverage detected