[POWERPC] dont allow pSeries_probe to succeed without initialising MMU
pSeries_probe can decide that we are a pseries but then fail to initialise the MMU. If an rtas node doesnt exist, we continually fall out of pSeries_probe_hypertas early and never get to the MMU init code. While pseries without RTAS is an illegal combination, the way we currently fail is a pain to track down, and can happen if your flattened device tree code has issues (like mine did :). With the following patch we init the MMU, come up and print some warnings about RTAS not existing, instead of looping on 0x400 exceptions. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
		
					parent
					
						
							
								5773bbcdec
							
						
					
				
			
			
				commit
				
					
						a223535425
					
				
			
		
					 1 changed files with 5 additions and 5 deletions
				
			
		|  | @ -422,11 +422,6 @@ static int __init pSeries_probe_hypertas(unsigned long node, | ||||||
| 	if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL) != NULL) | 	if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL) != NULL) | ||||||
|  		powerpc_firmware_features |= FW_FEATURE_LPAR; |  		powerpc_firmware_features |= FW_FEATURE_LPAR; | ||||||
| 
 | 
 | ||||||
| 	if (firmware_has_feature(FW_FEATURE_LPAR)) |  | ||||||
| 		hpte_init_lpar(); |  | ||||||
| 	else |  | ||||||
| 		hpte_init_native(); |  | ||||||
| 
 |  | ||||||
|  	return 1; |  	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -452,6 +447,11 @@ static int __init pSeries_probe(void) | ||||||
| 	/* Now try to figure out if we are running on LPAR */ | 	/* Now try to figure out if we are running on LPAR */ | ||||||
| 	of_scan_flat_dt(pSeries_probe_hypertas, NULL); | 	of_scan_flat_dt(pSeries_probe_hypertas, NULL); | ||||||
| 
 | 
 | ||||||
|  | 	if (firmware_has_feature(FW_FEATURE_LPAR)) | ||||||
|  | 		hpte_init_lpar(); | ||||||
|  | 	else | ||||||
|  | 		hpte_init_native(); | ||||||
|  | 
 | ||||||
| 	DBG("Machine is%s LPAR !\n", | 	DBG("Machine is%s LPAR !\n", | ||||||
| 	    (powerpc_firmware_features & FW_FEATURE_LPAR) ? "" : " not"); | 	    (powerpc_firmware_features & FW_FEATURE_LPAR) ? "" : " not"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Anton Blanchard
				Anton Blanchard