]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
scsi: lpfc: Correct WQ creation for pagesize
authorJames Smart <jsmart2021@gmail.com>
Sun, 12 Feb 2017 21:52:25 +0000 (13:52 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 22 Feb 2017 23:41:42 +0000 (18:41 -0500)
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>
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 d977a472f89f0695940bef7a96584a798db22094..586984dce3a43ff0ab142b87188faca921c57081 100644 (file)
@@ -13722,7 +13722,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;
                }
@@ -13748,8 +13748,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:
@@ -13935,7 +13936,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: