> On Oct 21, 2021, at 2:32 AM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote: > > From: Quinn Tran <qutran@xxxxxxxxxxx> > > db_flags field is a bit field. Replace value check with bit flag check. > > Signed-off-by: Quinn Tran <qutran@xxxxxxxxxxx> > Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx> > --- > drivers/scsi/qla2xxx/qla_edif.c | 26 +++++++++++++------------- > drivers/scsi/qla2xxx/qla_edif.h | 7 +++++-- > drivers/scsi/qla2xxx/qla_init.c | 13 ++++++------- > drivers/scsi/qla2xxx/qla_iocb.c | 3 +-- > drivers/scsi/qla2xxx/qla_target.c | 2 +- > 5 files changed, 26 insertions(+), 25 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c > index 1ea130c61d70..440a3caa28f9 100644 > --- a/drivers/scsi/qla2xxx/qla_edif.c > +++ b/drivers/scsi/qla2xxx/qla_edif.c > @@ -218,7 +218,7 @@ fc_port_t *fcport) > "%s edif not enabled\n", __func__); > goto done; > } > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > ql_dbg(ql_dbg_edif, vha, 0x09102, > "%s doorbell not enabled\n", __func__); > goto done; > @@ -482,9 +482,9 @@ qla_edif_app_start(scsi_qla_host_t *vha, struct bsg_job *bsg_job) > ql_dbg(ql_dbg_edif, vha, 0x911d, "%s app_vid=%x app_start_flags %x\n", > __func__, appstart.app_info.app_vid, appstart.app_start_flags); > > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > /* mark doorbell as active since an app is now present */ > - vha->e_dbell.db_flags = EDB_ACTIVE; > + vha->e_dbell.db_flags |= EDB_ACTIVE; > } else { > ql_dbg(ql_dbg_edif, vha, 0x911e, "%s doorbell already active\n", > __func__); > @@ -1274,7 +1274,7 @@ qla24xx_sadb_update(struct bsg_job *bsg_job) > goto done; > } > > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > ql_log(ql_log_warn, vha, 0x70a1, "App not started\n"); > rval = -EIO; > SET_DID_STATUS(bsg_reply->result, DID_ERROR); > @@ -1778,7 +1778,7 @@ qla_els_reject_iocb(scsi_qla_host_t *vha, struct qla_qpair *qp, > void > qla_edb_init(scsi_qla_host_t *vha) > { > - if (vha->e_dbell.db_flags == EDB_ACTIVE) { > + if (DBELL_ACTIVE(vha)) { > /* list already init'd - error */ > ql_dbg(ql_dbg_edif, vha, 0x09102, > "edif db already initialized, cannot reinit\n"); > @@ -1821,7 +1821,7 @@ static void qla_edb_clear(scsi_qla_host_t *vha, port_id_t portid) > port_id_t sid; > LIST_HEAD(edb_list); > > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > /* doorbell list not enabled */ > ql_dbg(ql_dbg_edif, vha, 0x09102, > "%s doorbell not enabled\n", __func__); > @@ -1875,7 +1875,7 @@ qla_edb_stop(scsi_qla_host_t *vha) > unsigned long flags; > struct edb_node *node, *q; > > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > /* doorbell list not enabled */ > ql_dbg(ql_dbg_edif, vha, 0x09102, > "%s doorbell not enabled\n", __func__); > @@ -1926,7 +1926,7 @@ qla_edb_node_add(scsi_qla_host_t *vha, struct edb_node *ptr) > { > unsigned long flags; > > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > /* doorbell list not enabled */ > ql_dbg(ql_dbg_edif, vha, 0x09102, > "%s doorbell not enabled\n", __func__); > @@ -1957,7 +1957,7 @@ qla_edb_eventcreate(scsi_qla_host_t *vha, uint32_t dbtype, > return; > } > > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > if (fcport) > fcport->edif.auth_state = dbtype; > /* doorbell list not enabled */ > @@ -2052,7 +2052,7 @@ qla_edif_timer(scsi_qla_host_t *vha) > struct qla_hw_data *ha = vha->hw; > > if (!vha->vp_idx && N2N_TOPO(ha) && ha->flags.n2n_fw_acc_sec) { > - if (vha->e_dbell.db_flags != EDB_ACTIVE && > + if (DBELL_INACTIVE(vha) && > ha->edif_post_stop_cnt_down) { > ha->edif_post_stop_cnt_down--; > > @@ -2090,7 +2090,7 @@ edif_doorbell_show(struct device *dev, struct device_attribute *attr, > sz = 256; > > /* stop new threads from waiting if we're not init'd */ > - if (vha->e_dbell.db_flags != EDB_ACTIVE) { > + if (DBELL_INACTIVE(vha)) { > ql_dbg(ql_dbg_edif + ql_dbg_verbose, vha, 0x09122, > "%s error - edif db not enabled\n", __func__); > return 0; > @@ -2438,7 +2438,7 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp) > > fcport = qla2x00_find_fcport_by_pid(host, &purex->pur_info.pur_sid); > > - if (host->e_dbell.db_flags != EDB_ACTIVE || > + if (DBELL_INACTIVE(vha) || > (fcport && EDIF_SESSION_DOWN(fcport))) { > ql_dbg(ql_dbg_edif, host, 0x0910c, "%s e_dbell.db_flags =%x %06x\n", > __func__, host->e_dbell.db_flags, > @@ -3464,7 +3464,7 @@ int qla_edif_process_els(scsi_qla_host_t *vha, struct bsg_job *bsg_job) > > void qla_edif_sess_down(struct scsi_qla_host *vha, struct fc_port *sess) > { > - if (sess->edif.app_sess_online && vha->e_dbell.db_flags & EDB_ACTIVE) { > + if (sess->edif.app_sess_online && DBELL_ACTIVE(vha)) { > ql_dbg(ql_dbg_disc, vha, 0xf09c, > "%s: sess %8phN send port_offline event\n", > __func__, sess->port_name); > diff --git a/drivers/scsi/qla2xxx/qla_edif.h b/drivers/scsi/qla2xxx/qla_edif.h > index 2517005fb08c..a965ca8e47ce 100644 > --- a/drivers/scsi/qla2xxx/qla_edif.h > +++ b/drivers/scsi/qla2xxx/qla_edif.h > @@ -41,9 +41,12 @@ struct pur_core { > }; > > enum db_flags_t { > - EDB_ACTIVE = 0x1, > + EDB_ACTIVE = BIT_0, > }; > > +#define DBELL_ACTIVE(_v) (_v->e_dbell.db_flags & EDB_ACTIVE) > +#define DBELL_INACTIVE(_v) (!(_v->e_dbell.db_flags & EDB_ACTIVE)) > + > struct edif_dbell { > enum db_flags_t db_flags; > spinlock_t db_lock; > @@ -134,7 +137,7 @@ struct enode { > !_s->edif.app_sess_online)) > > #define EDIF_NEGOTIATION_PENDING(_fcport) \ > - ((_fcport->vha.e_dbell.db_flags & EDB_ACTIVE) && \ > + (DBELL_ACTIVE(_fcport->vha) && \ > (_fcport->disc_state == DSC_LOGIN_AUTH_PEND)) > > #endif /* __QLA_EDIF_H */ > diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c > index 2bc5593645ec..c0b813fc1ec4 100644 > --- a/drivers/scsi/qla2xxx/qla_init.c > +++ b/drivers/scsi/qla2xxx/qla_init.c > @@ -330,7 +330,7 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, > lio->u.logio.flags |= SRB_LOGIN_PRLI_ONLY; > } else { > if (vha->hw->flags.edif_enabled && > - vha->e_dbell.db_flags & EDB_ACTIVE) { > + DBELL_ACTIVE(vha)) { > lio->u.logio.flags |= > (SRB_LOGIN_FCSP | SRB_LOGIN_SKIP_PRLI); > } else { > @@ -861,7 +861,7 @@ static void qla24xx_handle_gnl_done_event(scsi_qla_host_t *vha, > break; > case DSC_LS_PLOGI_COMP: > if (vha->hw->flags.edif_enabled && > - vha->e_dbell.db_flags & EDB_ACTIVE) { > + DBELL_ACTIVE(vha)) { > /* check to see if App support secure or not */ > qla24xx_post_gpdb_work(vha, fcport, 0); > break; > @@ -1451,7 +1451,7 @@ static int qla_chk_secure_login(scsi_qla_host_t *vha, fc_port_t *fcport, > qla2x00_post_aen_work(vha, FCH_EVT_PORT_ONLINE, > fcport->d_id.b24); > > - if (vha->e_dbell.db_flags == EDB_ACTIVE) { > + if (DBELL_ACTIVE(vha)) { > ql_dbg(ql_dbg_disc, vha, 0x20ef, > "%s %d %8phC EDIF: post DB_AUTH: AUTH needed\n", > __func__, __LINE__, fcport->port_name); > @@ -1794,7 +1794,7 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea) > return; > } > > - if (vha->hw->flags.edif_enabled && vha->e_dbell.db_flags & EDB_ACTIVE) { > + if (vha->hw->flags.edif_enabled && DBELL_ACTIVE(vha)) { > /* > * On ipsec start by remote port, Target port > * may use RSCN to trigger initiator to > @@ -4240,7 +4240,7 @@ qla24xx_update_fw_options(scsi_qla_host_t *vha) > * fw shal not send PRLI after PLOGI Acc > */ > if (ha->flags.edif_enabled && > - vha->e_dbell.db_flags & EDB_ACTIVE) { > + DBELL_ACTIVE(vha)) { > ha->fw_options[3] |= BIT_15; > ha->flags.n2n_fw_acc_sec = 1; > } else { > @@ -5396,8 +5396,7 @@ qla2x00_configure_loop(scsi_qla_host_t *vha) > * use link up to wake up app to get ready for > * authentication. > */ > - if (ha->flags.edif_enabled && > - !(vha->e_dbell.db_flags & EDB_ACTIVE)) > + if (ha->flags.edif_enabled && DBELL_INACTIVE(vha)) > qla2x00_post_aen_work(vha, FCH_EVT_LINKUP, > ha->link_data_rate); > > diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c > index 9d4ad1d2b00a..ed604f2185bf 100644 > --- a/drivers/scsi/qla2xxx/qla_iocb.c > +++ b/drivers/scsi/qla2xxx/qla_iocb.c > @@ -3034,8 +3034,7 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode, > elsio->u.els_plogi.els_cmd = els_opcode; > elsio->u.els_plogi.els_plogi_pyld->opcode = els_opcode; > > - if (els_opcode == ELS_DCMD_PLOGI && vha->hw->flags.edif_enabled && > - vha->e_dbell.db_flags & EDB_ACTIVE) { > + if (els_opcode == ELS_DCMD_PLOGI && DBELL_ACTIVE(vha)) { > struct fc_els_flogi *p = ptr; > > p->fl_csp.sp_features |= cpu_to_be16(FC_SP_FT_SEC); > diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c > index edc34e69d75b..031233729ff4 100644 > --- a/drivers/scsi/qla2xxx/qla_target.c > +++ b/drivers/scsi/qla2xxx/qla_target.c > @@ -4817,7 +4817,7 @@ static int qlt_handle_login(struct scsi_qla_host *vha, > } > > if (vha->hw->flags.edif_enabled) { > - if (!(vha->e_dbell.db_flags & EDB_ACTIVE)) { > + if (DBELL_INACTIVE(vha)) { > ql_dbg(ql_dbg_disc, vha, 0xffff, > "%s %d Term INOT due to app not started lid=%d, NportID %06X ", > __func__, __LINE__, loop_id, port_id.b24); > -- > 2.19.0.rc0 > Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> -- Himanshu Madhani Oracle Linux Engineering