Messages in this thread |  | | Subject | Re: [PATCH 1/3] iommu/vt-d: skip RMRR entries that fail the sanity check | From | "Chen, Yian" <> | Date | Mon, 16 Dec 2019 11:07:16 -0800 |
| |
On 12/11/2019 11:46 AM, Barret Rhoden wrote: > RMRR entries describe memory regions that are DMA targets for devices > outside the kernel's control. > > RMRR entries that fail the sanity check are pointing to regions of > memory that the firmware did not tell the kernel are reserved or > otherwise should not be used. > > Instead of aborting DMAR processing, this commit skips these RMRR > entries. They will not be mapped into the IOMMU, but the IOMMU can > still be utilized. If anything, when the IOMMU is on, those devices > will not be able to clobber RAM that the kernel has allocated from those > regions. > > Signed-off-by: Barret Rhoden <brho@google.com> > --- > drivers/iommu/intel-iommu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index f168cd8ee570..f7e09244c9e4 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -4316,7 +4316,7 @@ int __init dmar_parse_one_rmrr(struct acpi_dmar_header *header, void *arg) > rmrr = (struct acpi_dmar_reserved_memory *)header; > ret = arch_rmrr_sanity_check(rmrr); > if (ret) > - return ret; > + return 0; > > rmrru = kzalloc(sizeof(*rmrru), GFP_KERNEL); > if (!rmrru) Parsing rmrr function should report the error to caller. The behavior to response the error can be chose by the caller in the calling stack, for example, dmar_walk_remapping_entries(). A concern is that ignoring a detected firmware bug might have a potential side impact though it seemed safe for your case.
Thanks, Yian
|  |