diff options
author | Satish Kharat <satishkh@cisco.com> | 2019-01-14 20:09:28 -0500 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2019-01-22 21:18:34 -0500 |
commit | 68e3cc02bcfc4f55a47333ee7d8fe1a9b41d72c3 (patch) | |
tree | e77e7f2c90e80553ad8c607171e433c30ba1b9cb | |
parent | 120dbfd94c4d5c9634d1f8fb12aa92520eee117c (diff) |
scsi: fnic: RQ enable and then post descriptors
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>
-rw-r--r-- | drivers/scsi/fnic/fnic_main.c | 5 | ||||
-rw-r--r-- | drivers/scsi/fnic/vnic_devcmd.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c index 7a5665acf280..25e0414b6cb0 100644 --- a/drivers/scsi/fnic/fnic_main.c +++ b/drivers/scsi/fnic/fnic_main.c | |||
@@ -654,7 +654,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
654 | } | 654 | } |
655 | 655 | ||
656 | err = fnic_dev_wait(fnic->vdev, vnic_dev_open, | 656 | err = fnic_dev_wait(fnic->vdev, vnic_dev_open, |
657 | vnic_dev_open_done, 0); | 657 | vnic_dev_open_done, CMD_OPENF_RQ_ENABLE_THEN_POST); |
658 | if (err) { | 658 | if (err) { |
659 | shost_printk(KERN_ERR, fnic->lport->host, | 659 | shost_printk(KERN_ERR, fnic->lport->host, |
660 | "vNIC dev open failed, aborting.\n"); | 660 | "vNIC dev open failed, aborting.\n"); |
@@ -799,6 +799,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
799 | 799 | ||
800 | /* allocate RQ buffers and post them to RQ*/ | 800 | /* allocate RQ buffers and post them to RQ*/ |
801 | for (i = 0; i < fnic->rq_count; i++) { | 801 | for (i = 0; i < fnic->rq_count; i++) { |
802 | vnic_rq_enable(&fnic->rq[i]); | ||
802 | err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame); | 803 | err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame); |
803 | if (err) { | 804 | if (err) { |
804 | shost_printk(KERN_ERR, fnic->lport->host, | 805 | 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) | |||
873 | /* Enable all queues */ | 874 | /* Enable all queues */ |
874 | for (i = 0; i < fnic->raw_wq_count; i++) | 875 | for (i = 0; i < fnic->raw_wq_count; i++) |
875 | vnic_wq_enable(&fnic->wq[i]); | 876 | vnic_wq_enable(&fnic->wq[i]); |
876 | for (i = 0; i < fnic->rq_count; i++) | ||
877 | vnic_rq_enable(&fnic->rq[i]); | ||
878 | for (i = 0; i < fnic->wq_copy_count; i++) | 877 | for (i = 0; i < fnic->wq_copy_count; i++) |
879 | vnic_wq_copy_enable(&fnic->wq_copy[i]); | 878 | vnic_wq_copy_enable(&fnic->wq_copy[i]); |
880 | 879 | ||
diff --git a/drivers/scsi/fnic/vnic_devcmd.h b/drivers/scsi/fnic/vnic_devcmd.h index 3e2fcbda6aed..1a2a13bd6442 100644 --- a/drivers/scsi/fnic/vnic_devcmd.h +++ b/drivers/scsi/fnic/vnic_devcmd.h | |||
@@ -268,6 +268,8 @@ enum vnic_devcmd_cmd { | |||
268 | /* flags for CMD_OPEN */ | 268 | /* flags for CMD_OPEN */ |
269 | #define CMD_OPENF_OPROM 0x1 /* open coming from option rom */ | 269 | #define CMD_OPENF_OPROM 0x1 /* open coming from option rom */ |
270 | 270 | ||
271 | #define CMD_OPENF_RQ_ENABLE_THEN_POST 0x2 | ||
272 | |||
271 | /* flags for CMD_INIT */ | 273 | /* flags for CMD_INIT */ |
272 | #define CMD_INITF_DEFAULT_MAC 0x1 /* init with default mac addr */ | 274 | #define CMD_INITF_DEFAULT_MAC 0x1 /* init with default mac addr */ |
273 | 275 | ||