aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_mem.c
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2013-04-17 20:16:15 -0400
committerJames Bottomley <JBottomley@Parallels.com>2013-05-02 15:46:20 -0400
commit96f7077f671254e957a2815e54bb20e8d50f0bbc (patch)
tree491594535761bfcddeea83fbc56976211d8cb961 /drivers/scsi/lpfc/lpfc_mem.c
parent09294d4623a3149ae2f5d35acf9d119bd957ddd8 (diff)
[SCSI] lpfc 8.3.39: Fix driver issues with large s/g lists for BlockGuard
Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_mem.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_mem.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_mem.c b/drivers/scsi/lpfc/lpfc_mem.c
index cd86069a0ba8..812d0cd7c86d 100644
--- a/drivers/scsi/lpfc/lpfc_mem.c
+++ b/drivers/scsi/lpfc/lpfc_mem.c
@@ -64,18 +64,26 @@ lpfc_mem_alloc(struct lpfc_hba *phba, int align)
64 struct lpfc_dma_pool *pool = &phba->lpfc_mbuf_safety_pool; 64 struct lpfc_dma_pool *pool = &phba->lpfc_mbuf_safety_pool;
65 int i; 65 int i;
66 66
67 if (phba->sli_rev == LPFC_SLI_REV4) 67 if (phba->sli_rev == LPFC_SLI_REV4) {
68 /* Calculate alignment */
69 if (phba->cfg_sg_dma_buf_size < SLI4_PAGE_SIZE)
70 i = phba->cfg_sg_dma_buf_size;
71 else
72 i = SLI4_PAGE_SIZE;
73
68 phba->lpfc_scsi_dma_buf_pool = 74 phba->lpfc_scsi_dma_buf_pool =
69 pci_pool_create("lpfc_scsi_dma_buf_pool", 75 pci_pool_create("lpfc_scsi_dma_buf_pool",
70 phba->pcidev, 76 phba->pcidev,
71 phba->cfg_sg_dma_buf_size, 77 phba->cfg_sg_dma_buf_size,
72 phba->cfg_sg_dma_buf_size, 78 i,
73 0); 79 0);
74 else 80 } else {
75 phba->lpfc_scsi_dma_buf_pool = 81 phba->lpfc_scsi_dma_buf_pool =
76 pci_pool_create("lpfc_scsi_dma_buf_pool", 82 pci_pool_create("lpfc_scsi_dma_buf_pool",
77 phba->pcidev, phba->cfg_sg_dma_buf_size, 83 phba->pcidev, phba->cfg_sg_dma_buf_size,
78 align, 0); 84 align, 0);
85 }
86
79 if (!phba->lpfc_scsi_dma_buf_pool) 87 if (!phba->lpfc_scsi_dma_buf_pool)
80 goto fail; 88 goto fail;
81 89