Changeset View
Changeset View
Standalone View
Standalone View
sys/x86/iommu/intel_drv.c
Show First 20 Lines • Show All 169 Lines • ▼ Show 20 Lines | dmar_identify(driver_t *driver, device_t parent) | ||||
ACPI_STATUS status; | ACPI_STATUS status; | ||||
int i, error; | int i, error; | ||||
if (acpi_disabled("dmar")) | if (acpi_disabled("dmar")) | ||||
return; | return; | ||||
TUNABLE_INT_FETCH("hw.dmar.enable", &dmar_enable); | TUNABLE_INT_FETCH("hw.dmar.enable", &dmar_enable); | ||||
if (!dmar_enable) | if (!dmar_enable) | ||||
return; | return; | ||||
#ifdef INVARIANTS | |||||
TUNABLE_INT_FETCH("hw.iommu.check_free", &iommu_check_free); | |||||
#endif | |||||
status = AcpiGetTable(ACPI_SIG_DMAR, 1, (ACPI_TABLE_HEADER **)&dmartbl); | status = AcpiGetTable(ACPI_SIG_DMAR, 1, (ACPI_TABLE_HEADER **)&dmartbl); | ||||
if (ACPI_FAILURE(status)) | if (ACPI_FAILURE(status)) | ||||
return; | return; | ||||
haw = dmartbl->Width + 1; | haw = dmartbl->Width + 1; | ||||
if ((1ULL << (haw + 1)) > BUS_SPACE_MAXADDR) | if ((1ULL << (haw + 1)) > BUS_SPACE_MAXADDR) | ||||
dmar_high = BUS_SPACE_MAXADDR; | dmar_high = BUS_SPACE_MAXADDR; | ||||
else | else | ||||
dmar_high = 1ULL << (haw + 1); | dmar_high = 1ULL << (haw + 1); | ||||
▲ Show 20 Lines • Show All 1,178 Lines • Show Last 20 Lines |