drhd               64 drivers/iommu/dmar.c static int alloc_iommu(struct dmar_drhd_unit *drhd);
drhd               69 drivers/iommu/dmar.c static void dmar_register_drhd_unit(struct dmar_drhd_unit *drhd)
drhd               75 drivers/iommu/dmar.c 	if (drhd->include_all)
drhd               76 drivers/iommu/dmar.c 		list_add_tail_rcu(&drhd->list, &dmar_drhd_units);
drhd               78 drivers/iommu/dmar.c 		list_add_rcu(&drhd->list, &dmar_drhd_units);
drhd              299 drivers/iommu/dmar.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              305 drivers/iommu/dmar.c 		drhd = container_of(dmaru->hdr,
drhd              307 drivers/iommu/dmar.c 		ret = dmar_insert_dev_scope(info, (void *)(drhd + 1),
drhd              308 drivers/iommu/dmar.c 				((void *)drhd) + drhd->header.length,
drhd              370 drivers/iommu/dmar.c dmar_find_dmaru(struct acpi_dmar_hardware_unit *drhd)
drhd              376 drivers/iommu/dmar.c 		if (dmaru->segment == drhd->segment &&
drhd              377 drivers/iommu/dmar.c 		    dmaru->reg_base_addr == drhd->address)
drhd              390 drivers/iommu/dmar.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              394 drivers/iommu/dmar.c 	drhd = (struct acpi_dmar_hardware_unit *)header;
drhd              395 drivers/iommu/dmar.c 	dmaru = dmar_find_dmaru(drhd);
drhd              409 drivers/iommu/dmar.c 	dmaru->reg_base_addr = drhd->address;
drhd              410 drivers/iommu/dmar.c 	dmaru->segment = drhd->segment;
drhd              411 drivers/iommu/dmar.c 	dmaru->include_all = drhd->flags & 0x1; /* BIT0: INCLUDE_ALL */
drhd              412 drivers/iommu/dmar.c 	dmaru->devices = dmar_alloc_dev_scope((void *)(drhd + 1),
drhd              413 drivers/iommu/dmar.c 					      ((void *)drhd) + drhd->header.length,
drhd              471 drivers/iommu/dmar.c 	struct dmar_drhd_unit *drhd;
drhd              474 drivers/iommu/dmar.c 	for_each_drhd_unit(drhd) {
drhd              475 drivers/iommu/dmar.c 		if (drhd->reg_base_addr == rhsa->base_address) {
drhd              480 drivers/iommu/dmar.c 			drhd->iommu->node = node;
drhd              502 drivers/iommu/dmar.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              509 drivers/iommu/dmar.c 		drhd = container_of(header, struct acpi_dmar_hardware_unit,
drhd              512 drivers/iommu/dmar.c 			(unsigned long long)drhd->address, drhd->flags);
drhd              675 drivers/iommu/dmar.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              681 drivers/iommu/dmar.c 		drhd = container_of(dmaru->hdr,
drhd              686 drivers/iommu/dmar.c 		    drhd->segment == pci_domain_nr(dev->bus))
drhd              704 drivers/iommu/dmar.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              711 drivers/iommu/dmar.c 		drhd = container_of(dmaru->hdr,
drhd              715 drivers/iommu/dmar.c 		for (scope = (void *)(drhd + 1);
drhd              716 drivers/iommu/dmar.c 		     (unsigned long)scope < ((unsigned long)drhd) + drhd->header.length;
drhd              853 drivers/iommu/dmar.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              857 drivers/iommu/dmar.c 	drhd = (void *)entry;
drhd              858 drivers/iommu/dmar.c 	if (!drhd->address) {
drhd              864 drivers/iommu/dmar.c 		addr = ioremap(drhd->address, VTD_PAGE_SIZE);
drhd              866 drivers/iommu/dmar.c 		addr = early_ioremap(drhd->address, VTD_PAGE_SIZE);
drhd              868 drivers/iommu/dmar.c 		pr_warn("Can't validate DRHD address: %llx\n", drhd->address);
drhd              881 drivers/iommu/dmar.c 		warn_invalid_dmar(drhd->address, " returns all ones");
drhd             1018 drivers/iommu/dmar.c static int alloc_iommu(struct dmar_drhd_unit *drhd)
drhd             1026 drivers/iommu/dmar.c 	if (!drhd->reg_base_addr) {
drhd             1041 drivers/iommu/dmar.c 	err = map_iommu(iommu, drhd->reg_base_addr);
drhd             1062 drivers/iommu/dmar.c 	iommu->segment = drhd->segment;
drhd             1069 drivers/iommu/dmar.c 		(unsigned long long)drhd->reg_base_addr,
drhd             1099 drivers/iommu/dmar.c 	drhd->iommu = iommu;
drhd             1812 drivers/iommu/dmar.c 	struct dmar_drhd_unit *drhd;
drhd             1818 drivers/iommu/dmar.c 	for_each_iommu(iommu, drhd) {
drhd             1824 drivers/iommu/dmar.c 			       (unsigned long long)drhd->reg_base_addr, ret);
drhd              111 drivers/iommu/intel-iommu-debugfs.c 	struct dmar_drhd_unit *drhd;
drhd              118 drivers/iommu/intel-iommu-debugfs.c 	for_each_active_iommu(iommu, drhd) {
drhd              119 drivers/iommu/intel-iommu-debugfs.c 		if (!drhd->reg_base_addr) {
drhd              126 drivers/iommu/intel-iommu-debugfs.c 			   iommu->name, drhd->reg_base_addr);
drhd              282 drivers/iommu/intel-iommu-debugfs.c 	struct dmar_drhd_unit *drhd;
drhd              287 drivers/iommu/intel-iommu-debugfs.c 	for_each_active_iommu(iommu, drhd) {
drhd              360 drivers/iommu/intel-iommu-debugfs.c 	struct dmar_drhd_unit *drhd;
drhd              366 drivers/iommu/intel-iommu-debugfs.c 	for_each_active_iommu(iommu, drhd) {
drhd              386 drivers/iommu/intel-iommu-debugfs.c 	for_each_active_iommu(iommu, drhd) {
drhd              616 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd              635 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd              646 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd              651 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd              666 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd              676 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd              764 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd = NULL;
drhd              794 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd              795 drivers/iommu/intel-iommu.c 		if (pdev && segment != drhd->segment)
drhd              798 drivers/iommu/intel-iommu.c 		for_each_active_dev_scope(drhd->devices,
drhd              799 drivers/iommu/intel-iommu.c 					  drhd->devices_cnt, i, tmp) {
drhd              808 drivers/iommu/intel-iommu.c 				*bus = drhd->devices[i].bus;
drhd              809 drivers/iommu/intel-iommu.c 				*devfn = drhd->devices[i].devfn;
drhd              817 drivers/iommu/intel-iommu.c 		if (pdev && drhd->include_all) {
drhd             3176 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             3186 drivers/iommu/intel-iommu.c 	for_each_drhd_unit(drhd) {
drhd             3211 drivers/iommu/intel-iommu.c 	for_each_iommu(iommu, drhd) {
drhd             3212 drivers/iommu/intel-iommu.c 		if (drhd->ignored) {
drhd             3292 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             3322 drivers/iommu/intel-iommu.c 	for_each_iommu(iommu, drhd) {
drhd             3323 drivers/iommu/intel-iommu.c 		if (drhd->ignored) {
drhd             3356 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             4102 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4120 drivers/iommu/intel-iommu.c 	drhd = dmar_find_matched_drhd_unit(pdev);
drhd             4121 drivers/iommu/intel-iommu.c 	if (!drhd || drhd->reg_base_addr - vtbar != 0xa000) {
drhd             4131 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4135 drivers/iommu/intel-iommu.c 	for_each_drhd_unit(drhd) {
drhd             4136 drivers/iommu/intel-iommu.c 		if (!drhd->include_all) {
drhd             4137 drivers/iommu/intel-iommu.c 			for_each_active_dev_scope(drhd->devices,
drhd             4138 drivers/iommu/intel-iommu.c 						  drhd->devices_cnt, i, dev)
drhd             4141 drivers/iommu/intel-iommu.c 			if (i == drhd->devices_cnt)
drhd             4142 drivers/iommu/intel-iommu.c 				drhd->ignored = 1;
drhd             4146 drivers/iommu/intel-iommu.c 	for_each_active_drhd_unit(drhd) {
drhd             4147 drivers/iommu/intel-iommu.c 		if (drhd->include_all)
drhd             4150 drivers/iommu/intel-iommu.c 		for_each_active_dev_scope(drhd->devices,
drhd             4151 drivers/iommu/intel-iommu.c 					  drhd->devices_cnt, i, dev)
drhd             4154 drivers/iommu/intel-iommu.c 		if (i < drhd->devices_cnt)
drhd             4160 drivers/iommu/intel-iommu.c 			drhd->ignored = 1;
drhd             4161 drivers/iommu/intel-iommu.c 			for_each_active_dev_scope(drhd->devices,
drhd             4162 drivers/iommu/intel-iommu.c 						  drhd->devices_cnt, i, dev)
drhd             4171 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4174 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd)
drhd             4178 drivers/iommu/intel-iommu.c 	for_each_iommu(iommu, drhd) {
drhd             4179 drivers/iommu/intel-iommu.c 		if (drhd->ignored) {
drhd             4205 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4208 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             4218 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4222 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             4231 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             4250 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd)
drhd             4258 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4270 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             4286 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd)
drhd             4673 drivers/iommu/intel-iommu.c 			struct dmar_drhd_unit *drhd;
drhd             4696 drivers/iommu/intel-iommu.c 			for_each_active_iommu(iommu, drhd)
drhd             4748 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4750 drivers/iommu/intel-iommu.c 	for_each_iommu(iommu, drhd)
drhd             4872 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4878 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             4879 drivers/iommu/intel-iommu.c 		for_each_active_dev_scope(drhd->devices,
drhd             4880 drivers/iommu/intel-iommu.c 					  drhd->devices_cnt, i, dev) {
drhd             4916 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             4967 drivers/iommu/intel-iommu.c 			for_each_iommu(iommu, drhd)
drhd             5021 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             5041 drivers/iommu/intel-iommu.c 	for_each_iommu(iommu, drhd) {
drhd             5042 drivers/iommu/intel-iommu.c 		if (!drhd->ignored && !translation_pre_enabled(iommu))
drhd             5532 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             5537 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd             5550 drivers/iommu/intel-iommu.c 	struct dmar_drhd_unit *drhd;
drhd             5555 drivers/iommu/intel-iommu.c 	for_each_active_iommu(iommu, drhd) {
drhd              228 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd              230 drivers/iommu/intel_irq_remapping.c 	drhd = dmar_find_matched_drhd_unit(dev);
drhd              231 drivers/iommu/intel_irq_remapping.c 	if (!drhd)
drhd              234 drivers/iommu/intel_irq_remapping.c 	return drhd->iommu;
drhd              692 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd              695 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd              708 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd              734 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd)
drhd              747 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd              759 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd              779 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd              794 drivers/iommu/intel_irq_remapping.c 		for_each_iommu(iommu, drhd)
drhd              805 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd              812 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd              836 drivers/iommu/intel_irq_remapping.c 				   struct acpi_dmar_hardware_unit *drhd)
drhd              874 drivers/iommu/intel_irq_remapping.c 		scope->enumeration_id, drhd->address);
drhd              881 drivers/iommu/intel_irq_remapping.c 				     struct acpi_dmar_hardware_unit *drhd)
drhd              919 drivers/iommu/intel_irq_remapping.c 		scope->enumeration_id, drhd->address, iommu->seq_id);
drhd              928 drivers/iommu/intel_irq_remapping.c 	struct acpi_dmar_hardware_unit *drhd;
drhd              932 drivers/iommu/intel_irq_remapping.c 	drhd = (struct acpi_dmar_hardware_unit *)header;
drhd              933 drivers/iommu/intel_irq_remapping.c 	start = (void *)(drhd + 1);
drhd              934 drivers/iommu/intel_irq_remapping.c 	end = ((void *)drhd) + header->length;
drhd              939 drivers/iommu/intel_irq_remapping.c 			ret = ir_parse_one_ioapic_scope(scope, iommu, drhd);
drhd              941 drivers/iommu/intel_irq_remapping.c 			ret = ir_parse_one_hpet_scope(scope, iommu, drhd);
drhd              967 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd              972 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd              978 drivers/iommu/intel_irq_remapping.c 		ret = ir_parse_ioapic_hpet_scope(drhd->hdr, iommu);
drhd             1018 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd             1024 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd             1040 drivers/iommu/intel_irq_remapping.c 	struct dmar_drhd_unit *drhd;
drhd             1044 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd)
drhd             1051 drivers/iommu/intel_irq_remapping.c 	for_each_iommu(iommu, drhd) {
drhd               72 include/linux/dmar.h #define for_each_drhd_unit(drhd)					\
drhd               73 include/linux/dmar.h 	list_for_each_entry_rcu(drhd, &dmar_drhd_units, list,		\
drhd               76 include/linux/dmar.h #define for_each_active_drhd_unit(drhd)					\
drhd               77 include/linux/dmar.h 	list_for_each_entry_rcu(drhd, &dmar_drhd_units, list,		\
drhd               79 include/linux/dmar.h 		if (drhd->ignored) {} else
drhd               81 include/linux/dmar.h #define for_each_active_iommu(i, drhd)					\
drhd               82 include/linux/dmar.h 	list_for_each_entry_rcu(drhd, &dmar_drhd_units, list,		\
drhd               84 include/linux/dmar.h 		if (i=drhd->iommu, drhd->ignored) {} else
drhd               86 include/linux/dmar.h #define for_each_iommu(i, drhd)						\
drhd               87 include/linux/dmar.h 	list_for_each_entry_rcu(drhd, &dmar_drhd_units, list,		\
drhd               89 include/linux/dmar.h 		if (i=drhd->iommu, 0) {} else