diff options
Diffstat (limited to 'arch/s390/kernel/cache.c')
| -rw-r--r-- | arch/s390/kernel/cache.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/s390/kernel/cache.c b/arch/s390/kernel/cache.c index dd62071624b..c0b03c28d15 100644 --- a/arch/s390/kernel/cache.c +++ b/arch/s390/kernel/cache.c @@ -146,15 +146,14 @@ static void __init cache_build_info(void)  	ct.raw = ecag(EXTRACT_TOPOLOGY, 0, 0);  	for (level = 0; level < CACHE_MAX_LEVEL; level++) {  		switch (ct.ci[level].scope) { -		case CACHE_SCOPE_NOTEXISTS: -		case CACHE_SCOPE_RESERVED: -			return;  		case CACHE_SCOPE_SHARED:  			private = 0;  			break;  		case CACHE_SCOPE_PRIVATE:  			private = 1;  			break; +		default: +			return;  		}  		if (ct.ci[level].type == CACHE_TYPE_SEPARATE) {  			rc  = cache_add(level, private, CACHE_TYPE_DATA); @@ -379,9 +378,12 @@ static int __init cache_init(void)  	if (!test_facility(34))  		return 0;  	cache_build_info(); + +	cpu_notifier_register_begin();  	for_each_online_cpu(cpu)  		cache_add_cpu(cpu); -	hotcpu_notifier(cache_hotplug, 0); +	__hotcpu_notifier(cache_hotplug, 0); +	cpu_notifier_register_done();  	return 0;  }  device_initcall(cache_init);  | 
