mm/cma.c: warn if the CMA area could not be activated
While activating a CMA area we check to make sure that all the PFNs in the range are inside the same zone. This is a requirement for alloc_contig_range() to work. Any CMA area failing the check is disabled for good. This happens silently right now making all future cma_alloc() allocations failure inevitable. Here we add an error message stating that the CMA area could not be activated which makes it easier to explain any future cma_alloc() failures on it. While in there, change the bail out goto label from 'err' to 'not_in_zone' which makes more sense. Link: http://lkml.kernel.org/r/20170605023729.26303-1-khandual@linux.vnet.ibm.com Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									78c72746f5
								
							
						
					
					
						commit
						e35ef6397b
					
				
							
								
								
									
										5
									
								
								mm/cma.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								mm/cma.c
									
									
									
									
									
								
							| @ -127,7 +127,7 @@ static int __init cma_activate_area(struct cma *cma) | ||||
| 			 * to be in the same zone. | ||||
| 			 */ | ||||
| 			if (page_zone(pfn_to_page(pfn)) != zone) | ||||
| 				goto err; | ||||
| 				goto not_in_zone; | ||||
| 		} | ||||
| 		init_cma_reserved_pageblock(pfn_to_page(base_pfn)); | ||||
| 	} while (--i); | ||||
| @ -141,7 +141,8 @@ static int __init cma_activate_area(struct cma *cma) | ||||
| 
 | ||||
| 	return 0; | ||||
| 
 | ||||
| err: | ||||
| not_in_zone: | ||||
| 	pr_err("CMA area %s could not be activated\n", cma->name); | ||||
| 	kfree(cma->bitmap); | ||||
| 	cma->count = 0; | ||||
| 	return -EINVAL; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user