qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] pci_nic_init_nofail() only works on root PCI buses?


From: Thomas Huth
Subject: Re: [Qemu-devel] pci_nic_init_nofail() only works on root PCI buses?
Date: Wed, 21 Jun 2017 03:00:31 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0

On 11.06.2017 17:08, Mark Cave-Ayland wrote:
> Hi all,
> 
> Playing around with trying to set up PCI bridges for sun4u, I noticed
> that I get an assert with the following diff which simply moves the
> default NIC behind a PCI bridge rather than being directly on the root
> PCI bus:
> 
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index 69f565d..0b17f2e 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -465,7 +465,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
>      parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS);
> 
>      for(i = 0; i < nb_nics; i++)
> -        pci_nic_init_nofail(&nd_table[i], pci_bus, "ne2k_pci", NULL);
> +        pci_nic_init_nofail(&nd_table[i], pci_bus3, "ne2k_pci", NULL);
> 
>      ide_drive_get(hd, ARRAY_SIZE(hd));
> 
> 
> $ ./qemu-system-sparc64 -nographic
> qemu-system-sparc64: hw/pci/pci.c:682: pci_get_bus_devfn: Assertion
> `!root->parent_dev' failed.
> Aborted
> 
> Is there any particular reason why the assert() is set to fail if the
> NIC isn't being instantiated on the root PCI bus?

Sounds strange indeed. At least the patch description of the commit that
introduce the assert() says that using anything else seems to be an error:

http://git.qemu.org/?p=qemu.git;a=commitdiff;h=85c6e4fabb4c26e5cd8a0

Not sure whether that's still true nowadays, since that commit is
already 4 years old...

 Thomas



reply via email to

[Prev in Thread] Current Thread [Next in Thread]