[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/3] iommu: exports set_entry
At 18:00 +0000 on 15 Nov (1289844015), Jean Guyader wrote: > diff -r 93ae9939b4a5 xen/drivers/passthrough/iommu.c > --- a/xen/drivers/passthrough/iommu.c Mon Nov 15 11:52:14 2010 +0000 > +++ b/xen/drivers/passthrough/iommu.c Mon Nov 15 11:53:59 2010 +0000 > @@ -418,6 +418,23 @@ > ops->suspend(); > } > > +int iommu_set_entry(struct domain *d, unsigned long gfn, unsigned long mfn, > + unsigned int flags, int map) > +{ > + const struct iommu_ops *ops = iommu_get_ops(); > + if ( iommu_enabled ) > + return ops->set_entry(d, gfn, mfn, flags, map); Needs a check that set_entry() isn't NULL or it'll crash on AMD IOMMUs. > + return -1; > +} > + > +int iommu_flush_iotlb(struct domain *d, unsigned long gfn, unsigned int nr) > +{ > + const struct iommu_ops *ops = iommu_get_ops(); > + if ( iommu_enabled ) > + return ops->flush_iotlb(d, gfn, nr); Likewise. > + return -1; > +} > + > /* > * Local variables: > * mode: C > diff -r 93ae9939b4a5 xen/drivers/passthrough/vtd/iommu.c > --- a/xen/drivers/passthrough/vtd/iommu.c Mon Nov 15 11:52:14 2010 +0000 > +++ b/xen/drivers/passthrough/vtd/iommu.c Mon Nov 15 11:53:59 2010 +0000 > @@ -2197,6 +2197,8 @@ > .read_msi_from_ire = msi_msg_read_remap_rte, > .suspend = vtd_suspend, > .resume = vtd_resume, > + .set_entry = intel_iommu_set_entry, > + .flush_iotlb = intel_iommu_flush_iotlb > }; > > /* > diff -r 93ae9939b4a5 xen/include/xen/iommu.h > --- a/xen/include/xen/iommu.h Mon Nov 15 11:52:14 2010 +0000 > +++ b/xen/include/xen/iommu.h Mon Nov 15 11:53:59 2010 +0000 > @@ -84,6 +84,10 @@ > unsigned int flags); > int iommu_unmap_page(struct domain *d, unsigned long gfn); > > +int iommu_set_entry(struct domain *d, unsigned long gfn, unsigned long mfn, > + unsigned int flags, int map); > +int iommu_flush_iotlb(struct domain *d, unsigned long gfn, unsigned int nr); > + > void iommu_domain_teardown(struct domain *d); > int hvm_do_IRQ_dpci(struct domain *d, unsigned int irq); > int dpci_ioport_intercept(ioreq_t *p); > @@ -130,6 +134,9 @@ > unsigned int (*read_apic_from_ire)(unsigned int apic, unsigned int reg); > void (*suspend)(void); > void (*resume)(void); > + int (*set_entry)(struct domain *d, unsigned long gfn, unsigned long mfn, > + unsigned int flags, int map); > + int (*flush_iotlb)(struct domain *d, unsigned long gfn, unsigned int nr); > }; > > void iommu_update_ire_from_apic(unsigned int apic, unsigned int reg, > unsigned int value); > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel -- Tim Deegan <Tim.Deegan@xxxxxxxxxx> Principal Software Engineer, Xen Platform Team Citrix Systems UK Ltd. (Company #02937203, SL9 0BG) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |