Subject: Re: [PATCH v5 03/18] cxl: Define process problem state area at attach time only

From: Manoj Kumar <[email-masked]>
Date: Tue, 23 Feb 2016 13:09:18 -0600

Reviewed-by: Manoj Kumar <[email-masked]>

---
Manoj Kumar

On 2/23/2016 10:21 AM, Frederic Barrat wrote:
> CXL kernel API was defining the process problem state area during
> context initialization, making it possible to map the problem state
> area before attaching the context. This won't work on a powerVM
> guest. So force the logical behavior, like in userspace: attach first,
> then map the problem state area.
> Remove calls to cxl_assign_psn_space during init. The function is
> already called on the attach paths.
>
> Co-authored-by: Christophe Lombard <[email-masked]>
> Signed-off-by: Frederic Barrat <[email-masked]>
> Signed-off-by: Christophe Lombard <[email-masked]>
> ---
>   drivers/misc/cxl/api.c | 11 ++---------
>   1 file changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
> index ea3eeb7..b45d857 100644
> --- a/drivers/misc/cxl/api.c
> +++ b/drivers/misc/cxl/api.c
> @@ -51,8 +51,6 @@ struct cxl_context *cxl_dev_context_init(struct pci_dev *dev)
>   	if (rc)
>   		goto err_mapping;
>
> -	cxl_assign_psn_space(ctx);
> -
>   	return ctx;
>
>   err_mapping:
> @@ -207,7 +205,6 @@ EXPORT_SYMBOL_GPL(cxl_stop_context);
>   void cxl_set_master(struct cxl_context *ctx)
>   {
>   	ctx->master = true;
> -	cxl_assign_psn_space(ctx);
>   }
>   EXPORT_SYMBOL_GPL(cxl_set_master);
>
> @@ -325,15 +322,11 @@ EXPORT_SYMBOL_GPL(cxl_start_work);
>
>   void __iomem *cxl_psa_map(struct cxl_context *ctx)
>   {
> -	struct cxl_afu *afu = ctx->afu;
> -	int rc;
> -
> -	rc = cxl_afu_check_and_enable(afu);
> -	if (rc)
> +	if (ctx->status != STARTED)
>   		return NULL;
>
>   	pr_devel("%s: psn_phys%llx size:%llx\n",
> -		 __func__, afu->psn_phys, afu->adapter->ps_size);
> +		__func__, ctx->psn_phys, ctx->psn_size);
>   	return ioremap(ctx->psn_phys, ctx->psn_size);
>   }
>   EXPORT_SYMBOL_GPL(cxl_psa_map);
>