diff options
Diffstat (limited to 'kernel/memremap.c')
| -rw-r--r-- | kernel/memremap.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/kernel/memremap.c b/kernel/memremap.c index 6bcbfbf1a8fd..403ab9cdb949 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -350,7 +350,7 @@ void *devm_memremap_pages(struct device *dev, struct resource *res,  	pgprot_t pgprot = PAGE_KERNEL;  	struct dev_pagemap *pgmap;  	struct page_map *page_map; -	int error, nid, is_ram; +	int error, nid, is_ram, i = 0;  	align_start = res->start & ~(SECTION_SIZE - 1);  	align_size = ALIGN(res->start + resource_size(res), SECTION_SIZE) @@ -448,6 +448,8 @@ void *devm_memremap_pages(struct device *dev, struct resource *res,  		list_del(&page->lru);  		page->pgmap = pgmap;  		percpu_ref_get(ref); +		if (!(++i % 1024)) +			cond_resched();  	}  	devres_add(dev, page_map);  	return __va(res->start); |