aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-01-17 22:26:52 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-01-17 22:26:52 -0500
commit901b2082b51d4f1c6deac5d5264a744b793ed46f (patch)
tree427a29264d6e45e30ec4cf16aea0c9c196f914ca
parent298e320431db1db52b9ddd6f242bb33a4ea2d094 (diff)
parent70a0f2c1898c6abf53670e55642b6e840b003892 (diff)
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley: "This is one fix for a Multiqueue sleeping in invalid context problem and a MAINTAINER file update for Qlogic" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: ->queue_rq can't sleep MAINTAINERS: Update maintainer list for qla4xxx
-rw-r--r--MAINTAINERS3
-rw-r--r--drivers/scsi/scsi_lib.c3
2 files changed, 2 insertions, 4 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 5e61aef972ef..2fa385321245 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7747,8 +7747,7 @@ F: Documentation/scsi/LICENSE.qla2xxx
7747F: drivers/scsi/qla2xxx/ 7747F: drivers/scsi/qla2xxx/
7748 7748
7749QLOGIC QLA4XXX iSCSI DRIVER 7749QLOGIC QLA4XXX iSCSI DRIVER
7750M: Vikas Chaudhary <vikas.chaudhary@qlogic.com> 7750M: QLogic-Storage-Upstream@qlogic.com
7751M: iscsi-driver@qlogic.com
7752L: linux-scsi@vger.kernel.org 7751L: linux-scsi@vger.kernel.org
7753S: Supported 7752S: Supported
7754F: Documentation/scsi/LICENSE.qla4xxx 7753F: Documentation/scsi/LICENSE.qla4xxx
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 9ea95dd3e260..6d5c0b8cb0bb 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -591,7 +591,6 @@ static void scsi_free_sgtable(struct scsi_data_buffer *sdb, bool mq)
591static int scsi_alloc_sgtable(struct scsi_data_buffer *sdb, int nents, bool mq) 591static int scsi_alloc_sgtable(struct scsi_data_buffer *sdb, int nents, bool mq)
592{ 592{
593 struct scatterlist *first_chunk = NULL; 593 struct scatterlist *first_chunk = NULL;
594 gfp_t gfp_mask = mq ? GFP_NOIO : GFP_ATOMIC;
595 int ret; 594 int ret;
596 595
597 BUG_ON(!nents); 596 BUG_ON(!nents);
@@ -606,7 +605,7 @@ static int scsi_alloc_sgtable(struct scsi_data_buffer *sdb, int nents, bool mq)
606 } 605 }
607 606
608 ret = __sg_alloc_table(&sdb->table, nents, SCSI_MAX_SG_SEGMENTS, 607 ret = __sg_alloc_table(&sdb->table, nents, SCSI_MAX_SG_SEGMENTS,
609 first_chunk, gfp_mask, scsi_sg_alloc); 608 first_chunk, GFP_ATOMIC, scsi_sg_alloc);
610 if (unlikely(ret)) 609 if (unlikely(ret))
611 scsi_free_sgtable(sdb, mq); 610 scsi_free_sgtable(sdb, mq);
612 return ret; 611 return ret;