Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 751cafe3 authored by Suresh Siddha's avatar Suresh Siddha Committed by David Woodhouse
Browse files

dmar: Allocate queued invalidation structure using numa locality info



Allocate queued invalidation descriptor structures using numa locality info.

Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent ee34b32d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1040,6 +1040,7 @@ static void __dmar_enable_qi(struct intel_iommu *iommu)
int dmar_enable_qi(struct intel_iommu *iommu)
{
	struct q_inval *qi;
	struct page *desc_page;

	if (!ecap_qis(iommu->ecap))
		return -ENOENT;
@@ -1056,13 +1057,16 @@ int dmar_enable_qi(struct intel_iommu *iommu)

	qi = iommu->qi;

	qi->desc = (void *)(get_zeroed_page(GFP_ATOMIC));
	if (!qi->desc) {

	desc_page = alloc_pages_node(iommu->node, GFP_ATOMIC | __GFP_ZERO, 0);
	if (!desc_page) {
		kfree(qi);
		iommu->qi = 0;
		return -ENOMEM;
	}

	qi->desc = page_address(desc_page);

	qi->desc_status = kmalloc(QI_LENGTH * sizeof(int), GFP_ATOMIC);
	if (!qi->desc_status) {
		free_page((unsigned long) qi->desc);