From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41106) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XEucg-0004zw-NV for qemu-devel@nongnu.org; Wed, 06 Aug 2014 02:22:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XEucc-0007tH-2F for qemu-devel@nongnu.org; Wed, 06 Aug 2014 02:22:54 -0400 Received: from mga03.intel.com ([143.182.124.21]:26832) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XEucb-0007rO-Oq for qemu-devel@nongnu.org; Wed, 06 Aug 2014 02:22:49 -0400 Message-ID: <53E1C9B6.7090203@intel.com> Date: Wed, 06 Aug 2014 14:22:46 +0800 From: "Chen, Tiejun" MIME-Version: 1.0 References: <1406808574-19728-1-git-send-email-tiejun.chen@intel.com> <1406808574-19728-4-git-send-email-tiejun.chen@intel.com> <20140804135020.GC17674@redhat.com> In-Reply-To: <20140804135020.GC17674@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [v3][PATCH 3/4] xen:hw:pci-host:piix: create host bridge to passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: pbonzini@redhat.com, xen-devel@lists.xensource.com, qemu-devel@nongnu.org, stefano.stabellini@eu.citrix.com On 2014/8/4 21:50, Michael S. Tsirkin wrote: > On Thu, Jul 31, 2014 at 08:09:33PM +0800, Tiejun Chen wrote: >> Implement a pci host bridge specific to passthrough. Actually >> this just inherits the standard one. >> >> This is based on http://patchwork.ozlabs.org/patch/363810/. >> >> Signed-off-by: Tiejun Chen >> --- >> hw/pci-host/piix.c | 41 +++++++++++++++++++++++++++++++++++++++++ >> include/hw/i386/pc.h | 2 ++ >> 2 files changed, 43 insertions(+) >> >> v3: >> >> * Rebase >> >> v2: >> >> * Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough >> >> diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c >> index 0cd82b8..26ba1e5 100644 >> --- a/hw/pci-host/piix.c >> +++ b/hw/pci-host/piix.c >> @@ -93,6 +93,9 @@ typedef struct PIIX3State { >> #define I440FX_PCI_DEVICE(obj) \ >> OBJECT_CHECK(PCII440FXState, (obj), TYPE_I440FX_PCI_DEVICE) >> >> +#define XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE(obj) \ >> + OBJECT_CHECK(PCII440FXState, (obj), TYPE_XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE) >> + >> struct PCII440FXState { >> /*< private >*/ >> PCIDevice parent_obj; >> @@ -303,6 +306,16 @@ static int i440fx_initfn(PCIDevice *dev) >> return 0; >> } >> >> +static int xen_igd_passthrough_i440fx_initfn(PCIDevice *dev) >> +{ >> + PCII440FXState *d = XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE(dev); >> + >> + dev->config[I440FX_SMRAM] = 0x02; >> + >> + cpu_smm_register(&i440fx_set_smm, d); >> + return 0; >> +} >> + > > This is exactly i440fx_initfn. > Don't copy and paste code like this, reuse existing functions. > We can't reuse i440fx_initfn() simply after we introduce XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE(). But with a further concern I think we also pass type into I440FX_PCI_DEVIC() to index different objects here. Please see next version. Thanks Tiejun From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chen, Tiejun" Subject: Re: [v3][PATCH 3/4] xen:hw:pci-host:piix: create host bridge to passthrough Date: Wed, 06 Aug 2014 14:22:46 +0800 Message-ID: <53E1C9B6.7090203@intel.com> References: <1406808574-19728-1-git-send-email-tiejun.chen@intel.com> <1406808574-19728-4-git-send-email-tiejun.chen@intel.com> <20140804135020.GC17674@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20140804135020.GC17674@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org To: "Michael S. Tsirkin" Cc: pbonzini@redhat.com, xen-devel@lists.xensource.com, qemu-devel@nongnu.org, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org On 2014/8/4 21:50, Michael S. Tsirkin wrote: > On Thu, Jul 31, 2014 at 08:09:33PM +0800, Tiejun Chen wrote: >> Implement a pci host bridge specific to passthrough. Actually >> this just inherits the standard one. >> >> This is based on http://patchwork.ozlabs.org/patch/363810/. >> >> Signed-off-by: Tiejun Chen >> --- >> hw/pci-host/piix.c | 41 +++++++++++++++++++++++++++++++++++++++++ >> include/hw/i386/pc.h | 2 ++ >> 2 files changed, 43 insertions(+) >> >> v3: >> >> * Rebase >> >> v2: >> >> * Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough >> >> diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c >> index 0cd82b8..26ba1e5 100644 >> --- a/hw/pci-host/piix.c >> +++ b/hw/pci-host/piix.c >> @@ -93,6 +93,9 @@ typedef struct PIIX3State { >> #define I440FX_PCI_DEVICE(obj) \ >> OBJECT_CHECK(PCII440FXState, (obj), TYPE_I440FX_PCI_DEVICE) >> >> +#define XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE(obj) \ >> + OBJECT_CHECK(PCII440FXState, (obj), TYPE_XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE) >> + >> struct PCII440FXState { >> /*< private >*/ >> PCIDevice parent_obj; >> @@ -303,6 +306,16 @@ static int i440fx_initfn(PCIDevice *dev) >> return 0; >> } >> >> +static int xen_igd_passthrough_i440fx_initfn(PCIDevice *dev) >> +{ >> + PCII440FXState *d = XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE(dev); >> + >> + dev->config[I440FX_SMRAM] = 0x02; >> + >> + cpu_smm_register(&i440fx_set_smm, d); >> + return 0; >> +} >> + > > This is exactly i440fx_initfn. > Don't copy and paste code like this, reuse existing functions. > We can't reuse i440fx_initfn() simply after we introduce XEN_IGD_PASSTHROUGH_I440FX_PCI_DEVICE(). But with a further concern I think we also pass type into I440FX_PCI_DEVIC() to index different objects here. Please see next version. Thanks Tiejun