scsi: cxlflash: Setup OCXL transaction layer
authorUma Krishnan <ukrishn@linux.vnet.ibm.com>
Mon, 26 Mar 2018 16:33:28 +0000 (11:33 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 18 Apr 2018 23:32:49 +0000 (19:32 -0400)
The first function of the link needs to configure the transaction layer
between the host and device. This is accomplished by a call to the OCXL
provider services.

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 67517f8..db612bd 100644 (file)
@@ -422,8 +422,18 @@ static int ocxlflash_config_fn(struct pci_dev *pdev, struct ocxl_hw_afu *afu)
                        __func__, rc);
                goto out;
        }
+
+       rc = ocxl_config_set_TL(pdev, fcfg->dvsec_tl_pos);
+       if (unlikely(rc)) {
+               dev_err(dev, "%s: ocxl_config_set_TL failed rc=%d\n",
+                       __func__, rc);
+               goto err;
+       }
 out:
        return rc;
+err:
+       ocxl_link_release(pdev, afu->link_token);
+       goto out;
 }
 
 /**