diff options
Diffstat (limited to 'drivers/misc/cxl/main.c')
| -rw-r--r-- | drivers/misc/cxl/main.c | 17 | 
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/misc/cxl/main.c b/drivers/misc/cxl/main.c index 1703655072b1..c1ba0d42cbc8 100644 --- a/drivers/misc/cxl/main.c +++ b/drivers/misc/cxl/main.c @@ -329,8 +329,15 @@ static int __init init_cxl(void)  	cxl_debugfs_init(); -	if ((rc = register_cxl_calls(&cxl_calls))) -		goto err; +	/* +	 * we don't register the callback on P9. slb callack is only +	 * used for the PSL8 MMU and CX4. +	 */ +	if (cxl_is_power8()) { +		rc = register_cxl_calls(&cxl_calls); +		if (rc) +			goto err; +	}  	if (cpu_has_feature(CPU_FTR_HVMODE)) {  		cxl_ops = &cxl_native_ops; @@ -347,7 +354,8 @@ static int __init init_cxl(void)  	return 0;  err1: -	unregister_cxl_calls(&cxl_calls); +	if (cxl_is_power8()) +		unregister_cxl_calls(&cxl_calls);  err:  	cxl_debugfs_exit();  	cxl_file_exit(); @@ -366,7 +374,8 @@ static void exit_cxl(void)  	cxl_debugfs_exit();  	cxl_file_exit(); -	unregister_cxl_calls(&cxl_calls); +	if (cxl_is_power8()) +		unregister_cxl_calls(&cxl_calls);  	idr_destroy(&cxl_adapter_idr);  }  |