diff options
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 3b5121c4c081..eb4911a61641 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -761,9 +761,11 @@ int scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) | |||
761 | 761 | ||
762 | BUG_ON(!cmd->use_sg); | 762 | BUG_ON(!cmd->use_sg); |
763 | 763 | ||
764 | ret = __sg_alloc_table(&cmd->sg_table, cmd->use_sg, gfp_mask, scsi_sg_alloc); | 764 | ret = __sg_alloc_table(&cmd->sg_table, cmd->use_sg, |
765 | SCSI_MAX_SG_SEGMENTS, gfp_mask, scsi_sg_alloc); | ||
765 | if (unlikely(ret)) | 766 | if (unlikely(ret)) |
766 | __sg_free_table(&cmd->sg_table, scsi_sg_free); | 767 | __sg_free_table(&cmd->sg_table, SCSI_MAX_SG_SEGMENTS, |
768 | scsi_sg_free); | ||
767 | 769 | ||
768 | cmd->request_buffer = cmd->sg_table.sgl; | 770 | cmd->request_buffer = cmd->sg_table.sgl; |
769 | return ret; | 771 | return ret; |
@@ -773,7 +775,7 @@ EXPORT_SYMBOL(scsi_alloc_sgtable); | |||
773 | 775 | ||
774 | void scsi_free_sgtable(struct scsi_cmnd *cmd) | 776 | void scsi_free_sgtable(struct scsi_cmnd *cmd) |
775 | { | 777 | { |
776 | __sg_free_table(&cmd->sg_table, scsi_sg_free); | 778 | __sg_free_table(&cmd->sg_table, SCSI_MAX_SG_SEGMENTS, scsi_sg_free); |
777 | } | 779 | } |
778 | 780 | ||
779 | EXPORT_SYMBOL(scsi_free_sgtable); | 781 | EXPORT_SYMBOL(scsi_free_sgtable); |