Skip to content

Commit b8437a3

Browse files
diandersjoergroedel
authored andcommitted
iommu: Properly pass gfp_t in _iommu_map() to avoid atomic sleeping
Sleeping while atomic = bad. Let's fix an obvious typo to try to avoid it. The warning that was seen (on a downstream kernel with the problematic patch backported): BUG: sleeping function called from invalid context at mm/page_alloc.c:4726 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 9, name: ksoftirqd/0 CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 5.4.93-12508-gc10c93e28e39 #1 Call trace: dump_backtrace+0x0/0x154 show_stack+0x20/0x2c dump_stack+0xa0/0xfc ___might_sleep+0x11c/0x12c __might_sleep+0x50/0x84 __alloc_pages_nodemask+0xf8/0x2bc __arm_lpae_alloc_pages+0x48/0x1b4 __arm_lpae_map+0x124/0x274 __arm_lpae_map+0x1cc/0x274 arm_lpae_map+0x140/0x170 arm_smmu_map+0x78/0xbc __iommu_map+0xd4/0x210 _iommu_map+0x4c/0x84 iommu_map_atomic+0x44/0x58 __iommu_dma_map+0x8c/0xc4 iommu_dma_map_page+0xac/0xf0 Fixes: d8c1df0 ("iommu: Move iotlb_sync_map out from __iommu_map") Signed-off-by: Douglas Anderson <[email protected]> Reviewed-by: Yong Wu <[email protected]> Acked-by: Will Deacon <[email protected]> Link: https://lore.kernel.org/r/20210201170611.1.I64a7b62579287d668d7c89e105dcedf45d641063@changeid Signed-off-by: Joerg Roedel <[email protected]>
1 parent d1e3306 commit b8437a3

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/iommu/iommu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2441,7 +2441,7 @@ static int _iommu_map(struct iommu_domain *domain, unsigned long iova,
24412441
const struct iommu_ops *ops = domain->ops;
24422442
int ret;
24432443

2444-
ret = __iommu_map(domain, iova, paddr, size, prot, GFP_KERNEL);
2444+
ret = __iommu_map(domain, iova, paddr, size, prot, gfp);
24452445
if (ret == 0 && ops->iotlb_sync_map)
24462446
ops->iotlb_sync_map(domain, iova, size);
24472447

0 commit comments

Comments
 (0)