aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-08-07 03:02:51 -0400
committerJens Axboe <jens.axboe@oracle.com>2007-10-16 05:12:53 -0400
commita8474ce23a73185dd2bae4c884b1716474032d31 (patch)
tree63501846b8aaef02579a868f6d5118b6a07c4a5e /include/scsi
parent0cde8d9510e242c73b2d68f9949cd3c456c863b4 (diff)
SCSI: support for allocating large scatterlists
This is what enables large commands. If we need to allocate an sgtable that doesn't fit in a single page, allocate several SCSI_MAX_SG_SEGMENTS sized tables and chain them together. SCSI defaults to large chained sg tables, if the arch supports it. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/scsi.h7
-rw-r--r--include/scsi/scsi_cmnd.h1
2 files changed, 1 insertions, 7 deletions
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 9f8f80ab0c8b..702fcfeb37f1 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
@@ -11,13 +11,6 @@
11#include <linux/types.h> 11#include <linux/types.h>
12 12
13/* 13/*
14 * The maximum sg list length SCSI can cope with
15 * (currently must be a power of 2 between 32 and 256)
16 */
17#define SCSI_MAX_PHYS_SEGMENTS MAX_PHYS_SEGMENTS
18
19
20/*
21 * SCSI command lengths 14 * SCSI command lengths
22 */ 15 */
23 16
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index a5439a4b8f97..4a5fa2d1c44c 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -70,6 +70,7 @@ struct scsi_cmnd {
70 /* These elements define the operation we ultimately want to perform */ 70 /* These elements define the operation we ultimately want to perform */
71 unsigned short use_sg; /* Number of pieces of scatter-gather */ 71 unsigned short use_sg; /* Number of pieces of scatter-gather */
72 unsigned short sglist_len; /* size of malloc'd scatter-gather list */ 72 unsigned short sglist_len; /* size of malloc'd scatter-gather list */
73 unsigned short __use_sg;
73 74
74 unsigned underflow; /* Return error if less than 75 unsigned underflow; /* Return error if less than
75 this amount is transferred */ 76 this amount is transferred */