diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-01 12:00:29 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-01 12:00:29 -0500 |
commit | b1bf9368407ae7e89d8a005bb40beb70a41df539 (patch) | |
tree | 3815c8aab19c6c186736673c624fef5f3faab716 /include | |
parent | 524df55725217b13d5a232fb5badb5846418ea0e (diff) | |
parent | 4671a1322052425afa38fcb7980d2fd2bb0fc99b (diff) |
Merge branch 'for-2.6.34' of git://git.kernel.dk/linux-2.6-block
* 'for-2.6.34' of git://git.kernel.dk/linux-2.6-block: (38 commits)
block: don't access jiffies when initialising io_context
cfq: remove 8 bytes of padding from cfq_rb_root on 64 bit builds
block: fix for "Consolidate phys_segment and hw_segment limits"
cfq-iosched: quantum check tweak
blktrace: perform cleanup after setup error
blkdev: fix merge_bvec_fn return value checks
cfq-iosched: requests "in flight" vs "in driver" clarification
cciss: Fix problem with scatter gather elements in the scsi half of the driver
cciss: eliminate unnecessary pointer use in cciss scsi code
cciss: do not use void pointer for scsi hba data
cciss: factor out scatter gather chain block mapping code
cciss: fix scatter gather chain block dma direction kludge
cciss: simplify scatter gather code
cciss: factor out scatter gather chain block allocation and freeing
cciss: detect bad alignment of scsi commands at build time
cciss: clarify command list padding calculation
cfq-iosched: rethink seeky detection for SSDs
cfq-iosched: rework seeky detection
block: remove padding from io_context on 64bit builds
block: Consolidate phys_segment and hw_segment limits
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/Kbuild | 1 | ||||
-rw-r--r-- | include/linux/blkdev.h | 65 | ||||
-rw-r--r-- | include/linux/cciss_defs.h | 130 | ||||
-rw-r--r-- | include/linux/cciss_ioctl.h | 128 | ||||
-rw-r--r-- | include/linux/i2o.h | 2 | ||||
-rw-r--r-- | include/linux/iocontext.h | 2 | ||||
-rw-r--r-- | include/linux/pktcdvd.h | 10 | ||||
-rw-r--r-- | include/linux/sched.h | 4 |
8 files changed, 178 insertions, 164 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 756f831cbdd5..91be0d896322 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -43,6 +43,7 @@ header-y += blkpg.h | |||
43 | header-y += bpqether.h | 43 | header-y += bpqether.h |
44 | header-y += bsg.h | 44 | header-y += bsg.h |
45 | header-y += can.h | 45 | header-y += can.h |
46 | header-y += cciss_defs.h | ||
46 | header-y += cdk.h | 47 | header-y += cdk.h |
47 | header-y += chio.h | 48 | header-y += chio.h |
48 | header-y += coda_psdev.h | 49 | header-y += coda_psdev.h |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 1896e868854f..ebd22dbed861 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -316,8 +316,7 @@ struct queue_limits { | |||
316 | unsigned int discard_alignment; | 316 | unsigned int discard_alignment; |
317 | 317 | ||
318 | unsigned short logical_block_size; | 318 | unsigned short logical_block_size; |
319 | unsigned short max_hw_segments; | 319 | unsigned short max_segments; |
320 | unsigned short max_phys_segments; | ||
321 | 320 | ||
322 | unsigned char misaligned; | 321 | unsigned char misaligned; |
323 | unsigned char discard_misaligned; | 322 | unsigned char discard_misaligned; |
@@ -462,6 +461,7 @@ struct request_queue | |||
462 | #define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */ | 461 | #define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */ |
463 | #define QUEUE_FLAG_IO_STAT 15 /* do IO stats */ | 462 | #define QUEUE_FLAG_IO_STAT 15 /* do IO stats */ |
464 | #define QUEUE_FLAG_DISCARD 16 /* supports DISCARD */ | 463 | #define QUEUE_FLAG_DISCARD 16 /* supports DISCARD */ |
464 | #define QUEUE_FLAG_NOXMERGES 17 /* No extended merges */ | ||
465 | 465 | ||
466 | #define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ | 466 | #define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ |
467 | (1 << QUEUE_FLAG_CLUSTER) | \ | 467 | (1 << QUEUE_FLAG_CLUSTER) | \ |
@@ -587,6 +587,8 @@ enum { | |||
587 | #define blk_queue_tagged(q) test_bit(QUEUE_FLAG_QUEUED, &(q)->queue_flags) | 587 | #define blk_queue_tagged(q) test_bit(QUEUE_FLAG_QUEUED, &(q)->queue_flags) |
588 | #define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags) | 588 | #define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags) |
589 | #define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags) | 589 | #define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags) |
590 | #define blk_queue_noxmerges(q) \ | ||
591 | test_bit(QUEUE_FLAG_NOXMERGES, &(q)->queue_flags) | ||
590 | #define blk_queue_nonrot(q) test_bit(QUEUE_FLAG_NONROT, &(q)->queue_flags) | 592 | #define blk_queue_nonrot(q) test_bit(QUEUE_FLAG_NONROT, &(q)->queue_flags) |
591 | #define blk_queue_io_stat(q) test_bit(QUEUE_FLAG_IO_STAT, &(q)->queue_flags) | 593 | #define blk_queue_io_stat(q) test_bit(QUEUE_FLAG_IO_STAT, &(q)->queue_flags) |
592 | #define blk_queue_flushing(q) ((q)->ordseq) | 594 | #define blk_queue_flushing(q) ((q)->ordseq) |
@@ -918,10 +920,27 @@ extern struct request_queue *blk_init_queue(request_fn_proc *, spinlock_t *); | |||
918 | extern void blk_cleanup_queue(struct request_queue *); | 920 | extern void blk_cleanup_queue(struct request_queue *); |
919 | extern void blk_queue_make_request(struct request_queue *, make_request_fn *); | 921 | extern void blk_queue_make_request(struct request_queue *, make_request_fn *); |
920 | extern void blk_queue_bounce_limit(struct request_queue *, u64); | 922 | extern void blk_queue_bounce_limit(struct request_queue *, u64); |
921 | extern void blk_queue_max_sectors(struct request_queue *, unsigned int); | ||
922 | extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int); | 923 | extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int); |
923 | extern void blk_queue_max_phys_segments(struct request_queue *, unsigned short); | 924 | |
924 | extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short); | 925 | /* Temporary compatibility wrapper */ |
926 | static inline void blk_queue_max_sectors(struct request_queue *q, unsigned int max) | ||
927 | { | ||
928 | blk_queue_max_hw_sectors(q, max); | ||
929 | } | ||
930 | |||
931 | extern void blk_queue_max_segments(struct request_queue *, unsigned short); | ||
932 | |||
933 | static inline void blk_queue_max_phys_segments(struct request_queue *q, unsigned short max) | ||
934 | { | ||
935 | blk_queue_max_segments(q, max); | ||
936 | } | ||
937 | |||
938 | static inline void blk_queue_max_hw_segments(struct request_queue *q, unsigned short max) | ||
939 | { | ||
940 | blk_queue_max_segments(q, max); | ||
941 | } | ||
942 | |||
943 | |||
925 | extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); | 944 | extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); |
926 | extern void blk_queue_max_discard_sectors(struct request_queue *q, | 945 | extern void blk_queue_max_discard_sectors(struct request_queue *q, |
927 | unsigned int max_discard_sectors); | 946 | unsigned int max_discard_sectors); |
@@ -1014,11 +1033,15 @@ extern int blk_verify_command(unsigned char *cmd, fmode_t has_write_perm); | |||
1014 | #define MAX_PHYS_SEGMENTS 128 | 1033 | #define MAX_PHYS_SEGMENTS 128 |
1015 | #define MAX_HW_SEGMENTS 128 | 1034 | #define MAX_HW_SEGMENTS 128 |
1016 | #define SAFE_MAX_SECTORS 255 | 1035 | #define SAFE_MAX_SECTORS 255 |
1017 | #define BLK_DEF_MAX_SECTORS 1024 | ||
1018 | |||
1019 | #define MAX_SEGMENT_SIZE 65536 | 1036 | #define MAX_SEGMENT_SIZE 65536 |
1020 | 1037 | ||
1021 | #define BLK_SEG_BOUNDARY_MASK 0xFFFFFFFFUL | 1038 | enum blk_default_limits { |
1039 | BLK_MAX_SEGMENTS = 128, | ||
1040 | BLK_SAFE_MAX_SECTORS = 255, | ||
1041 | BLK_DEF_MAX_SECTORS = 1024, | ||
1042 | BLK_MAX_SEGMENT_SIZE = 65536, | ||
1043 | BLK_SEG_BOUNDARY_MASK = 0xFFFFFFFFUL, | ||
1044 | }; | ||
1022 | 1045 | ||
1023 | #define blkdev_entry_to_request(entry) list_entry((entry), struct request, queuelist) | 1046 | #define blkdev_entry_to_request(entry) list_entry((entry), struct request, queuelist) |
1024 | 1047 | ||
@@ -1042,14 +1065,9 @@ static inline unsigned int queue_max_hw_sectors(struct request_queue *q) | |||
1042 | return q->limits.max_hw_sectors; | 1065 | return q->limits.max_hw_sectors; |
1043 | } | 1066 | } |
1044 | 1067 | ||
1045 | static inline unsigned short queue_max_hw_segments(struct request_queue *q) | 1068 | static inline unsigned short queue_max_segments(struct request_queue *q) |
1046 | { | ||
1047 | return q->limits.max_hw_segments; | ||
1048 | } | ||
1049 | |||
1050 | static inline unsigned short queue_max_phys_segments(struct request_queue *q) | ||
1051 | { | 1069 | { |
1052 | return q->limits.max_phys_segments; | 1070 | return q->limits.max_segments; |
1053 | } | 1071 | } |
1054 | 1072 | ||
1055 | static inline unsigned int queue_max_segment_size(struct request_queue *q) | 1073 | static inline unsigned int queue_max_segment_size(struct request_queue *q) |
@@ -1110,18 +1128,13 @@ static inline int queue_alignment_offset(struct request_queue *q) | |||
1110 | return q->limits.alignment_offset; | 1128 | return q->limits.alignment_offset; |
1111 | } | 1129 | } |
1112 | 1130 | ||
1113 | static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t offset) | 1131 | static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t sector) |
1114 | { | 1132 | { |
1115 | unsigned int granularity = max(lim->physical_block_size, lim->io_min); | 1133 | unsigned int granularity = max(lim->physical_block_size, lim->io_min); |
1134 | unsigned int alignment = (sector << 9) & (granularity - 1); | ||
1116 | 1135 | ||
1117 | offset &= granularity - 1; | 1136 | return (granularity + lim->alignment_offset - alignment) |
1118 | return (granularity + lim->alignment_offset - offset) & (granularity - 1); | 1137 | & (granularity - 1); |
1119 | } | ||
1120 | |||
1121 | static inline int queue_sector_alignment_offset(struct request_queue *q, | ||
1122 | sector_t sector) | ||
1123 | { | ||
1124 | return queue_limit_alignment_offset(&q->limits, sector << 9); | ||
1125 | } | 1138 | } |
1126 | 1139 | ||
1127 | static inline int bdev_alignment_offset(struct block_device *bdev) | 1140 | static inline int bdev_alignment_offset(struct block_device *bdev) |
@@ -1145,10 +1158,8 @@ static inline int queue_discard_alignment(struct request_queue *q) | |||
1145 | return q->limits.discard_alignment; | 1158 | return q->limits.discard_alignment; |
1146 | } | 1159 | } |
1147 | 1160 | ||
1148 | static inline int queue_sector_discard_alignment(struct request_queue *q, | 1161 | static inline int queue_limit_discard_alignment(struct queue_limits *lim, sector_t sector) |
1149 | sector_t sector) | ||
1150 | { | 1162 | { |
1151 | struct queue_limits *lim = &q->limits; | ||
1152 | unsigned int alignment = (sector << 9) & (lim->discard_granularity - 1); | 1163 | unsigned int alignment = (sector << 9) & (lim->discard_granularity - 1); |
1153 | 1164 | ||
1154 | return (lim->discard_granularity + lim->discard_alignment - alignment) | 1165 | return (lim->discard_granularity + lim->discard_alignment - alignment) |
diff --git a/include/linux/cciss_defs.h b/include/linux/cciss_defs.h new file mode 100644 index 000000000000..316b670d4e33 --- /dev/null +++ b/include/linux/cciss_defs.h | |||
@@ -0,0 +1,130 @@ | |||
1 | #ifndef CCISS_DEFS_H | ||
2 | #define CCISS_DEFS_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /* general boundary definitions */ | ||
7 | #define SENSEINFOBYTES 32 /* note that this value may vary | ||
8 | between host implementations */ | ||
9 | |||
10 | /* Command Status value */ | ||
11 | #define CMD_SUCCESS 0x0000 | ||
12 | #define CMD_TARGET_STATUS 0x0001 | ||
13 | #define CMD_DATA_UNDERRUN 0x0002 | ||
14 | #define CMD_DATA_OVERRUN 0x0003 | ||
15 | #define CMD_INVALID 0x0004 | ||
16 | #define CMD_PROTOCOL_ERR 0x0005 | ||
17 | #define CMD_HARDWARE_ERR 0x0006 | ||
18 | #define CMD_CONNECTION_LOST 0x0007 | ||
19 | #define CMD_ABORTED 0x0008 | ||
20 | #define CMD_ABORT_FAILED 0x0009 | ||
21 | #define CMD_UNSOLICITED_ABORT 0x000A | ||
22 | #define CMD_TIMEOUT 0x000B | ||
23 | #define CMD_UNABORTABLE 0x000C | ||
24 | |||
25 | /* transfer direction */ | ||
26 | #define XFER_NONE 0x00 | ||
27 | #define XFER_WRITE 0x01 | ||
28 | #define XFER_READ 0x02 | ||
29 | #define XFER_RSVD 0x03 | ||
30 | |||
31 | /* task attribute */ | ||
32 | #define ATTR_UNTAGGED 0x00 | ||
33 | #define ATTR_SIMPLE 0x04 | ||
34 | #define ATTR_HEADOFQUEUE 0x05 | ||
35 | #define ATTR_ORDERED 0x06 | ||
36 | #define ATTR_ACA 0x07 | ||
37 | |||
38 | /* cdb type */ | ||
39 | #define TYPE_CMD 0x00 | ||
40 | #define TYPE_MSG 0x01 | ||
41 | |||
42 | /* Type defs used in the following structs */ | ||
43 | #define BYTE __u8 | ||
44 | #define WORD __u16 | ||
45 | #define HWORD __u16 | ||
46 | #define DWORD __u32 | ||
47 | |||
48 | #define CISS_MAX_LUN 1024 | ||
49 | |||
50 | #define LEVEL2LUN 1 /* index into Target(x) structure, due to byte swapping */ | ||
51 | #define LEVEL3LUN 0 | ||
52 | |||
53 | #pragma pack(1) | ||
54 | |||
55 | /* Command List Structure */ | ||
56 | typedef union _SCSI3Addr_struct { | ||
57 | struct { | ||
58 | BYTE Dev; | ||
59 | BYTE Bus:6; | ||
60 | BYTE Mode:2; /* b00 */ | ||
61 | } PeripDev; | ||
62 | struct { | ||
63 | BYTE DevLSB; | ||
64 | BYTE DevMSB:6; | ||
65 | BYTE Mode:2; /* b01 */ | ||
66 | } LogDev; | ||
67 | struct { | ||
68 | BYTE Dev:5; | ||
69 | BYTE Bus:3; | ||
70 | BYTE Targ:6; | ||
71 | BYTE Mode:2; /* b10 */ | ||
72 | } LogUnit; | ||
73 | } SCSI3Addr_struct; | ||
74 | |||
75 | typedef struct _PhysDevAddr_struct { | ||
76 | DWORD TargetId:24; | ||
77 | DWORD Bus:6; | ||
78 | DWORD Mode:2; | ||
79 | SCSI3Addr_struct Target[2]; /* 2 level target device addr */ | ||
80 | } PhysDevAddr_struct; | ||
81 | |||
82 | typedef struct _LogDevAddr_struct { | ||
83 | DWORD VolId:30; | ||
84 | DWORD Mode:2; | ||
85 | BYTE reserved[4]; | ||
86 | } LogDevAddr_struct; | ||
87 | |||
88 | typedef union _LUNAddr_struct { | ||
89 | BYTE LunAddrBytes[8]; | ||
90 | SCSI3Addr_struct SCSI3Lun[4]; | ||
91 | PhysDevAddr_struct PhysDev; | ||
92 | LogDevAddr_struct LogDev; | ||
93 | } LUNAddr_struct; | ||
94 | |||
95 | typedef struct _RequestBlock_struct { | ||
96 | BYTE CDBLen; | ||
97 | struct { | ||
98 | BYTE Type:3; | ||
99 | BYTE Attribute:3; | ||
100 | BYTE Direction:2; | ||
101 | } Type; | ||
102 | HWORD Timeout; | ||
103 | BYTE CDB[16]; | ||
104 | } RequestBlock_struct; | ||
105 | |||
106 | typedef union _MoreErrInfo_struct{ | ||
107 | struct { | ||
108 | BYTE Reserved[3]; | ||
109 | BYTE Type; | ||
110 | DWORD ErrorInfo; | ||
111 | } Common_Info; | ||
112 | struct{ | ||
113 | BYTE Reserved[2]; | ||
114 | BYTE offense_size; /* size of offending entry */ | ||
115 | BYTE offense_num; /* byte # of offense 0-base */ | ||
116 | DWORD offense_value; | ||
117 | } Invalid_Cmd; | ||
118 | } MoreErrInfo_struct; | ||
119 | typedef struct _ErrorInfo_struct { | ||
120 | BYTE ScsiStatus; | ||
121 | BYTE SenseLen; | ||
122 | HWORD CommandStatus; | ||
123 | DWORD ResidualCnt; | ||
124 | MoreErrInfo_struct MoreErrInfo; | ||
125 | BYTE SenseInfo[SENSEINFOBYTES]; | ||
126 | } ErrorInfo_struct; | ||
127 | |||
128 | #pragma pack() | ||
129 | |||
130 | #endif /* CCISS_DEFS_H */ | ||
diff --git a/include/linux/cciss_ioctl.h b/include/linux/cciss_ioctl.h index eb130b4d8e72..986493f5b92b 100644 --- a/include/linux/cciss_ioctl.h +++ b/include/linux/cciss_ioctl.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/ioctl.h> | 5 | #include <linux/ioctl.h> |
6 | #include <linux/cciss_defs.h> | ||
6 | 7 | ||
7 | #define CCISS_IOC_MAGIC 'B' | 8 | #define CCISS_IOC_MAGIC 'B' |
8 | 9 | ||
@@ -36,133 +37,6 @@ typedef __u32 DriverVer_type; | |||
36 | 37 | ||
37 | #define MAX_KMALLOC_SIZE 128000 | 38 | #define MAX_KMALLOC_SIZE 128000 |
38 | 39 | ||
39 | #ifndef CCISS_CMD_H | ||
40 | // This defines are duplicated in cciss_cmd.h in the driver directory | ||
41 | |||
42 | //general boundary definitions | ||
43 | #define SENSEINFOBYTES 32//note that this value may vary between host implementations | ||
44 | |||
45 | //Command Status value | ||
46 | #define CMD_SUCCESS 0x0000 | ||
47 | #define CMD_TARGET_STATUS 0x0001 | ||
48 | #define CMD_DATA_UNDERRUN 0x0002 | ||
49 | #define CMD_DATA_OVERRUN 0x0003 | ||
50 | #define CMD_INVALID 0x0004 | ||
51 | #define CMD_PROTOCOL_ERR 0x0005 | ||
52 | #define CMD_HARDWARE_ERR 0x0006 | ||
53 | #define CMD_CONNECTION_LOST 0x0007 | ||
54 | #define CMD_ABORTED 0x0008 | ||
55 | #define CMD_ABORT_FAILED 0x0009 | ||
56 | #define CMD_UNSOLICITED_ABORT 0x000A | ||
57 | #define CMD_TIMEOUT 0x000B | ||
58 | #define CMD_UNABORTABLE 0x000C | ||
59 | |||
60 | //transfer direction | ||
61 | #define XFER_NONE 0x00 | ||
62 | #define XFER_WRITE 0x01 | ||
63 | #define XFER_READ 0x02 | ||
64 | #define XFER_RSVD 0x03 | ||
65 | |||
66 | //task attribute | ||
67 | #define ATTR_UNTAGGED 0x00 | ||
68 | #define ATTR_SIMPLE 0x04 | ||
69 | #define ATTR_HEADOFQUEUE 0x05 | ||
70 | #define ATTR_ORDERED 0x06 | ||
71 | #define ATTR_ACA 0x07 | ||
72 | |||
73 | //cdb type | ||
74 | #define TYPE_CMD 0x00 | ||
75 | #define TYPE_MSG 0x01 | ||
76 | |||
77 | // Type defs used in the following structs | ||
78 | #define BYTE __u8 | ||
79 | #define WORD __u16 | ||
80 | #define HWORD __u16 | ||
81 | #define DWORD __u32 | ||
82 | |||
83 | #define CISS_MAX_LUN 1024 | ||
84 | |||
85 | #define LEVEL2LUN 1 // index into Target(x) structure, due to byte swapping | ||
86 | #define LEVEL3LUN 0 | ||
87 | |||
88 | #pragma pack(1) | ||
89 | |||
90 | //Command List Structure | ||
91 | typedef union _SCSI3Addr_struct { | ||
92 | struct { | ||
93 | BYTE Dev; | ||
94 | BYTE Bus:6; | ||
95 | BYTE Mode:2; // b00 | ||
96 | } PeripDev; | ||
97 | struct { | ||
98 | BYTE DevLSB; | ||
99 | BYTE DevMSB:6; | ||
100 | BYTE Mode:2; // b01 | ||
101 | } LogDev; | ||
102 | struct { | ||
103 | BYTE Dev:5; | ||
104 | BYTE Bus:3; | ||
105 | BYTE Targ:6; | ||
106 | BYTE Mode:2; // b10 | ||
107 | } LogUnit; | ||
108 | } SCSI3Addr_struct; | ||
109 | |||
110 | typedef struct _PhysDevAddr_struct { | ||
111 | DWORD TargetId:24; | ||
112 | DWORD Bus:6; | ||
113 | DWORD Mode:2; | ||
114 | SCSI3Addr_struct Target[2]; //2 level target device addr | ||
115 | } PhysDevAddr_struct; | ||
116 | |||
117 | typedef struct _LogDevAddr_struct { | ||
118 | DWORD VolId:30; | ||
119 | DWORD Mode:2; | ||
120 | BYTE reserved[4]; | ||
121 | } LogDevAddr_struct; | ||
122 | |||
123 | typedef union _LUNAddr_struct { | ||
124 | BYTE LunAddrBytes[8]; | ||
125 | SCSI3Addr_struct SCSI3Lun[4]; | ||
126 | PhysDevAddr_struct PhysDev; | ||
127 | LogDevAddr_struct LogDev; | ||
128 | } LUNAddr_struct; | ||
129 | |||
130 | typedef struct _RequestBlock_struct { | ||
131 | BYTE CDBLen; | ||
132 | struct { | ||
133 | BYTE Type:3; | ||
134 | BYTE Attribute:3; | ||
135 | BYTE Direction:2; | ||
136 | } Type; | ||
137 | HWORD Timeout; | ||
138 | BYTE CDB[16]; | ||
139 | } RequestBlock_struct; | ||
140 | |||
141 | typedef union _MoreErrInfo_struct{ | ||
142 | struct { | ||
143 | BYTE Reserved[3]; | ||
144 | BYTE Type; | ||
145 | DWORD ErrorInfo; | ||
146 | }Common_Info; | ||
147 | struct{ | ||
148 | BYTE Reserved[2]; | ||
149 | BYTE offense_size;//size of offending entry | ||
150 | BYTE offense_num; //byte # of offense 0-base | ||
151 | DWORD offense_value; | ||
152 | }Invalid_Cmd; | ||
153 | }MoreErrInfo_struct; | ||
154 | typedef struct _ErrorInfo_struct { | ||
155 | BYTE ScsiStatus; | ||
156 | BYTE SenseLen; | ||
157 | HWORD CommandStatus; | ||
158 | DWORD ResidualCnt; | ||
159 | MoreErrInfo_struct MoreErrInfo; | ||
160 | BYTE SenseInfo[SENSEINFOBYTES]; | ||
161 | } ErrorInfo_struct; | ||
162 | |||
163 | #pragma pack() | ||
164 | #endif /* CCISS_CMD_H */ | ||
165 | |||
166 | typedef struct _IOCTL_Command_struct { | 40 | typedef struct _IOCTL_Command_struct { |
167 | LUNAddr_struct LUN_info; | 41 | LUNAddr_struct LUN_info; |
168 | RequestBlock_struct Request; | 42 | RequestBlock_struct Request; |
diff --git a/include/linux/i2o.h b/include/linux/i2o.h index 4c4e57d1f19d..87018dc5527d 100644 --- a/include/linux/i2o.h +++ b/include/linux/i2o.h | |||
@@ -385,7 +385,7 @@ | |||
385 | /* defines for max_sectors and max_phys_segments */ | 385 | /* defines for max_sectors and max_phys_segments */ |
386 | #define I2O_MAX_SECTORS 1024 | 386 | #define I2O_MAX_SECTORS 1024 |
387 | #define I2O_MAX_SECTORS_LIMITED 128 | 387 | #define I2O_MAX_SECTORS_LIMITED 128 |
388 | #define I2O_MAX_PHYS_SEGMENTS MAX_PHYS_SEGMENTS | 388 | #define I2O_MAX_PHYS_SEGMENTS BLK_MAX_SEGMENTS |
389 | 389 | ||
390 | /* | 390 | /* |
391 | * Message structures | 391 | * Message structures |
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index 78ef023227d4..1195a806fe0c 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
@@ -49,8 +49,8 @@ struct io_context { | |||
49 | /* | 49 | /* |
50 | * For request batching | 50 | * For request batching |
51 | */ | 51 | */ |
52 | unsigned long last_waited; /* Time last woken after wait for request */ | ||
53 | int nr_batch_requests; /* Number of requests left in the batch */ | 52 | int nr_batch_requests; /* Number of requests left in the batch */ |
53 | unsigned long last_waited; /* Time last woken after wait for request */ | ||
54 | 54 | ||
55 | struct radix_tree_root radix_root; | 55 | struct radix_tree_root radix_root; |
56 | struct hlist_head cic_list; | 56 | struct hlist_head cic_list; |
diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h index 76e5053e1fac..721301b0a908 100644 --- a/include/linux/pktcdvd.h +++ b/include/linux/pktcdvd.h | |||
@@ -163,10 +163,8 @@ struct packet_iosched | |||
163 | atomic_t attention; /* Set to non-zero when queue processing is needed */ | 163 | atomic_t attention; /* Set to non-zero when queue processing is needed */ |
164 | int writing; /* Non-zero when writing, zero when reading */ | 164 | int writing; /* Non-zero when writing, zero when reading */ |
165 | spinlock_t lock; /* Protecting read/write queue manipulations */ | 165 | spinlock_t lock; /* Protecting read/write queue manipulations */ |
166 | struct bio *read_queue; | 166 | struct bio_list read_queue; |
167 | struct bio *read_queue_tail; | 167 | struct bio_list write_queue; |
168 | struct bio *write_queue; | ||
169 | struct bio *write_queue_tail; | ||
170 | sector_t last_write; /* The sector where the last write ended */ | 168 | sector_t last_write; /* The sector where the last write ended */ |
171 | int successive_reads; | 169 | int successive_reads; |
172 | }; | 170 | }; |
@@ -206,8 +204,8 @@ struct packet_data | |||
206 | spinlock_t lock; /* Lock protecting state transitions and */ | 204 | spinlock_t lock; /* Lock protecting state transitions and */ |
207 | /* orig_bios list */ | 205 | /* orig_bios list */ |
208 | 206 | ||
209 | struct bio *orig_bios; /* Original bios passed to pkt_make_request */ | 207 | struct bio_list orig_bios; /* Original bios passed to pkt_make_request */ |
210 | struct bio *orig_bios_tail;/* that will be handled by this packet */ | 208 | /* that will be handled by this packet */ |
211 | int write_size; /* Total size of all bios in the orig_bios */ | 209 | int write_size; /* Total size of all bios in the orig_bios */ |
212 | /* list, measured in number of frames */ | 210 | /* list, measured in number of frames */ |
213 | 211 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 0eef87b58ea5..4b1753f7e48e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -97,7 +97,7 @@ struct sched_param { | |||
97 | struct exec_domain; | 97 | struct exec_domain; |
98 | struct futex_pi_state; | 98 | struct futex_pi_state; |
99 | struct robust_list_head; | 99 | struct robust_list_head; |
100 | struct bio; | 100 | struct bio_list; |
101 | struct fs_struct; | 101 | struct fs_struct; |
102 | struct bts_context; | 102 | struct bts_context; |
103 | struct perf_event_context; | 103 | struct perf_event_context; |
@@ -1454,7 +1454,7 @@ struct task_struct { | |||
1454 | void *journal_info; | 1454 | void *journal_info; |
1455 | 1455 | ||
1456 | /* stacked block device info */ | 1456 | /* stacked block device info */ |
1457 | struct bio *bio_list, **bio_tail; | 1457 | struct bio_list *bio_list; |
1458 | 1458 | ||
1459 | /* VM state */ | 1459 | /* VM state */ |
1460 | struct reclaim_state *reclaim_state; | 1460 | struct reclaim_state *reclaim_state; |