diff options
author | James Smart <james.smart@emulex.com> | 2013-04-17 20:16:15 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-05-02 15:46:20 -0400 |
commit | 96f7077f671254e957a2815e54bb20e8d50f0bbc (patch) | |
tree | 491594535761bfcddeea83fbc56976211d8cb961 /drivers/scsi/lpfc/lpfc_mem.c | |
parent | 09294d4623a3149ae2f5d35acf9d119bd957ddd8 (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.c | 14 |
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 | ||