From: James Smart Date: Wed, 12 Jul 2017 22:39:45 +0000 (-0400) Subject: lpfc: Fix driver usage of 128B WQEs when WQ_CREATE is X-Git-Tag: v4.1.12-106.0.20170720_1900~57 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ef18a5a354d5f5493200c4ae62b95a09105d4db8;p=users%2Fjedix%2Flinux-maple.git lpfc: Fix driver usage of 128B WQEs when WQ_CREATE is [backport of 8c434f8b07d99c4f0728ed144108839a367c72c0] From: rkennedy Orabug: 26439257 There are two versions of a structure for queue creation and setup that the driver shares with FW. The driver was only treating as version 0. Verify WQ_CREATE with 128B WQEs in V0 and V1. Code review of another bug showed the driver passing 128B WQEs and 8 pages in WQ CREATE and V0. Code inspection/instrumentation showed that the driver uses V0 in WQ_CREATE and if the caller passes queue->entry_size 128B, the driver sets the hdr_version to V1 so all is good. When I tested the V1 WQ_CREATE, the mailbox failed causing the driver to unload. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Johannes Thumshirn Signed-off-by: Brian Maly --- diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 62d089fb3a15..6a8742ec83a7 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -13695,6 +13695,9 @@ lpfc_wq_create(struct lpfc_hba *phba, struct lpfc_queue *wq, case LPFC_Q_CREATE_VERSION_1: bf_set(lpfc_mbx_wq_create_wqe_count, &wq_create->u.request_1, wq->entry_count); + bf_set(lpfc_mbox_hdr_version, &shdr->request, + LPFC_Q_CREATE_VERSION_1); + switch (wq->entry_size) { default: case 64: