On 8/4/21 2:56 AM, Christoph Hellwig wrote:
Use bvec_virt instead of open coding it.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
drivers/scsi/sd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index b8d55af763f9..5b5b8266e142 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -886,7 +886,7 @@ static blk_status_t sd_setup_unmap_cmnd(struct scsi_cmnd *cmd)
cmd->cmnd[0] = UNMAP;
cmd->cmnd[8] = 24;
- buf = page_address(rq->special_vec.bv_page);
+ buf = bvec_virt(&rq->special_vec);
put_unaligned_be16(6 + 16, &buf[0]);
put_unaligned_be16(16, &buf[2]);
put_unaligned_be64(lba, &buf[8]);
The patch description is not correct. The above patch involves a
functional change while the patch description suggests that no
functionality has been changed.
Although the above patch looks fine to me, why has page_address() been
changed into bvec_virt() in the sd driver? My understanding is that the
sd driver always sets bv_offset to zero.
Thanks,
Bart.