]> git.baikalelectronics.ru Git - kernel.git/commitdiff
scsi: qla2xxx: edif: Remove old doorbell interface
authorQuinn Tran <qutran@marvell.com>
Tue, 7 Jun 2022 04:46:24 +0000 (21:46 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 8 Jun 2022 01:50:10 +0000 (21:50 -0400)
Recently driver has implemented a new doorbell mechanism via bsg.  The new
doorbell tells driver the exact buffer size application has where driver
can fill it up with events. The old doorbell guestimated application buffer
size is 256.

Remove duplicate functionality, the application has moved on to the new
doorbell interface.

Link: https://lore.kernel.org/r/20220607044627.19563-9-njavali@marvell.com
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_attr.c
drivers/scsi/qla2xxx/qla_edif.c
drivers/scsi/qla2xxx/qla_gbl.h

index 3b3e4234f37a0f0a40721a2e851172e7ed624932..8b87fefda42304c288f54c6095e35e230d879b11 100644 (file)
@@ -2476,7 +2476,6 @@ static DEVICE_ATTR(port_speed, 0644, qla2x00_port_speed_show,
     qla2x00_port_speed_store);
 static DEVICE_ATTR(port_no, 0444, qla2x00_port_no_show, NULL);
 static DEVICE_ATTR(fw_attr, 0444, qla2x00_fw_attr_show, NULL);
-static DEVICE_ATTR_RO(edif_doorbell);
 
 static struct attribute *qla2x00_host_attrs[] = {
        &dev_attr_driver_version.attr,
@@ -2521,7 +2520,6 @@ static struct attribute *qla2x00_host_attrs[] = {
        &dev_attr_port_no.attr,
        &dev_attr_fw_attr.attr,
        &dev_attr_dport_diagnostics.attr,
-       &dev_attr_edif_doorbell.attr,
        &dev_attr_mpi_pause.attr,
        &dev_attr_qlini_mode.attr,
        &dev_attr_ql2xiniexchg.attr,
index 06c1252019e1081bc760675bc69c5d377551ce43..3ece46ae9d6b6dff3ca5a19040e380d2ceb8f2ae 100644 (file)
@@ -2265,84 +2265,6 @@ qla_edif_timer(scsi_qla_host_t *vha)
                qla_edif_dbell_bsg_done(vha);
 }
 
-/*
- * app uses separate thread to read this. It'll wait until the doorbell
- * is rung by the driver or the max wait time has expired
- */
-ssize_t
-edif_doorbell_show(struct device *dev, struct device_attribute *attr,
-               char *buf)
-{
-       scsi_qla_host_t *vha = shost_priv(class_to_shost(dev));
-       struct edb_node *dbnode = NULL;
-       struct edif_app_dbell *ap = (struct edif_app_dbell *)buf;
-       uint32_t dat_siz, buf_size, sz;
-
-       /* TODO: app currently hardcoded to 256. Will transition to bsg */
-       sz = 256;
-
-       /* stop new threads from waiting if we're not init'd */
-       if (DBELL_INACTIVE(vha)) {
-               ql_dbg(ql_dbg_edif + ql_dbg_verbose, vha, 0x09122,
-                   "%s error - edif db not enabled\n", __func__);
-               return 0;
-       }
-
-       if (!vha->hw->flags.edif_enabled) {
-               /* edif not enabled */
-               ql_dbg(ql_dbg_edif + ql_dbg_verbose, vha, 0x09122,
-                   "%s error - edif not enabled\n", __func__);
-               return -1;
-       }
-
-       buf_size = 0;
-       while ((sz - buf_size) >= sizeof(struct edb_node)) {
-               /* remove the next item from the doorbell list */
-               dat_siz = 0;
-               dbnode = qla_edb_getnext(vha);
-               if (dbnode) {
-                       ap->event_code = dbnode->ntype;
-                       switch (dbnode->ntype) {
-                       case VND_CMD_AUTH_STATE_SESSION_SHUTDOWN:
-                       case VND_CMD_AUTH_STATE_NEEDED:
-                               ap->port_id = dbnode->u.plogi_did;
-                               dat_siz += sizeof(ap->port_id);
-                               break;
-                       case VND_CMD_AUTH_STATE_ELS_RCVD:
-                               ap->port_id = dbnode->u.els_sid;
-                               dat_siz += sizeof(ap->port_id);
-                               break;
-                       case VND_CMD_AUTH_STATE_SAUPDATE_COMPL:
-                               ap->port_id = dbnode->u.sa_aen.port_id;
-                               memcpy(ap->event_data, &dbnode->u,
-                                               sizeof(struct edif_sa_update_aen));
-                               dat_siz += sizeof(struct edif_sa_update_aen);
-                               break;
-                       default:
-                               /* unknown node type, rtn unknown ntype */
-                               ap->event_code = VND_CMD_AUTH_STATE_UNDEF;
-                               memcpy(ap->event_data, &dbnode->ntype, 4);
-                               dat_siz += 4;
-                               break;
-                       }
-
-                       ql_dbg(ql_dbg_edif, vha, 0x09102,
-                               "%s Doorbell consumed : type=%d %p\n",
-                               __func__, dbnode->ntype, dbnode);
-                       /* we're done with the db node, so free it up */
-                       kfree(dbnode);
-               } else {
-                       break;
-               }
-
-               ap->event_data_size = dat_siz;
-               /* 8bytes = ap->event_code + ap->event_data_size */
-               buf_size += dat_siz + 8;
-               ap = (struct edif_app_dbell *)(buf + buf_size);
-       }
-       return buf_size;
-}
-
 static void qla_noop_sp_done(srb_t *sp, int res)
 {
        sp->fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
index 84b44454c23104ad4f4723b7a331701fe42f771e..08103efa170fd0fe8dcfcee475e4c7b922630bfa 100644 (file)
@@ -990,7 +990,6 @@ fc_port_t *qla2x00_find_fcport_by_pid(scsi_qla_host_t *vha, port_id_t *id);
 void qla_edb_eventcreate(scsi_qla_host_t *vha, uint32_t dbtype, uint32_t data, uint32_t data2,
                fc_port_t *fcport);
 void qla_edb_stop(scsi_qla_host_t *vha);
-ssize_t edif_doorbell_show(struct device *dev, struct device_attribute *attr, char *buf);
 int32_t qla_edif_app_mgmt(struct bsg_job *bsg_job);
 void qla_enode_init(scsi_qla_host_t *vha);
 void qla_enode_stop(scsi_qla_host_t *vha);