}
 
        lli->sdev = sdev;
-       lli->newly_created = true;
        lli->host_no = sdev->host->host_no;
        lli->in_table = false;
 
 }
 
 /**
- * refresh_local() - find and update local LUN information structure by WWID
+ * lookup_local() - find a local LUN information structure by WWID
  * @cfg:       Internal structure associated with the host.
  * @wwid:      WWID associated with LUN.
  *
- * When the LUN is found, mark it by updating it's newly_created field.
- *
  * Return: Found local lun_info structure on success, NULL on failure
- * If a LUN with the WWID is found in the list, refresh it's state.
  */
-static struct llun_info *refresh_local(struct cxlflash_cfg *cfg, u8 *wwid)
+static struct llun_info *lookup_local(struct cxlflash_cfg *cfg, u8 *wwid)
 {
        struct llun_info *lli, *temp;
 
        list_for_each_entry_safe(lli, temp, &cfg->lluns, list)
-               if (!memcmp(lli->wwid, wwid, DK_CXLFLASH_MANAGE_LUN_WWID_LEN)) {
-                       lli->newly_created = false;
+               if (!memcmp(lli->wwid, wwid, DK_CXLFLASH_MANAGE_LUN_WWID_LEN))
                        return lli;
-               }
 
        return NULL;
 }
        if (unlikely(!wwid))
                goto out;
 
-       lli = refresh_local(cfg, wwid);
+       lli = lookup_local(cfg, wwid);
        if (lli)
                goto out;
 
        mutex_lock(&global.mutex);
        lli = find_and_create_lun(sdev, manage->wwid);
        pr_debug("%s: ENTER: WWID = %016llX%016llX, flags = %016llX li = %p\n",
-                __func__, get_unaligned_le64(&manage->wwid[0]),
-                get_unaligned_le64(&manage->wwid[8]),
+                __func__, get_unaligned_be64(&manage->wwid[0]),
+                get_unaligned_be64(&manage->wwid[8]),
                 manage->hdr.flags, lli);
        if (unlikely(!lli)) {
                rc = -ENOMEM;
        }
 
        if (flags & DK_CXLFLASH_MANAGE_LUN_ENABLE_SUPERPIPE) {
-               if (lli->newly_created)
-                       lli->port_sel = CHAN2PORT(chan);
-               else
-                       lli->port_sel = BOTH_PORTS;
-               /* Store off lun in unpacked, AFU-friendly format */
+               /*
+                * Update port selection mask based upon channel, store off LUN
+                * in unpacked, AFU-friendly format, and hang LUN reference in
+                * the sdev.
+                */
+               lli->port_sel |= CHAN2PORT(chan);
                lli->lun_id[chan] = lun_to_lunid(sdev->lun);
                sdev->hostdata = lli;
        } else if (flags & DK_CXLFLASH_MANAGE_LUN_DISABLE_SUPERPIPE) {
                if (lli->parent->mode != MODE_NONE)
                        rc = -EBUSY;
-               else
+               else {
                        sdev->hostdata = NULL;
+                       lli->port_sel &= ~CHAN2PORT(chan);
+               }
        }
 
+       pr_debug("%s: port_sel = %08X chan = %u lun_id = %016llX\n", __func__,
+                lli->port_sel, chan, lli->lun_id[chan]);
+
 out:
        mutex_unlock(&global.mutex);
        pr_debug("%s: returning rc=%d\n", __func__, rc);