On Fri, 5 Jun 2015, Tiejun Chen wrote:
> Just register that pci host bridge specific to passthrough.
>
> Signed-off-by: Tiejun Chen <[email protected]>
> ---
> hw/i386/pc_piix.c | 27 +++++++++++++++++++++++++--
> 1 file changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 6054b5a..938b1be 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -50,7 +50,8 @@
> #include "cpu.h"
> #include "qemu/error-report.h"
> #ifdef CONFIG_XEN
> -# include <xen/hvm/hvm_info_table.h>
> +#include <xen/hvm/hvm_info_table.h>
> +#include "hw/xen/xen_pt.h"
> #endif
>
> #define MAX_IDE_BUS 2
> @@ -442,11 +443,33 @@ static void pc_init_isa(MachineState *machine)
> }
>
> #ifdef CONFIG_XEN
> +static void igd_passthrough_pc_init_pci(MachineState *machine)
> +{
> + pc_init1(machine,
> + TYPE_I440FX_PCI_HOST_BRIDGE,
> + TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE);
> +}
> +
> +static void pc_init_pci(MachineState *machine)
> +{
> + pc_init1(machine,
> + TYPE_I440FX_PCI_HOST_BRIDGE,
> + TYPE_I440FX_PCI_DEVICE);
> +}
> +
> +static void pc_xen_hvm_init_pci(MachineState *machine)
> +{
> + if (has_igd_gfx_passthru)
> + igd_passthrough_pc_init_pci(machine);
> + else
> + pc_init_pci(machine);
> +}
I don't see any value in introducing pc_init_pci and
igd_passthrough_pc_init_pci. I would expand both of them here.
> static void pc_xen_hvm_init(MachineState *machine)
> {
> PCIBus *bus;
>
> - pc_init1(machine, TYPE_I440FX_PCI_HOST_BRIDGE, TYPE_I440FX_PCI_DEVICE);
> + pc_xen_hvm_init_pci(machine);
>
> bus = pci_find_primary_bus();
> if (bus != NULL) {
> --
> 1.9.1
>
>