diff options
Diffstat (limited to 'drivers/base/arch_topology.c')
| -rw-r--r-- | drivers/base/arch_topology.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index b1c1dd38ab01..b741b5ba82bd 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -835,18 +835,19 @@ void __init init_cpu_topology(void)  	if (ret) {  		/*  		 * Discard anything that was parsed if we hit an error so we -		 * don't use partial information. +		 * don't use partial information. But do not return yet to give +		 * arch-specific early cache level detection a chance to run.  		 */  		reset_cpu_topology(); -		return;  	}  	for_each_possible_cpu(cpu) {  		ret = fetch_cache_info(cpu); -		if (ret) { +		if (!ret) +			continue; +		else if (ret != -ENOENT)  			pr_err("Early cacheinfo failed, ret = %d\n", ret); -			break; -		} +		return;  	}  }  |