scsi: lpfc: Correct WQ creation for pagesize
authorJames Smart <jsmart2021@gmail.com>
Sun, 12 Feb 2017 21:52:25 +0000 (13:52 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Mar 2017 05:44:21 +0000 (06:44 +0100)
commit 8ea73db486cda442f0671f4bc9c03a76be398a28 upstream.

Correct WQ creation for pagesize

The driver was calculating the adapter command pagesize indicator from
the system pagesize. However, the buffers the driver allocates are only
one size (SLI4_PAGE_SIZE), so no calculation was necessary.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/lpfc/lpfc_hw4.h
drivers/scsi/lpfc/lpfc_sli.c

index 5646699b0516b216c87c55684202bbfed2ec8c84..964a1fdb076bba35e9379df883ae9827371140ed 100644 (file)
@@ -1186,6 +1186,7 @@ struct lpfc_mbx_wq_create {
 #define lpfc_mbx_wq_create_page_size_SHIFT     0
 #define lpfc_mbx_wq_create_page_size_MASK      0x000000FF
 #define lpfc_mbx_wq_create_page_size_WORD      word1
+#define LPFC_WQ_PAGE_SIZE_4096 0x1
 #define lpfc_mbx_wq_create_wqe_size_SHIFT      8
 #define lpfc_mbx_wq_create_wqe_size_MASK       0x0000000F
 #define lpfc_mbx_wq_create_wqe_size_WORD       word1
@@ -1257,6 +1258,7 @@ struct rq_context {
 #define lpfc_rq_context_page_size_SHIFT        0               /* Version 1 Only */
 #define lpfc_rq_context_page_size_MASK 0x000000FF
 #define lpfc_rq_context_page_size_WORD word0
+#define        LPFC_RQ_PAGE_SIZE_4096  0x1
        uint32_t reserved1;
        uint32_t word2;
 #define lpfc_rq_context_cq_id_SHIFT    16
index a78a3df68f679659eb9d05b24133312a663ab812..fc797b2508105e8f2f316f329e4e3c76a99ac4a7 100644 (file)
@@ -13718,7 +13718,7 @@ lpfc_wq_create(struct lpfc_hba *phba, struct lpfc_queue *wq,
                               LPFC_WQ_WQE_SIZE_128);
                        bf_set(lpfc_mbx_wq_create_page_size,
                               &wq_create->u.request_1,
-                              (PAGE_SIZE/SLI4_PAGE_SIZE));
+                              LPFC_WQ_PAGE_SIZE_4096);
                        page = wq_create->u.request_1.page;
                        break;
                }
@@ -13744,8 +13744,9 @@ lpfc_wq_create(struct lpfc_hba *phba, struct lpfc_queue *wq,
                               LPFC_WQ_WQE_SIZE_128);
                        break;
                }
-               bf_set(lpfc_mbx_wq_create_page_size, &wq_create->u.request_1,
-                      (PAGE_SIZE/SLI4_PAGE_SIZE));
+               bf_set(lpfc_mbx_wq_create_page_size,
+                      &wq_create->u.request_1,
+                      LPFC_WQ_PAGE_SIZE_4096);
                page = wq_create->u.request_1.page;
                break;
        default:
@@ -13931,7 +13932,7 @@ lpfc_rq_create(struct lpfc_hba *phba, struct lpfc_queue *hrq,
                       LPFC_RQE_SIZE_8);
                bf_set(lpfc_rq_context_page_size,
                       &rq_create->u.request.context,
-                      (PAGE_SIZE/SLI4_PAGE_SIZE));
+                      LPFC_RQ_PAGE_SIZE_4096);
        } else {
                switch (hrq->entry_count) {
                default: