We do set rq->sense_len when we assigne the reply-buffer in blk_fill_sgv4_hdr_rq(). No point in possibly deviating from this value later on. bsg-lib.h specifies: unsigned int reply_len; /* * On entry : reply_len indicates the buffer size allocated for * the reply. * * ... */ Signed-off-by: Benjamin Block <bblock@xxxxxxxxxxxxxxxxxx> --- block/bsg-lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/bsg-lib.c b/block/bsg-lib.c index c4513b23f57a..c7c2c6bbb5ae 100644 --- a/block/bsg-lib.c +++ b/block/bsg-lib.c @@ -147,8 +147,8 @@ static int bsg_create_job(struct device *dev, struct request *req) job->request = rq->cmd; job->request_len = rq->cmd_len; job->reply = rq->sense; - job->reply_len = SCSI_SENSE_BUFFERSIZE; /* Size of sense buffer - * allocated */ + job->reply_len = rq->sense_len; + if (req->bio) { ret = bsg_map_buffer(&job->request_payload, req); if (ret) -- 2.12.2