Skip to content

Commit

Permalink
x86, dmar: use atomic allocations for QI and Intr-remapping init
Browse files Browse the repository at this point in the history
Impact: invalid use of GFP_KERNEL in interrupt context

Queued invalidation and interrupt-remapping will get initialized with
interrupts disabled (while enabling interrupt-remapping). So use
GFP_ATOMIC instead of GFP_KERNEL for memory alloacations.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
  • Loading branch information
Suresh Siddha authored and H. Peter Anvin committed Mar 17, 2009
1 parent 68a8ca5 commit fa4b57c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions drivers/pci/dmar.c
Original file line number Diff line number Diff line change
Expand Up @@ -809,20 +809,20 @@ int dmar_enable_qi(struct intel_iommu *iommu)
if (iommu->qi)
return 0;

iommu->qi = kmalloc(sizeof(*qi), GFP_KERNEL);
iommu->qi = kmalloc(sizeof(*qi), GFP_ATOMIC);
if (!iommu->qi)
return -ENOMEM;

qi = iommu->qi;

qi->desc = (void *)(get_zeroed_page(GFP_KERNEL));
qi->desc = (void *)(get_zeroed_page(GFP_ATOMIC));
if (!qi->desc) {
kfree(qi);
iommu->qi = 0;
return -ENOMEM;
}

qi->desc_status = kmalloc(QI_LENGTH * sizeof(int), GFP_KERNEL);
qi->desc_status = kmalloc(QI_LENGTH * sizeof(int), GFP_ATOMIC);
if (!qi->desc_status) {
free_page((unsigned long) qi->desc);
kfree(qi);
Expand Down
4 changes: 2 additions & 2 deletions drivers/pci/intr_remapping.c
Original file line number Diff line number Diff line change
Expand Up @@ -447,12 +447,12 @@ static int setup_intr_remapping(struct intel_iommu *iommu, int mode)
struct page *pages;

ir_table = iommu->ir_table = kzalloc(sizeof(struct ir_table),
GFP_KERNEL);
GFP_ATOMIC);

if (!iommu->ir_table)
return -ENOMEM;

pages = alloc_pages(GFP_KERNEL | __GFP_ZERO, INTR_REMAP_PAGE_ORDER);
pages = alloc_pages(GFP_ATOMIC | __GFP_ZERO, INTR_REMAP_PAGE_ORDER);

if (!pages) {
printk(KERN_ERR "failed to allocate pages of order %d\n",
Expand Down

0 comments on commit fa4b57c

Please sign in to comment.