cxl: Introduce implementation-specific API
The backend API (in cxl.h) lists some low-level functions whose implementation is different on bare-metal and in a guest. Each environment implements its own functions, and the common code uses them through function pointers, defined in cxl_backend_ops Co-authored-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Signed-off-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Reviewed-by: Manoj Kumar <manoj@linux.vnet.ibm.com> Acked-by: Ian Munsie <imunsie@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
cca44c0192
commit
5be587b111
@@ -100,7 +100,7 @@ EXPORT_SYMBOL_GPL(cxl_allocate_afu_irqs);
|
||||
void cxl_free_afu_irqs(struct cxl_context *ctx)
|
||||
{
|
||||
afu_irq_name_free(ctx);
|
||||
cxl_release_irq_ranges(&ctx->irqs, ctx->afu->adapter);
|
||||
cxl_ops->release_irq_ranges(&ctx->irqs, ctx->afu->adapter);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cxl_free_afu_irqs);
|
||||
|
||||
@@ -176,7 +176,7 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed,
|
||||
|
||||
cxl_ctx_get();
|
||||
|
||||
if ((rc = cxl_attach_process(ctx, kernel, wed , 0))) {
|
||||
if ((rc = cxl_ops->attach_process(ctx, kernel, wed, 0))) {
|
||||
put_pid(ctx->pid);
|
||||
cxl_ctx_put();
|
||||
goto out;
|
||||
@@ -342,11 +342,11 @@ int cxl_afu_reset(struct cxl_context *ctx)
|
||||
struct cxl_afu *afu = ctx->afu;
|
||||
int rc;
|
||||
|
||||
rc = __cxl_afu_reset(afu);
|
||||
rc = cxl_ops->afu_reset(afu);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
return cxl_afu_check_and_enable(afu);
|
||||
return cxl_ops->afu_check_and_enable(afu);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cxl_afu_reset);
|
||||
|
||||
|
Reference in New Issue
Block a user