|
[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 23.02.16 at 12:43, <quan.xu@xxxxxxxxx> wrote:
>> 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);
Agreed. Just log some message for failure in the case above, but
make sure that is (a) useful for debugging and (b) not one message
per page.
>> > @@ -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);
Indeed, same as above.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |