diff options
author | Tejun Heo <tj@kernel.org> | 2009-05-07 09:24:42 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-05-11 03:50:55 -0400 |
commit | b0790410300abaaf4f25f702803beff701baebf1 (patch) | |
tree | 63d8fcd38e4cd5927fd83e482e306480bb68a689 /drivers/scsi/libsas | |
parent | 2e46e8b27aa57c6bd34b3102b40ee4d0144b4fab (diff) |
block: cleanup rq->data_len usages
With recent unification of fields, it's now guaranteed that
rq->data_len always equals blk_rq_bytes(). Convert all non-IDE direct
users to accessors. IDE will be converted in a separate patch.
Boaz: spotted incorrect data_len/resid_len conversion in osd.
[ Impact: convert direct rq->data_len usages to blk_rq_bytes() ]
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Pete Zaitcev <zaitcev@redhat.com>
Cc: Eric Moore <Eric.Moore@lsi.com>
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
Cc: Darrick J. Wong <djwong@us.ibm.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Eric Moore <Eric.Moore@lsi.com>
Cc: Boaz Harrosh <bharrosh@panasas.com>
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/scsi/libsas')
-rw-r--r-- | drivers/scsi/libsas/sas_expander.c | 8 | ||||
-rw-r--r-- | drivers/scsi/libsas/sas_host_smp.c | 18 |
2 files changed, 13 insertions, 13 deletions
diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c index 6605ec905cc0..531af9ed7199 100644 --- a/drivers/scsi/libsas/sas_expander.c +++ b/drivers/scsi/libsas/sas_expander.c | |||
@@ -1927,13 +1927,13 @@ int sas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy, | |||
1927 | /* do we need to support multiple segments? */ | 1927 | /* do we need to support multiple segments? */ |
1928 | if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) { | 1928 | if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) { |
1929 | printk("%s: multiple segments req %u %u, rsp %u %u\n", | 1929 | printk("%s: multiple segments req %u %u, rsp %u %u\n", |
1930 | __func__, req->bio->bi_vcnt, req->data_len, | 1930 | __func__, req->bio->bi_vcnt, blk_rq_bytes(req), |
1931 | rsp->bio->bi_vcnt, rsp->data_len); | 1931 | rsp->bio->bi_vcnt, blk_rq_bytes(rsp)); |
1932 | return -EINVAL; | 1932 | return -EINVAL; |
1933 | } | 1933 | } |
1934 | 1934 | ||
1935 | ret = smp_execute_task(dev, bio_data(req->bio), req->data_len, | 1935 | ret = smp_execute_task(dev, bio_data(req->bio), blk_rq_bytes(req), |
1936 | bio_data(rsp->bio), rsp->data_len); | 1936 | bio_data(rsp->bio), blk_rq_bytes(rsp)); |
1937 | if (ret > 0) { | 1937 | if (ret > 0) { |
1938 | /* positive number is the untransferred residual */ | 1938 | /* positive number is the untransferred residual */ |
1939 | rsp->resid_len = ret; | 1939 | rsp->resid_len = ret; |
diff --git a/drivers/scsi/libsas/sas_host_smp.c b/drivers/scsi/libsas/sas_host_smp.c index 89952edd0be3..be9a951b977d 100644 --- a/drivers/scsi/libsas/sas_host_smp.c +++ b/drivers/scsi/libsas/sas_host_smp.c | |||
@@ -137,21 +137,21 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, | |||
137 | int error = -EINVAL; | 137 | int error = -EINVAL; |
138 | 138 | ||
139 | /* eight is the minimum size for request and response frames */ | 139 | /* eight is the minimum size for request and response frames */ |
140 | if (req->data_len < 8 || rsp->data_len < 8) | 140 | if (blk_rq_bytes(req) < 8 || blk_rq_bytes(rsp) < 8) |
141 | goto out; | 141 | goto out; |
142 | 142 | ||
143 | if (bio_offset(req->bio) + req->data_len > PAGE_SIZE || | 143 | if (bio_offset(req->bio) + blk_rq_bytes(req) > PAGE_SIZE || |
144 | bio_offset(rsp->bio) + rsp->data_len > PAGE_SIZE) { | 144 | bio_offset(rsp->bio) + blk_rq_bytes(rsp) > PAGE_SIZE) { |
145 | shost_printk(KERN_ERR, shost, | 145 | shost_printk(KERN_ERR, shost, |
146 | "SMP request/response frame crosses page boundary"); | 146 | "SMP request/response frame crosses page boundary"); |
147 | goto out; | 147 | goto out; |
148 | } | 148 | } |
149 | 149 | ||
150 | req_data = kzalloc(req->data_len, GFP_KERNEL); | 150 | req_data = kzalloc(blk_rq_bytes(req), GFP_KERNEL); |
151 | 151 | ||
152 | /* make sure frame can always be built ... we copy | 152 | /* make sure frame can always be built ... we copy |
153 | * back only the requested length */ | 153 | * back only the requested length */ |
154 | resp_data = kzalloc(max(rsp->data_len, 128U), GFP_KERNEL); | 154 | resp_data = kzalloc(max(blk_rq_bytes(rsp), 128U), GFP_KERNEL); |
155 | 155 | ||
156 | if (!req_data || !resp_data) { | 156 | if (!req_data || !resp_data) { |
157 | error = -ENOMEM; | 157 | error = -ENOMEM; |
@@ -160,7 +160,7 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, | |||
160 | 160 | ||
161 | local_irq_disable(); | 161 | local_irq_disable(); |
162 | buf = kmap_atomic(bio_page(req->bio), KM_USER0) + bio_offset(req->bio); | 162 | buf = kmap_atomic(bio_page(req->bio), KM_USER0) + bio_offset(req->bio); |
163 | memcpy(req_data, buf, req->data_len); | 163 | memcpy(req_data, buf, blk_rq_bytes(req)); |
164 | kunmap_atomic(buf - bio_offset(req->bio), KM_USER0); | 164 | kunmap_atomic(buf - bio_offset(req->bio), KM_USER0); |
165 | local_irq_enable(); | 165 | local_irq_enable(); |
166 | 166 | ||
@@ -176,8 +176,8 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, | |||
176 | resp_data[1] = req_data[1]; | 176 | resp_data[1] = req_data[1]; |
177 | resp_data[2] = SMP_RESP_FUNC_UNK; | 177 | resp_data[2] = SMP_RESP_FUNC_UNK; |
178 | 178 | ||
179 | req->resid_len = req->data_len; | 179 | req->resid_len = blk_rq_bytes(req); |
180 | rsp->resid_len = rsp->data_len; | 180 | rsp->resid_len = blk_rq_bytes(rsp); |
181 | 181 | ||
182 | switch (req_data[1]) { | 182 | switch (req_data[1]) { |
183 | case SMP_REPORT_GENERAL: | 183 | case SMP_REPORT_GENERAL: |
@@ -264,7 +264,7 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, | |||
264 | 264 | ||
265 | local_irq_disable(); | 265 | local_irq_disable(); |
266 | buf = kmap_atomic(bio_page(rsp->bio), KM_USER0) + bio_offset(rsp->bio); | 266 | buf = kmap_atomic(bio_page(rsp->bio), KM_USER0) + bio_offset(rsp->bio); |
267 | memcpy(buf, resp_data, rsp->data_len); | 267 | memcpy(buf, resp_data, blk_rq_bytes(rsp)); |
268 | flush_kernel_dcache_page(bio_page(rsp->bio)); | 268 | flush_kernel_dcache_page(bio_page(rsp->bio)); |
269 | kunmap_atomic(buf - bio_offset(rsp->bio), KM_USER0); | 269 | kunmap_atomic(buf - bio_offset(rsp->bio), KM_USER0); |
270 | local_irq_enable(); | 270 | local_irq_enable(); |