In the future, the init_iova_rcaches will be called in atomic. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> --- drivers/iommu/iova.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c index b7268a1..866ad65 100644 --- a/drivers/iommu/iova.c +++ b/drivers/iommu/iova.c @@ -723,7 +723,9 @@ static void init_iova_rcaches(struct iova_domain *iovad) rcache = &iovad->rcaches[i]; spin_lock_init(&rcache->lock); rcache->depot_size = 0; - rcache->cpu_rcaches = __alloc_percpu(sizeof(*cpu_rcache), cache_line_size()); + rcache->cpu_rcaches = __alloc_percpu_gfp(sizeof(*cpu_rcache), + cache_line_size(), + GFP_NOWAIT); if (WARN_ON(!rcache->cpu_rcaches)) continue; for_each_possible_cpu(cpu) { -- 1.9.1