|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 1/7] VT-d: Check VT-d Device-TLB flush error(IOMMU part).
> On February 11, 2016 1:01am, Jan Beulich <JBeulich@xxxxxxxx> wrote:
> >>> On 05.02.16 at 11:18, <quan.xu@xxxxxxxxx> wrote:
> > This patch checks all kinds of error and all the way up the call trees
> > of VT-d Device-TLB flush(IOMMU part).
> > @@ -171,7 +172,10 @@ void __hwdom_init iommu_hwdom_init(struct
> domain *d)
> > ((page->u.inuse.type_info & PGT_type_mask)
> > == PGT_writable_page) )
> > mapping |= IOMMUF_writable;
> > - hd->platform_ops->map_page(d, gfn, mfn, mapping);
> > + rc = hd->platform_ops->map_page(d, gfn, mfn, mapping);
> > + if ( rc )
> > + return rc;
>
> So in this patch I can't find error checking getting introduced for the
> caller of
> this function. And if you were to add it - what would your intentions be?
> Panic?
> IOW I'm not sure bailing here is a good idea. Logging an error message (but
> only
> once in this loop) would be a possibility. (This pattern repeats further
> down.)
>
While I read the code/email again and again,
I think I'd better _not_ return error value. Then the below modifications are
pointless:
1.
- void (*hwdom_init)(struct domain *d);
+ int (*hwdom_init)(struct domain *d);
2.
-void iommu_hwdom_init(struct domain *d);
+int iommu_hwdom_init(struct domain *d);
> > @@ -369,12 +376,16 @@ void iommu_share_p2m_table(struct domain* d)
> > ops->share_p2m(d);
> > }
> >
> > -void iommu_crash_shutdown(void)
> > +int iommu_crash_shutdown(void)
> > {
> > const struct iommu_ops *ops = iommu_get_ops();
> > +
> > if ( iommu_enabled )
> > - ops->crash_shutdown();
> > + return ops->crash_shutdown();
> > +
> > iommu_enabled = iommu_intremap = 0;
> > +
> > + return 0;
> > }
>
> Here again the question is - what is the error value going to be used for?
> We're
> trying to shut down a crashed system when coming here.
>
It is similar as the above case.
I think I'd better _not_ return error value. Then the below modifications are
pointless:
1.
- void (*crash_shutdown)(void);
+ int (*crash_shutdown)(void);
2.
-void amd_iommu_crash_shutdown(void);
+int amd_iommu_crash_shutdown(void);
3.
-void iommu_crash_shutdown(void);
+int iommu_crash_shutdown(void);
Right?
Quan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |