Commit 1dd5afe8 authored by Yanling Song's avatar Yanling Song Committed by Zheng Zengkai
Browse files

scsi: spfc: Remove redundant mask and spinlock

Ramaxel inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4UA67


CVE: NA

----------------------------------------------

Fix:
1.Remove UNF_ORIGIN_HOTTAG_MASK and UNF_HOTTAG_FLAG
2.Update some output string
3.Remove spinlock protect in free_parent_sq() because there is
  spinlock protect in caller function free_parent_queue_info()

Signed-off-by: default avatarYanling Song <songyl@ramaxel.com>
Reviewed-by: default avatarYun Xu <xuyun@ramaxel.com>
Acked-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent f2255a08
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -12,8 +12,6 @@
#define SPFC_DRV_DESC "Ramaxel Memory Technology Fibre Channel Driver"

#define UNF_MAX_SECTORS 0xffff
#define UNF_ORIGIN_HOTTAG_MASK 0x7fff
#define UNF_HOTTAG_FLAG (1 << 15)
#define UNF_PKG_FREE_OXID 0x0
#define UNF_PKG_FREE_RXID 0x1

+1 −2
Original line number Diff line number Diff line
@@ -890,8 +890,7 @@ static int unf_send_fcpcmnd(struct unf_lport *lport, struct unf_rport *rport,
	    unf_xchg->private_data[PKG_PRIVATE_XCHG_ALLOC_TIME];
	pkg.private_data[PKG_PRIVATE_XCHG_VP_INDEX] = unf_lport->vp_index;
	pkg.private_data[PKG_PRIVATE_XCHG_RPORT_INDEX] = unf_rport->rport_index;
	pkg.private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] =
	    unf_xchg->hotpooltag | UNF_HOTTAG_FLAG;
	pkg.private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = unf_xchg->hotpooltag;

	unf_select_sq(unf_xchg, &pkg);
	pkg.fcp_cmnd = &unf_xchg->fcp_cmnd;
+1 −1
Original line number Diff line number Diff line
@@ -763,7 +763,7 @@ int unf_send_scsi_mgmt_cmnd(struct unf_xchg *xchg, struct unf_lport *lport,
	pkg.xchg_contex = unf_xchg;
	pkg.private_data[PKG_PRIVATE_XCHG_RPORT_INDEX] = rport->rport_index;
	pkg.fcp_cmnd = &unf_xchg->fcp_cmnd;
	pkg.private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = unf_xchg->hotpooltag | UNF_HOTTAG_FLAG;
	pkg.private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = unf_xchg->hotpooltag;
	pkg.frame_head.csctl_sid = lport->nport_id;
	pkg.frame_head.rctl_did = rport->nport_id;

+1 −1
Original line number Diff line number Diff line
@@ -352,7 +352,7 @@ struct unf_rport *unf_find_valid_rport(struct unf_lport *lport, u64 wwpn, u32 si
			spin_unlock_irqrestore(rport_state_lock, flags);

			FC_DRV_PRINT(UNF_LOG_LOGIN_ATT, UNF_INFO,
				     "[err]Port(0x%x) RPort(0x%p) find by WWPN(0x%llx) is invalid",
				     "[info]Port(0x%x) RPort(0x%p) find by WWPN(0x%llx) is invalid",
				     lport->port_id, rport_by_wwpn, wwpn);

			rport_by_wwpn = NULL;
+5 −14
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ void unf_fill_package(struct unf_frame_pkg *pkg, struct unf_xchg *xchg,
		pkg->private_data[PKG_PRIVATE_RPORT_RX_SIZE] = rport->max_frame_size;
	}

	pkg->private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = xchg->hotpooltag | UNF_HOTTAG_FLAG;
	pkg->private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = xchg->hotpooltag;
	pkg->private_data[PKG_PRIVATE_XCHG_ALLOC_TIME] =
	    xchg->private_data[PKG_PRIVATE_XCHG_ALLOC_TIME];
	pkg->private_data[PKG_PRIVATE_LOWLEVEL_XCHG_ADD] =
@@ -250,7 +250,7 @@ u32 unf_send_abts(struct unf_lport *lport, struct unf_xchg *xchg)
	pkg.unf_cmnd_pload_bl.buffer_ptr = (u8 *)xchg->fcp_sfs_union.sfs_entry.fc_sfs_entry_ptr;

	pkg.unf_cmnd_pload_bl.buf_dma_addr = xchg->fcp_sfs_union.sfs_entry.sfs_buff_phy_addr;
	pkg.private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = xchg->hotpooltag | UNF_HOTTAG_FLAG;
	pkg.private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = xchg->hotpooltag;

	UNF_SET_XCHG_ALLOC_TIME(&pkg, xchg);
	UNF_SET_ABORT_INFO_IOTYPE(&pkg, xchg);
@@ -407,19 +407,10 @@ static u32 unf_els_cmnd_default_handler(struct unf_lport *lport, struct unf_xchg
	rjt_info.reason_code = UNF_LS_RJT_NOT_SUPPORTED;

	unf_rport = unf_get_rport_by_nport_id(lport, sid);
	if (unf_rport) {
		if (unf_rport->rport_index !=
		    xchg->private_data[PKG_PRIVATE_XCHG_RPORT_INDEX]) {
			FC_DRV_PRINT(UNF_LOG_LOGIN_ATT, UNF_WARN,
				     "[warn]Port(0x%x_0x%x) NPort handle(0x%x) from low level is not equal to RPort index(0x%x)",
				     lport->port_id, lport->nport_id,
				     xchg->private_data[PKG_PRIVATE_XCHG_RPORT_INDEX],
				     unf_rport->rport_index);
		}
	if (unf_rport)
		ret = unf_send_els_rjt_by_rport(lport, xchg, unf_rport, &rjt_info);
	} else {
	else
		ret = unf_send_els_rjt_by_did(lport, xchg, sid, &rjt_info);
	}

	return ret;
}
@@ -1389,7 +1380,7 @@ static void unf_fill_free_xid_pkg(struct unf_xchg *xchg, struct unf_frame_pkg *p
	pkg->frame_head.csctl_sid = xchg->sid;
	pkg->frame_head.rctl_did = xchg->did;
	pkg->frame_head.oxid_rxid = (u32)(((u32)xchg->oxid << UNF_SHIFT_16) | xchg->rxid);
	pkg->private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = xchg->hotpooltag | UNF_HOTTAG_FLAG;
	pkg->private_data[PKG_PRIVATE_XCHG_HOT_POOL_INDEX] = xchg->hotpooltag;
	UNF_SET_XCHG_ALLOC_TIME(pkg, xchg);

	if (xchg->xchg_type == UNF_XCHG_TYPE_SFS) {
Loading