Messages in this thread | | | Date | Wed, 16 Oct 2019 09:51:21 +0200 | From | Joerg Roedel <> | Subject | Re: [PATCH] iommu/vt-d: Check VT-d RMRR region in BIOS is reported as reserved |
| |
Hi,
On Tue, Oct 15, 2019 at 09:49:32AM -0700, Yian Chen wrote: > VT-d RMRR (Reserved Memory Region Reporting) regions are reserved > for device use only and should not be part of allocable memory pool of OS. > > BIOS e820_table reports complete memory map to OS, including OS usable > memory ranges and BIOS reserved memory ranges etc. > > x86 BIOS may not be trusted to include RMRR regions as reserved type > of memory in its e820 memory map, hence validate every RMRR entry > with the e820 memory map to make sure the RMRR regions will not be > used by OS for any other purposes.
Are there real systems in the wild where this is a problem?
> +static inline int __init > +arch_rmrr_sanity_check(struct acpi_dmar_reserved_memory *rmrr) > +{ > + u64 start = rmrr->base_address; > + u64 end = rmrr->end_address + 1; > + > + if (e820__mapped_all(start, end, E820_TYPE_RESERVED)) > + return 0; > + > + pr_err(FW_BUG "No firmware reserved region can cover this RMRR [%#018Lx-%#018Lx], contact BIOS vendor for fixes\n", > + start, end - 1); > + return -EFAULT; > +}
Why -EFAULT, there is no fault involved? Usibg -EINVAL seems to be a better choice.
| |