aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/cxlflash
diff options
context:
space:
mode:
authorUma Krishnan <ukrishn@linux.vnet.ibm.com>2018-03-26 12:35:15 -0400
committerMartin K. Petersen <martin.petersen@oracle.com>2018-04-18 19:32:50 -0400
commit9433fb32b7c57c0e1cee49025a720b38b449e68c (patch)
tree6ca1ccbe3aaada2f05b87fbc746391fd8b757695 /drivers/scsi/cxlflash
parent66ae644b922abcbf6d3303a4e69f658b02165b31 (diff)
scsi: cxlflash: Support AFU reset
The cxlflash core driver resets the AFU when the master contexts are created in the initialization or recovery paths. Today, the OCXL provider service to perform this operation is pending implementation. To avoid a crash due to a missing fop, log an error once and return success to continue with execution. Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com> Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/cxlflash')
-rw-r--r--drivers/scsi/cxlflash/ocxl_hw.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/scsi/cxlflash/ocxl_hw.c b/drivers/scsi/cxlflash/ocxl_hw.c
index 5b5565d6572e..0a95b5f25380 100644
--- a/drivers/scsi/cxlflash/ocxl_hw.c
+++ b/drivers/scsi/cxlflash/ocxl_hw.c
@@ -468,6 +468,22 @@ out:
468} 468}
469 469
470/** 470/**
471 * ocxlflash_afu_reset() - reset the AFU
472 * @ctx_cookie: Adapter context.
473 */
474static int ocxlflash_afu_reset(void *ctx_cookie)
475{
476 struct ocxlflash_context *ctx = ctx_cookie;
477 struct device *dev = ctx->hw_afu->dev;
478
479 /* Pending implementation from OCXL transport services */
480 dev_err_once(dev, "%s: afu_reset() fop not supported\n", __func__);
481
482 /* Silently return success until it is implemented */
483 return 0;
484}
485
486/**
471 * ocxlflash_set_master() - sets the context as master 487 * ocxlflash_set_master() - sets the context as master
472 * @ctx_cookie: Adapter context to set as master. 488 * @ctx_cookie: Adapter context to set as master.
473 */ 489 */
@@ -1401,6 +1417,7 @@ const struct cxlflash_backend_ops cxlflash_ocxl_ops = {
1401 .get_irq_objhndl = ocxlflash_get_irq_objhndl, 1417 .get_irq_objhndl = ocxlflash_get_irq_objhndl,
1402 .start_context = ocxlflash_start_context, 1418 .start_context = ocxlflash_start_context,
1403 .stop_context = ocxlflash_stop_context, 1419 .stop_context = ocxlflash_stop_context,
1420 .afu_reset = ocxlflash_afu_reset,
1404 .set_master = ocxlflash_set_master, 1421 .set_master = ocxlflash_set_master,
1405 .get_context = ocxlflash_get_context, 1422 .get_context = ocxlflash_get_context,
1406 .dev_context_init = ocxlflash_dev_context_init, 1423 .dev_context_init = ocxlflash_dev_context_init,