Jan Beulich
2013-Aug-13 12:19 UTC
Ping #2: [PATCH] VT-d: protect against bogus information coming from BIOS
The first ping was sent over a week ago, and I''ll assume silent agreement if I won''t hear back otherwise in a day or two. (I would, btw, have wanted this to also go into 4.2.3 and 4.1.6, but likely it''s going to be too late now for this, and thus for the 4.1 branch altogether.) Jan>>> On 10.07.13 at 12:26, "Jan Beulich" <JBeulich@suse.com> wrote: > Add checks similar to those done by Linux: The DRHD address must not > be all zeros or all ones (Linux only checks for zero), and capabilities > as well as extended capabilities must not be all ones. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> > > --- a/xen/drivers/passthrough/vtd/dmar.c > +++ b/xen/drivers/passthrough/vtd/dmar.c > @@ -447,6 +447,9 @@ acpi_parse_one_drhd(struct acpi_dmar_hea > if ( (ret = acpi_dmar_check_length(header, sizeof(*drhd))) != 0 ) > return ret; > > + if ( !drhd->address || !(drhd->address + 1) ) > + return -ENODEV; > + > dmaru = xzalloc(struct acpi_drhd_unit); > if ( !dmaru ) > return -ENOMEM; > --- a/xen/drivers/passthrough/vtd/iommu.c > +++ b/xen/drivers/passthrough/vtd/iommu.c > @@ -1159,6 +1159,9 @@ int __init iommu_alloc(struct acpi_drhd_ > dprintk(VTDPREFIX, > "cap = %"PRIx64" ecap = %"PRIx64"\n", iommu->cap, iommu->ecap); > } > + if ( !(iommu->cap + 1) || !(iommu->ecap + 1) ) > + return -ENODEV; > + > if ( cap_fault_reg_offset(iommu->cap) + > cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN >= PAGE_SIZE || > ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE )
Zhang, Yang Z
2013-Aug-14 02:01 UTC
Re: Ping #2: [PATCH] VT-d: protect against bogus information coming from BIOS
Jan Beulich wrote on 2013-08-13:> The first ping was sent over a week ago, and I''ll assume silent > agreement if I won''t hear back otherwise in a day or two. (I would, btw, > have wanted this to also go into 4.2.3 and 4.1.6, but likely it''s going > to be too late now for this, and thus for the 4.1 branch altogether.) > > Jan > >>>> On 10.07.13 at 12:26, "Jan Beulich" <JBeulich@suse.com> wrote: >> Add checks similar to those done by Linux: The DRHD address must not >> be all zeros or all ones (Linux only checks for zero), and >> capabilities as well as extended capabilities must not be all ones. >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> >> >> --- a/xen/drivers/passthrough/vtd/dmar.c >> +++ b/xen/drivers/passthrough/vtd/dmar.c >> @@ -447,6 +447,9 @@ acpi_parse_one_drhd(struct acpi_dmar_hea >> if ( (ret = acpi_dmar_check_length(header, sizeof(*drhd))) != 0 ) >> return ret; >> + if ( !drhd->address || !(drhd->address + 1) ) >> + return -ENODEV; >> + >> dmaru = xzalloc(struct acpi_drhd_unit); >> if ( !dmaru ) >> return -ENOMEM; >> --- a/xen/drivers/passthrough/vtd/iommu.c >> +++ b/xen/drivers/passthrough/vtd/iommu.c >> @@ -1159,6 +1159,9 @@ int __init iommu_alloc(struct acpi_drhd_ >> dprintk(VTDPREFIX, >> "cap = %"PRIx64" ecap = %"PRIx64"\n", iommu->cap, > iommu->ecap); >> } >> + if ( !(iommu->cap + 1) || !(iommu->ecap + 1) ) >> + return -ENODEV; >> + >> if ( cap_fault_reg_offset(iommu->cap) + >> cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN >>> PAGE_SIZE || ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE )Acked by: Yang Zhang <yang.z.zhang@intel.com> Best regards, Yang
Jan Beulich
2013-Aug-14 08:21 UTC
Re: Ping #2: [PATCH] VT-d: protect against bogus information coming from BIOS
>>> On 14.08.13 at 04:01, "Zhang, Yang Z" <yang.z.zhang@intel.com> wrote: > Jan Beulich wrote on 2013-08-13: >> The first ping was sent over a week ago, and I''ll assume silent >> agreement if I won''t hear back otherwise in a day or two. (I would, btw, >> have wanted this to also go into 4.2.3 and 4.1.6, but likely it''s going >> to be too late now for this, and thus for the 4.1 branch altogether.) > Acked by: Yang Zhang <yang.z.zhang@intel.com>I appreciate your ack, but only Xiantao is listed as VT-d maintainer, i.e. your ack is only an extra confirmation. Regards, Jan
Zhang, Xiantao
2013-Aug-14 08:25 UTC
Re: Ping #2: [PATCH] VT-d: protect against bogus information coming from BIOS
Thanks! Acked-by: Xiantao Zhang <xiantao.zhang@intel.com> Xiantao -----Original Message----- From: Jan Beulich [mailto:JBeulich@suse.com] Sent: Wednesday, August 14, 2013 4:22 PM To: Zhang, Xiantao; Zhang, Yang Z Cc: Ben Guthro; xen-devel Subject: RE: [Xen-devel] Ping #2: [PATCH] VT-d: protect against bogus information coming from BIOS>>> On 14.08.13 at 04:01, "Zhang, Yang Z" <yang.z.zhang@intel.com> wrote: > Jan Beulich wrote on 2013-08-13: >> The first ping was sent over a week ago, and I''ll assume silent >> agreement if I won''t hear back otherwise in a day or two. (I would, >> btw, have wanted this to also go into 4.2.3 and 4.1.6, but likely >> it''s going to be too late now for this, and thus for the 4.1 branch >> altogether.) > Acked by: Yang Zhang <yang.z.zhang@intel.com>I appreciate your ack, but only Xiantao is listed as VT-d maintainer, i.e. your ack is only an extra confirmation. Regards, Jan