From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57013) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1xcY-0003lH-8l for qemu-devel@nongnu.org; Tue, 01 Jul 2014 08:57:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X1xcI-0001oi-JS for qemu-devel@nongnu.org; Tue, 01 Jul 2014 08:57:14 -0400 Received: from mout.web.de ([212.227.15.3]:52737) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1xcI-0001oG-8V for qemu-devel@nongnu.org; Tue, 01 Jul 2014 08:56:58 -0400 Message-ID: <53B2B011.2020604@web.de> Date: Tue, 01 Jul 2014 14:56:49 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <53B26475.9030809@web.de> In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="edSFpddnvlVaQb627hGCwHLWLk4gW8QvI" Subject: Re: [Qemu-devel] Why devfn will be -1 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Le Tan Cc: qemu-devel This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --edSFpddnvlVaQb627hGCwHLWLk4gW8QvI Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 2014-07-01 14:55, Le Tan wrote: > 2014-07-01 20:52 GMT+08:00 Le Tan : >> Hi Jan, >> >> 2014-07-01 15:34 GMT+08:00 Jan Kiszka : >>> Hi Le, >>> >>> On 2014-07-01 04:34, Le Tan wrote: >>>> Hi Jan, >>>> I use pci_setup_iommu() to setup a PCIIOMMUFunc for the q35 pci bus.= >>>> In the iommu_fn, I print out the devfn parameter and find out that i= t >>>> sometimes will be -1. So what does it mean? >>>> The detail code is here: >>>> >>>> In mch_init() function, I write like this: >>>> PCIBus *pci_bus =3D PCI_BUS(qdev_get_parent_bus(DEVICE(mch))); >>>> pci_setup_iommu(pci_bus, q35_host_dma_iommu, mch->iommu); >>>> >>>> And in q35_host_dma_iommu(PCIBus *bus, void *opaque, int devfn), I >>>> print out the devfn parameter, sometimes it will be -1. >>> >>> Hmm, I have no idea about the reason and would suggest to set a >>> conditional breakpoint on this function, then print the backtrace to = see >>> where this comes from and analyze the device structure from where tha= t >>> -1 was most probably taken. >=20 > I think maybe this is a bug? In the function do_pci_register_device(), > maybe these two sentence should be reorder? > dma_as =3D pci_device_iommu_address_space(pci_dev); > pci_dev->devfn =3D devfn; Looks like. Give it a try, then possibly send a patch :) Jan --edSFpddnvlVaQb627hGCwHLWLk4gW8QvI Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlOysBUACgkQitSsb3rl5xQ0zgCg752bsm537a+AZ9j0kbqEdfiO lWsAnjqiIjZYwaPUuSm3W3q/9TmpoI/l =+EfO -----END PGP SIGNATURE----- --edSFpddnvlVaQb627hGCwHLWLk4gW8QvI--