diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:19:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:19:33 -0400 |
commit | df3d80f5a5c74168be42788364d13cf6c83c7b9c (patch) | |
tree | 892a964c2fd28d028f2fb7471e8543d3f4006a58 /drivers/scsi/ps3rom.c | |
parent | 3d06f7a5f74a813cee817c4b30b5e6f0398da0be (diff) | |
parent | c8e91b0a8fc8493e3bf3efcb3c8f866e9453cf1c (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (207 commits)
[SCSI] gdth: fix CONFIG_ISA build failure
[SCSI] esp_scsi: remove __dev{init,exit}
[SCSI] gdth: !use_sg cleanup and use of scsi accessors
[SCSI] gdth: Move members from SCp to gdth_cmndinfo, stage 2
[SCSI] gdth: Setup proper per-command private data
[SCSI] gdth: Remove gdth_ctr_tab[]
[SCSI] gdth: switch to modern scsi host registration
[SCSI] gdth: gdth_interrupt() gdth_get_status() & gdth_wait() fixes
[SCSI] gdth: clean up host private data
[SCSI] gdth: Remove virt hosts
[SCSI] gdth: Reorder scsi_host_template intitializers
[SCSI] gdth: kill gdth_{read,write}[bwl] wrappers
[SCSI] gdth: Remove 2.4.x support, in-kernel changelog
[SCSI] gdth: split out pci probing
[SCSI] gdth: split out eisa probing
[SCSI] gdth: split out isa probing
gdth: Make one abuse of scsi_cmnd less obvious
[SCSI] NCR5380: Use scsi_eh API for REQUEST_SENSE invocation
[SCSI] usb storage: use scsi_eh API in REQUEST_SENSE execution
[SCSI] scsi_error: Refactoring scsi_error to facilitate in synchronous REQUEST_SENSE
...
Diffstat (limited to 'drivers/scsi/ps3rom.c')
-rw-r--r-- | drivers/scsi/ps3rom.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/scsi/ps3rom.c b/drivers/scsi/ps3rom.c index b50f1e14f2a5..0f43d1d046d9 100644 --- a/drivers/scsi/ps3rom.c +++ b/drivers/scsi/ps3rom.c | |||
@@ -100,16 +100,16 @@ static int fill_from_dev_buffer(struct scsi_cmnd *cmd, const void *buf) | |||
100 | struct scatterlist *sgpnt; | 100 | struct scatterlist *sgpnt; |
101 | unsigned int buflen; | 101 | unsigned int buflen; |
102 | 102 | ||
103 | buflen = cmd->request_bufflen; | 103 | buflen = scsi_bufflen(cmd); |
104 | if (!buflen) | 104 | if (!buflen) |
105 | return 0; | 105 | return 0; |
106 | 106 | ||
107 | if (!cmd->request_buffer) | 107 | if (!scsi_sglist(cmd)) |
108 | return -1; | 108 | return -1; |
109 | 109 | ||
110 | sgpnt = cmd->request_buffer; | ||
111 | active = 1; | 110 | active = 1; |
112 | for (k = 0, req_len = 0, act_len = 0; k < cmd->use_sg; ++k, ++sgpnt) { | 111 | req_len = act_len = 0; |
112 | scsi_for_each_sg(cmd, sgpnt, scsi_sg_count(cmd), k) { | ||
113 | if (active) { | 113 | if (active) { |
114 | kaddr = kmap_atomic(sgpnt->page, KM_IRQ0); | 114 | kaddr = kmap_atomic(sgpnt->page, KM_IRQ0); |
115 | len = sgpnt->length; | 115 | len = sgpnt->length; |
@@ -124,7 +124,7 @@ static int fill_from_dev_buffer(struct scsi_cmnd *cmd, const void *buf) | |||
124 | } | 124 | } |
125 | req_len += sgpnt->length; | 125 | req_len += sgpnt->length; |
126 | } | 126 | } |
127 | cmd->resid = req_len - act_len; | 127 | scsi_set_resid(cmd, req_len - act_len); |
128 | return 0; | 128 | return 0; |
129 | } | 129 | } |
130 | 130 | ||
@@ -138,15 +138,15 @@ static int fetch_to_dev_buffer(struct scsi_cmnd *cmd, void *buf) | |||
138 | struct scatterlist *sgpnt; | 138 | struct scatterlist *sgpnt; |
139 | unsigned int buflen; | 139 | unsigned int buflen; |
140 | 140 | ||
141 | buflen = cmd->request_bufflen; | 141 | buflen = scsi_bufflen(cmd); |
142 | if (!buflen) | 142 | if (!buflen) |
143 | return 0; | 143 | return 0; |
144 | 144 | ||
145 | if (!cmd->request_buffer) | 145 | if (!scsi_sglist(cmd)) |
146 | return -1; | 146 | return -1; |
147 | 147 | ||
148 | sgpnt = cmd->request_buffer; | 148 | req_len = fin = 0; |
149 | for (k = 0, req_len = 0, fin = 0; k < cmd->use_sg; ++k, ++sgpnt) { | 149 | scsi_for_each_sg(cmd, sgpnt, scsi_sg_count(cmd), k) { |
150 | kaddr = kmap_atomic(sgpnt->page, KM_IRQ0); | 150 | kaddr = kmap_atomic(sgpnt->page, KM_IRQ0); |
151 | len = sgpnt->length; | 151 | len = sgpnt->length; |
152 | if ((req_len + len) > buflen) { | 152 | if ((req_len + len) > buflen) { |
@@ -177,12 +177,12 @@ static int ps3rom_atapi_request(struct ps3_storage_device *dev, | |||
177 | memcpy(&atapi_cmnd.pkt, cmd->cmnd, 12); | 177 | memcpy(&atapi_cmnd.pkt, cmd->cmnd, 12); |
178 | atapi_cmnd.pktlen = 12; | 178 | atapi_cmnd.pktlen = 12; |
179 | atapi_cmnd.block_size = 1; /* transfer size is block_size * blocks */ | 179 | atapi_cmnd.block_size = 1; /* transfer size is block_size * blocks */ |
180 | atapi_cmnd.blocks = atapi_cmnd.arglen = cmd->request_bufflen; | 180 | atapi_cmnd.blocks = atapi_cmnd.arglen = scsi_bufflen(cmd); |
181 | atapi_cmnd.buffer = dev->bounce_lpar; | 181 | atapi_cmnd.buffer = dev->bounce_lpar; |
182 | 182 | ||
183 | switch (cmd->sc_data_direction) { | 183 | switch (cmd->sc_data_direction) { |
184 | case DMA_FROM_DEVICE: | 184 | case DMA_FROM_DEVICE: |
185 | if (cmd->request_bufflen >= CD_FRAMESIZE) | 185 | if (scsi_bufflen(cmd) >= CD_FRAMESIZE) |
186 | atapi_cmnd.proto = DMA_PROTO; | 186 | atapi_cmnd.proto = DMA_PROTO; |
187 | else | 187 | else |
188 | atapi_cmnd.proto = PIO_DATA_IN_PROTO; | 188 | atapi_cmnd.proto = PIO_DATA_IN_PROTO; |
@@ -190,7 +190,7 @@ static int ps3rom_atapi_request(struct ps3_storage_device *dev, | |||
190 | break; | 190 | break; |
191 | 191 | ||
192 | case DMA_TO_DEVICE: | 192 | case DMA_TO_DEVICE: |
193 | if (cmd->request_bufflen >= CD_FRAMESIZE) | 193 | if (scsi_bufflen(cmd) >= CD_FRAMESIZE) |
194 | atapi_cmnd.proto = DMA_PROTO; | 194 | atapi_cmnd.proto = DMA_PROTO; |
195 | else | 195 | else |
196 | atapi_cmnd.proto = PIO_DATA_OUT_PROTO; | 196 | atapi_cmnd.proto = PIO_DATA_OUT_PROTO; |