scsi: cxlflash: Support AFU reset
authorUma Krishnan <ukrishn@linux.vnet.ibm.com>
Mon, 26 Mar 2018 16:35:15 +0000 (11:35 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 18 Apr 2018 23:32:50 +0000 (19:32 -0400)
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>
drivers/scsi/cxlflash/ocxl_hw.c

index 5b5565d6572e8f3aa4e96357829055dc80a64e42..0a95b5f253807888a8fa680397e5e344236d81d6 100644 (file)
@@ -467,6 +467,22 @@ out:
        return rc;
 }
 
+/**
+ * ocxlflash_afu_reset() - reset the AFU
+ * @ctx_cookie:        Adapter context.
+ */
+static int ocxlflash_afu_reset(void *ctx_cookie)
+{
+       struct ocxlflash_context *ctx = ctx_cookie;
+       struct device *dev = ctx->hw_afu->dev;
+
+       /* Pending implementation from OCXL transport services */
+       dev_err_once(dev, "%s: afu_reset() fop not supported\n", __func__);
+
+       /* Silently return success until it is implemented */
+       return 0;
+}
+
 /**
  * ocxlflash_set_master() - sets the context as master
  * @ctx_cookie:        Adapter context to set as master.
@@ -1401,6 +1417,7 @@ const struct cxlflash_backend_ops cxlflash_ocxl_ops = {
        .get_irq_objhndl        = ocxlflash_get_irq_objhndl,
        .start_context          = ocxlflash_start_context,
        .stop_context           = ocxlflash_stop_context,
+       .afu_reset              = ocxlflash_afu_reset,
        .set_master             = ocxlflash_set_master,
        .get_context            = ocxlflash_get_context,
        .dev_context_init       = ocxlflash_dev_context_init,