scsi: cxlflash: Refactor WWPN setup
authorMatthew R. Ochs <mrochs@linux.vnet.ibm.com>
Fri, 2 Sep 2016 20:40:20 +0000 (15:40 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 14 Sep 2016 16:47:03 +0000 (12:47 -0400)
Commit 964497b3bf3f ("cxlflash: Remove dual port online dependency")
logically removed the ability for the WWPN setup routine afu_set_wwpn()
to return a non-success value. This routine can safely be made a void to
simplify the code as there is no longer a need to report a failure.

Signed-off-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Acked-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/cxlflash/main.c

index 42970a4..b301655 100644 (file)
@@ -1093,42 +1093,25 @@ static int wait_port_offline(__be64 __iomem *fc_regs, u32 delay_us, u32 nretry)
  * online. This toggling action can cause this routine to delay up to a few
  * seconds. When configured to use the internal LUN feature of the AFU, a
  * failure to come online is overridden.
- *
- * Return:
- *     0 when the WWPN is successfully written and the port comes back online
- *     -1 when the port fails to go offline or come back up online
  */
-static int afu_set_wwpn(struct afu *afu, int port, __be64 __iomem *fc_regs,
-                       u64 wwpn)
+static void afu_set_wwpn(struct afu *afu, int port, __be64 __iomem *fc_regs,
+                        u64 wwpn)
 {
-       int rc = 0;
-
        set_port_offline(fc_regs);
-
        if (!wait_port_offline(fc_regs, FC_PORT_STATUS_RETRY_INTERVAL_US,
                               FC_PORT_STATUS_RETRY_CNT)) {
                pr_debug("%s: wait on port %d to go offline timed out\n",
                         __func__, port);
-               rc = -1; /* but continue on to leave the port back online */
        }
 
-       if (rc == 0)
-               writeq_be(wwpn, &fc_regs[FC_PNAME / 8]);
-
-       /* Always return success after programming WWPN */
-       rc = 0;
+       writeq_be(wwpn, &fc_regs[FC_PNAME / 8]);
 
        set_port_online(fc_regs);
-
        if (!wait_port_online(fc_regs, FC_PORT_STATUS_RETRY_INTERVAL_US,
                              FC_PORT_STATUS_RETRY_CNT)) {
-               pr_err("%s: wait on port %d to go online timed out\n",
-                      __func__, port);
+               pr_debug("%s: wait on port %d to go online timed out\n",
+                        __func__, port);
        }
-
-       pr_debug("%s: returning rc=%d\n", __func__, rc);
-
-       return rc;
 }
 
 /**
@@ -1629,15 +1612,10 @@ static int init_global(struct cxlflash_cfg *cfg)
                          [FC_CRC_THRESH / 8]);
 
                /* Set WWPNs. If already programmed, wwpn[i] is 0 */
-               if (wwpn[i] != 0 &&
-                   afu_set_wwpn(afu, i,
-                                &afu->afu_map->global.fc_regs[i][0],
-                                wwpn[i])) {
-                       dev_err(dev, "%s: failed to set WWPN on port %d\n",
-                              __func__, i);
-                       rc = -EIO;
-                       goto out;
-               }
+               if (wwpn[i] != 0)
+                       afu_set_wwpn(afu, i,
+                                    &afu->afu_map->global.fc_regs[i][0],
+                                    wwpn[i]);
                /* Programming WWPN back to back causes additional
                 * offline/online transitions and a PLOGI
                 */