scsi: fnic: RQ enable and then post descriptors
authorSatish Kharat <satishkh@cisco.com>
Tue, 15 Jan 2019 01:09:28 +0000 (17:09 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 23 Jan 2019 02:18:34 +0000 (21:18 -0500)
Do RQ enable before posting descriptor. This is needed for later hw
revisions.

Signed-off-by: Satish Kharat <satishkh@cisco.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/fnic/fnic_main.c
drivers/scsi/fnic/vnic_devcmd.h

index 7a5665a..25e0414 100644 (file)
@@ -654,7 +654,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
 
        err = fnic_dev_wait(fnic->vdev, vnic_dev_open,
-                           vnic_dev_open_done, 0);
+                           vnic_dev_open_done, CMD_OPENF_RQ_ENABLE_THEN_POST);
        if (err) {
                shost_printk(KERN_ERR, fnic->lport->host,
                             "vNIC dev open failed, aborting.\n");
@@ -799,6 +799,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        /* allocate RQ buffers and post them to RQ*/
        for (i = 0; i < fnic->rq_count; i++) {
+               vnic_rq_enable(&fnic->rq[i]);
                err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame);
                if (err) {
                        shost_printk(KERN_ERR, fnic->lport->host,
@@ -873,8 +874,6 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        /* Enable all queues */
        for (i = 0; i < fnic->raw_wq_count; i++)
                vnic_wq_enable(&fnic->wq[i]);
-       for (i = 0; i < fnic->rq_count; i++)
-               vnic_rq_enable(&fnic->rq[i]);
        for (i = 0; i < fnic->wq_copy_count; i++)
                vnic_wq_copy_enable(&fnic->wq_copy[i]);
 
index 3e2fcbd..1a2a13b 100644 (file)
@@ -268,6 +268,8 @@ enum vnic_devcmd_cmd {
 /* flags for CMD_OPEN */
 #define CMD_OPENF_OPROM                0x1     /* open coming from option rom */
 
+#define CMD_OPENF_RQ_ENABLE_THEN_POST   0x2
+
 /* flags for CMD_INIT */
 #define CMD_INITF_DEFAULT_MAC  0x1     /* init with default mac addr */