diff --git a/hypervisor/dm/vpci/partition_mode.c b/hypervisor/dm/vpci/partition_mode.c index c1e76f5bc..ec8a8d35b 100644 --- a/hypervisor/dm/vpci/partition_mode.c +++ b/hypervisor/dm/vpci/partition_mode.c @@ -107,12 +107,14 @@ static int32_t partition_mode_vpci_init(const struct acrn_vm *vm) vdev = &vdev_array->vpci_vdev_list[i]; vdev->vpci = vpci; - /* Exclude hostbridge */ if (vdev->vbdf.value != 0U) { partition_mode_pdev_init(vdev); + vdev->ops = &pci_ops_vdev_pt; + } else { + vdev->ops = &pci_ops_vdev_hostbridge; } - if ((vdev->ops != NULL) && (vdev->ops->init != NULL)) { + if (vdev->ops->init != NULL) { if (vdev->ops->init(vdev) != 0) { pr_err("%s() failed at PCI device (bdf %x)!", __func__, vdev->vbdf); diff --git a/hypervisor/partition/apl-mrb/vm_description.c b/hypervisor/partition/apl-mrb/vm_description.c index 1f2c81181..2c0a8bd7b 100644 --- a/hypervisor/partition/apl-mrb/vm_description.c +++ b/hypervisor/partition/apl-mrb/vm_description.c @@ -13,7 +13,6 @@ static struct vpci_vdev_array vpci_vdev_array1 = { .vpci_vdev_list = { {/*vdev 0: hostbridge */ .vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, - .ops = &pci_ops_vdev_hostbridge, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, } @@ -21,7 +20,6 @@ static struct vpci_vdev_array vpci_vdev_array1 = { {/*vdev 1: SATA controller*/ .vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x12U, .f = 0x0U}, } @@ -35,7 +33,6 @@ static struct vpci_vdev_array vpci_vdev_array2 = { .vpci_vdev_list = { {/*vdev 0: hostbridge*/ .vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, - .ops = &pci_ops_vdev_hostbridge, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, } @@ -43,7 +40,6 @@ static struct vpci_vdev_array vpci_vdev_array2 = { {/*vdev 1: USB controller*/ .vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x0U}, } @@ -51,7 +47,6 @@ static struct vpci_vdev_array vpci_vdev_array2 = { {/*vdev 2: Ethernet*/ .vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x02U, .d = 0x00U, .f = 0x0U}, } diff --git a/hypervisor/partition/dnv-cb2/vm_description.c b/hypervisor/partition/dnv-cb2/vm_description.c index 746b46886..236ea0835 100644 --- a/hypervisor/partition/dnv-cb2/vm_description.c +++ b/hypervisor/partition/dnv-cb2/vm_description.c @@ -12,7 +12,6 @@ static struct vpci_vdev_array vpci_vdev_array1 = { .vpci_vdev_list = { {/*vdev 0: hostbridge */ .vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, - .ops = &pci_ops_vdev_hostbridge, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, } @@ -20,7 +19,6 @@ static struct vpci_vdev_array vpci_vdev_array1 = { {/*vdev 1: Ethernet*/ .vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x1U}, } @@ -28,7 +26,6 @@ static struct vpci_vdev_array vpci_vdev_array1 = { {/*vdev 2: USB*/ .vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x0U}, @@ -43,7 +40,6 @@ static struct vpci_vdev_array vpci_vdev_array2 = { .vpci_vdev_list = { {/*vdev 0: hostbridge*/ .vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, - .ops = &pci_ops_vdev_hostbridge, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U}, } @@ -51,7 +47,6 @@ static struct vpci_vdev_array vpci_vdev_array2 = { {/*vdev 1: SATA controller*/ .vbdf.bits = {.b = 0x00U, .d = 0x05U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x00U, .d = 0x14U, .f = 0x0U}, } @@ -59,7 +54,6 @@ static struct vpci_vdev_array vpci_vdev_array2 = { {/*vdev 2: Ethernet*/ .vbdf.bits = {.b = 0x00U, .d = 0x06U, .f = 0x0U}, - .ops = &pci_ops_vdev_pt, .pdev = { .bdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x0U},