diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2009-03-17 01:05:05 +0100 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2009-03-18 00:49:30 +0100 |
commit | fa4b57cc045d6134b9862b2873f9c8ba9ed53ffe (patch) | |
tree | 7c31d15426e29d86314545be3cf9553ab91ef574 /drivers/pci/intr_remapping.c | |
parent | x86: fix broken irq migration logic while cleaning up multiple vectors (diff) | |
download | linux-fa4b57cc045d6134b9862b2873f9c8ba9ed53ffe.tar.xz linux-fa4b57cc045d6134b9862b2873f9c8ba9ed53ffe.zip |
x86, dmar: use atomic allocations for QI and Intr-remapping init
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>
Diffstat (limited to 'drivers/pci/intr_remapping.c')
-rw-r--r-- | drivers/pci/intr_remapping.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index f7ecd85e2104..bc5b6976f918 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c @@ -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", |