mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-04 15:40:44 +00:00
DMAR: add knob to disable RMRR entries installation into domains
Sponsored by: The FreeBSD Foundation MFC after: 1 week
This commit is contained in:
parent
30ce85ca11
commit
24e38af60a
|
@ -237,6 +237,9 @@ domain_init_rmrr(struct dmar_domain *domain, device_t dev, int bus,
|
|||
vm_pindex_t size, i;
|
||||
int error, error1;
|
||||
|
||||
if (!dmar_rmrr_enable)
|
||||
return (0);
|
||||
|
||||
error = 0;
|
||||
TAILQ_INIT(&rmrr_entries);
|
||||
dmar_dev_parse_rmrr(domain, dev_domain, dev_busno, dev_path,
|
||||
|
|
|
@ -319,6 +319,7 @@ extern iommu_haddr_t dmar_high;
|
|||
extern int haw;
|
||||
extern int dmar_tbl_pagecnt;
|
||||
extern int dmar_batch_coalesce;
|
||||
extern int dmar_rmrr_enable;
|
||||
|
||||
static inline uint32_t
|
||||
dmar_read4(const struct dmar_unit *unit, int reg)
|
||||
|
|
|
@ -156,6 +156,8 @@ dmar_count_iter(ACPI_DMAR_HEADER *dmarh, void *arg)
|
|||
return (1);
|
||||
}
|
||||
|
||||
int dmar_rmrr_enable = 1;
|
||||
|
||||
static int dmar_enable = 0;
|
||||
static void
|
||||
dmar_identify(driver_t *driver, device_t parent)
|
||||
|
@ -170,6 +172,8 @@ dmar_identify(driver_t *driver, device_t parent)
|
|||
TUNABLE_INT_FETCH("hw.dmar.enable", &dmar_enable);
|
||||
if (!dmar_enable)
|
||||
return;
|
||||
TUNABLE_INT_FETCH("hw.dmar.rmrr_enable", &dmar_rmrr_enable);
|
||||
|
||||
status = AcpiGetTable(ACPI_SIG_DMAR, 1, (ACPI_TABLE_HEADER **)&dmartbl);
|
||||
if (ACPI_FAILURE(status))
|
||||
return;
|
||||
|
@ -905,6 +909,9 @@ dmar_rmrr_iter(ACPI_DMAR_HEADER *dmarh, void *arg)
|
|||
char *ptr, *ptrend;
|
||||
int match;
|
||||
|
||||
if (!dmar_rmrr_enable)
|
||||
return (1);
|
||||
|
||||
if (dmarh->Type != ACPI_DMAR_TYPE_RESERVED_MEMORY)
|
||||
return (1);
|
||||
|
||||
|
@ -991,6 +998,9 @@ dmar_inst_rmrr_iter(ACPI_DMAR_HEADER *dmarh, void *arg)
|
|||
|
||||
iria = arg;
|
||||
|
||||
if (!dmar_rmrr_enable)
|
||||
return (1);
|
||||
|
||||
if (dmarh->Type != ACPI_DMAR_TYPE_RESERVED_MEMORY)
|
||||
return (1);
|
||||
|
||||
|
|
Loading…
Reference in a new issue