|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC v2 03/15] vt-d: VT-d Posted-Interrupts feature detection
>>> On 08.05.15 at 11:07, <feng.wu@xxxxxxxxx> wrote:
> --- a/xen/drivers/passthrough/vtd/iommu.c
> +++ b/xen/drivers/passthrough/vtd/iommu.c
> @@ -2044,6 +2044,7 @@ static int init_vtd_hw(void)
> if ( ioapic_to_iommu(IO_APIC_ID(apic)) == NULL )
> {
> iommu_intremap = 0;
> + iommu_intpost = 0;
> dprintk(XENLOG_ERR VTDPREFIX,
> "ioapic_to_iommu: ioapic %#x (id: %#x) is NULL! "
> "Will not try to enable Interrupt Remapping.\n",
> @@ -2060,6 +2061,7 @@ static int init_vtd_hw(void)
> if ( enable_intremap(iommu, 0) != 0 )
> {
> iommu_intremap = 0;
> + iommu_intpost = 0;
> dprintk(XENLOG_WARNING VTDPREFIX,
> "Interrupt Remapping not enabled\n");
>
Instead of sprinkling these around, wouldn't it be possible to clear
the variable more centrally upon !iommu_intremap (assuming the
clearing in generic IOMMU code doesn't already suffice)?
> @@ -2160,7 +2162,13 @@ int __init intel_vtd_setup(void)
> iommu_qinval = 0;
>
> if ( iommu_intremap && !ecap_intr_remap(iommu->ecap) )
> + {
> iommu_intremap = 0;
> + iommu_intpost = 0;
> + }
Just like in the previous patch, I think this would better be folded
into the next if():
> + if ( iommu_intpost && !cap_intr_post(iommu->cap) )
> + iommu_intpost = 0;
Please try to avoid copying odd code: There's no point (afaics) for
the if to check iommu_intpost. Together with the above I think what
you want is
if ( !iommu_intremap || !cap_intr_post(iommu->cap) )
iommu_intpost = 0;
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |