Skip to content

Commit

Permalink
dmar: Allocate queued invalidation structure using numa locality info
Browse files Browse the repository at this point in the history
Allocate queued invalidation descriptor structures using numa locality info.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Suresh Siddha authored and David Woodhouse committed Oct 5, 2009
1 parent ee34b32 commit 751cafe
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions drivers/pci/dmar.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down

0 comments on commit 751cafe

Please sign in to comment.