* [PATCH v3 01/51] core: Introduce the scsi_cmd_to_rq() function
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 02/51] core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request Bart Van Assche
` (49 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, James E.J. Bottomley
The 'request' member of struct scsi_cmnd is superfluous. The struct
request and struct scsi_cmnd data structures are adjacent and hence the
request pointer can be derived easily from a scsi_cmnd pointer. Introduce
a helper function that performs that conversion in a type-safe way. This
patch is the first step towards removing the request member from struct
scsi_cmnd. Making that change has the following advantages:
- This is a performance optimization since adding an offset to a pointer
takes less time than dereferencing a pointer.
- struct scsi_cmnd becomes smaller.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
include/scsi/scsi_cmnd.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index fed024f4c02a..6787670d0d16 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -146,6 +146,12 @@ struct scsi_cmnd {
unsigned int extra_len; /* length of alignment and padding */
};
+/* Variant of blk_mq_rq_from_pdu() that verifies the type of its argument. */
+static inline struct request *scsi_cmd_to_rq(struct scsi_cmnd *scmd)
+{
+ return blk_mq_rq_from_pdu(scmd);
+}
+
/*
* Return the driver private allocation behind the command.
* Only works if cmd_size is set in the host template.
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 02/51] core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 01/51] core: Introduce the scsi_cmd_to_rq() function Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 03/51] sd: " Bart Van Assche
` (48 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/scsi.c | 2 +-
drivers/scsi/scsi_error.c | 14 +++++++-------
drivers/scsi/scsi_lib.c | 28 +++++++++++++++-------------
drivers/scsi/scsi_logging.c | 18 ++++++++++--------
include/scsi/scsi_cmnd.h | 6 ++++--
include/scsi/scsi_device.h | 16 +++++++++-------
6 files changed, 46 insertions(+), 38 deletions(-)
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index e9e2f0e15ac8..7d545223dd59 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -197,7 +197,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
"(result %x)\n", cmd->result));
good_bytes = scsi_bufflen(cmd);
- if (!blk_rq_is_passthrough(cmd->request)) {
+ if (!blk_rq_is_passthrough(scsi_cmd_to_rq(cmd))) {
int old_good_bytes = good_bytes;
drv = scsi_cmd_to_driver(cmd);
if (drv->done)
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index d8fafe77dbbe..5af6d87e83aa 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -242,7 +242,7 @@ scsi_abort_command(struct scsi_cmnd *scmd)
*/
static void scsi_eh_reset(struct scsi_cmnd *scmd)
{
- if (!blk_rq_is_passthrough(scmd->request)) {
+ if (!blk_rq_is_passthrough(scsi_cmd_to_rq(scmd))) {
struct scsi_driver *sdrv = scsi_cmd_to_driver(scmd);
if (sdrv->eh_reset)
sdrv->eh_reset(scmd);
@@ -1188,7 +1188,7 @@ static enum scsi_disposition scsi_request_sense(struct scsi_cmnd *scmd)
static enum scsi_disposition
scsi_eh_action(struct scsi_cmnd *scmd, enum scsi_disposition rtn)
{
- if (!blk_rq_is_passthrough(scmd->request)) {
+ if (!blk_rq_is_passthrough(scsi_cmd_to_rq(scmd))) {
struct scsi_driver *sdrv = scsi_cmd_to_driver(scmd);
if (sdrv->eh_action)
rtn = sdrv->eh_action(scmd, rtn);
@@ -1762,16 +1762,16 @@ int scsi_noretry_cmd(struct scsi_cmnd *scmd)
case DID_TIME_OUT:
goto check_type;
case DID_BUS_BUSY:
- return (scmd->request->cmd_flags & REQ_FAILFAST_TRANSPORT);
+ return scsi_cmd_to_rq(scmd)->cmd_flags & REQ_FAILFAST_TRANSPORT;
case DID_PARITY:
- return (scmd->request->cmd_flags & REQ_FAILFAST_DEV);
+ return scsi_cmd_to_rq(scmd)->cmd_flags & REQ_FAILFAST_DEV;
case DID_ERROR:
if (msg_byte(scmd->result) == COMMAND_COMPLETE &&
status_byte(scmd->result) == RESERVATION_CONFLICT)
return 0;
fallthrough;
case DID_SOFT_ERROR:
- return (scmd->request->cmd_flags & REQ_FAILFAST_DRIVER);
+ return scsi_cmd_to_rq(scmd)->cmd_flags & REQ_FAILFAST_DRIVER;
}
if (status_byte(scmd->result) != CHECK_CONDITION)
@@ -1782,8 +1782,8 @@ int scsi_noretry_cmd(struct scsi_cmnd *scmd)
* assume caller has checked sense and determined
* the check condition was retryable.
*/
- if (scmd->request->cmd_flags & REQ_FAILFAST_DEV ||
- blk_rq_is_passthrough(scmd->request))
+ if (scsi_cmd_to_rq(scmd)->cmd_flags & REQ_FAILFAST_DEV ||
+ blk_rq_is_passthrough(scsi_cmd_to_rq(scmd)))
return 1;
return 0;
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 532304d42f00..2e9598c91cee 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -119,13 +119,15 @@ scsi_set_blocked(struct scsi_cmnd *cmd, int reason)
static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd)
{
- if (cmd->request->rq_flags & RQF_DONTPREP) {
- cmd->request->rq_flags &= ~RQF_DONTPREP;
+ struct request *rq = scsi_cmd_to_rq(cmd);
+
+ if (rq->rq_flags & RQF_DONTPREP) {
+ rq->rq_flags &= ~RQF_DONTPREP;
scsi_mq_uninit_cmd(cmd);
} else {
WARN_ON_ONCE(true);
}
- blk_mq_requeue_request(cmd->request, true);
+ blk_mq_requeue_request(rq, true);
}
/**
@@ -164,7 +166,7 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, bool unbusy)
*/
cmd->result = 0;
- blk_mq_requeue_request(cmd->request, true);
+ blk_mq_requeue_request(scsi_cmd_to_rq(cmd), true);
}
/**
@@ -475,7 +477,7 @@ void scsi_run_host_queues(struct Scsi_Host *shost)
static void scsi_uninit_cmd(struct scsi_cmnd *cmd)
{
- if (!blk_rq_is_passthrough(cmd->request)) {
+ if (!blk_rq_is_passthrough(scsi_cmd_to_rq(cmd))) {
struct scsi_driver *drv = scsi_cmd_to_driver(cmd);
if (drv->uninit_command)
@@ -626,7 +628,7 @@ static void scsi_io_completion_reprep(struct scsi_cmnd *cmd,
static bool scsi_cmd_runtime_exceeced(struct scsi_cmnd *cmd)
{
- struct request *req = cmd->request;
+ struct request *req = scsi_cmd_to_rq(cmd);
unsigned long wait_for;
if (cmd->allowed == SCSI_CMD_RETRIES_NO_LIMIT)
@@ -645,7 +647,7 @@ static bool scsi_cmd_runtime_exceeced(struct scsi_cmnd *cmd)
static void scsi_io_completion_action(struct scsi_cmnd *cmd, int result)
{
struct request_queue *q = cmd->device->request_queue;
- struct request *req = cmd->request;
+ struct request *req = scsi_cmd_to_rq(cmd);
int level = 0;
enum {ACTION_FAIL, ACTION_REPREP, ACTION_RETRY,
ACTION_DELAYED_RETRY} action;
@@ -819,7 +821,7 @@ static int scsi_io_completion_nz_result(struct scsi_cmnd *cmd, int result,
{
bool sense_valid;
bool sense_current = true; /* false implies "deferred sense" */
- struct request *req = cmd->request;
+ struct request *req = scsi_cmd_to_rq(cmd);
struct scsi_sense_hdr sshdr;
sense_valid = scsi_command_normalize_sense(cmd, &sshdr);
@@ -908,7 +910,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
{
int result = cmd->result;
struct request_queue *q = cmd->device->request_queue;
- struct request *req = cmd->request;
+ struct request *req = scsi_cmd_to_rq(cmd);
blk_status_t blk_stat = BLK_STS_OK;
if (unlikely(result)) /* a nz result may or may not be an error */
@@ -979,7 +981,7 @@ static inline bool scsi_cmd_needs_dma_drain(struct scsi_device *sdev,
blk_status_t scsi_alloc_sgtables(struct scsi_cmnd *cmd)
{
struct scsi_device *sdev = cmd->device;
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
unsigned short nr_segs = blk_rq_nr_phys_segments(rq);
struct scatterlist *last_sg = NULL;
blk_status_t ret;
@@ -1108,7 +1110,7 @@ void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd)
{
void *buf = cmd->sense_buffer;
void *prot = cmd->prot_sdb;
- struct request *rq = blk_mq_rq_from_pdu(cmd);
+ struct request *rq = scsi_cmd_to_rq(cmd);
unsigned int flags = cmd->flags & SCMD_PRESERVED_FLAGS;
unsigned long jiffies_at_alloc;
int retries, to_clear;
@@ -1573,12 +1575,12 @@ static blk_status_t scsi_prepare_cmd(struct request *req)
static void scsi_mq_done(struct scsi_cmnd *cmd)
{
- if (unlikely(blk_should_fake_timeout(cmd->request->q)))
+ if (unlikely(blk_should_fake_timeout(scsi_cmd_to_rq(cmd)->q)))
return;
if (unlikely(test_and_set_bit(SCMD_STATE_COMPLETE, &cmd->state)))
return;
trace_scsi_dispatch_cmd_done(cmd);
- blk_mq_complete_request(cmd->request);
+ blk_mq_complete_request(scsi_cmd_to_rq(cmd));
}
static void scsi_mq_put_budget(struct request_queue *q, int budget_token)
diff --git a/drivers/scsi/scsi_logging.c b/drivers/scsi/scsi_logging.c
index 8ea44c6595ef..f0ae55ad0973 100644
--- a/drivers/scsi/scsi_logging.c
+++ b/drivers/scsi/scsi_logging.c
@@ -28,8 +28,9 @@ static void scsi_log_release_buffer(char *bufptr)
static inline const char *scmd_name(const struct scsi_cmnd *scmd)
{
- return scmd->request->rq_disk ?
- scmd->request->rq_disk->disk_name : NULL;
+ struct request *rq = scsi_cmd_to_rq((struct scsi_cmnd *)scmd);
+
+ return rq->rq_disk ? rq->rq_disk->disk_name : NULL;
}
static size_t sdev_format_header(char *logbuf, size_t logbuf_len,
@@ -91,7 +92,7 @@ void scmd_printk(const char *level, const struct scsi_cmnd *scmd,
if (!logbuf)
return;
off = sdev_format_header(logbuf, logbuf_len, scmd_name(scmd),
- scmd->request->tag);
+ scsi_cmd_to_rq((struct scsi_cmnd *)scmd)->tag);
if (off < logbuf_len) {
va_start(args, fmt);
off += vscnprintf(logbuf + off, logbuf_len - off, fmt, args);
@@ -188,7 +189,7 @@ void scsi_print_command(struct scsi_cmnd *cmd)
return;
off = sdev_format_header(logbuf, logbuf_len,
- scmd_name(cmd), cmd->request->tag);
+ scmd_name(cmd), scsi_cmd_to_rq(cmd)->tag);
if (off >= logbuf_len)
goto out_printk;
off += scnprintf(logbuf + off, logbuf_len - off, "CDB: ");
@@ -210,7 +211,7 @@ void scsi_print_command(struct scsi_cmnd *cmd)
off = sdev_format_header(logbuf, logbuf_len,
scmd_name(cmd),
- cmd->request->tag);
+ scsi_cmd_to_rq(cmd)->tag);
if (!WARN_ON(off > logbuf_len - 58)) {
off += scnprintf(logbuf + off, logbuf_len - off,
"CDB[%02x]: ", k);
@@ -373,7 +374,8 @@ EXPORT_SYMBOL(__scsi_print_sense);
/* Normalize and print sense buffer in SCSI command */
void scsi_print_sense(const struct scsi_cmnd *cmd)
{
- scsi_log_print_sense(cmd->device, scmd_name(cmd), cmd->request->tag,
+ scsi_log_print_sense(cmd->device, scmd_name(cmd),
+ scsi_cmd_to_rq((struct scsi_cmnd *)cmd)->tag,
cmd->sense_buffer, SCSI_SENSE_BUFFERSIZE);
}
EXPORT_SYMBOL(scsi_print_sense);
@@ -392,8 +394,8 @@ void scsi_print_result(const struct scsi_cmnd *cmd, const char *msg,
if (!logbuf)
return;
- off = sdev_format_header(logbuf, logbuf_len,
- scmd_name(cmd), cmd->request->tag);
+ off = sdev_format_header(logbuf, logbuf_len, scmd_name(cmd),
+ scsi_cmd_to_rq((struct scsi_cmnd *)cmd)->tag);
if (off >= logbuf_len)
goto out_printk;
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index 6787670d0d16..bd7f73f035be 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -164,7 +164,9 @@ static inline void *scsi_cmd_priv(struct scsi_cmnd *cmd)
/* make sure not to use it with passthrough commands */
static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd)
{
- return *(struct scsi_driver **)cmd->request->rq_disk->private_data;
+ struct request *rq = scsi_cmd_to_rq(cmd);
+
+ return *(struct scsi_driver **)rq->rq_disk->private_data;
}
extern void scsi_finish_command(struct scsi_cmnd *cmd);
@@ -290,7 +292,7 @@ static inline unsigned char scsi_get_prot_type(struct scsi_cmnd *scmd)
static inline sector_t scsi_get_lba(struct scsi_cmnd *scmd)
{
- return blk_rq_pos(scmd->request);
+ return blk_rq_pos(scsi_cmd_to_rq(scmd));
}
static inline unsigned int scsi_prot_interval(struct scsi_cmnd *scmd)
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index ac6ab16abee7..cc91e3be5c0b 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -265,13 +265,15 @@ sdev_prefix_printk(const char *, const struct scsi_device *, const char *,
__printf(3, 4) void
scmd_printk(const char *, const struct scsi_cmnd *, const char *, ...);
-#define scmd_dbg(scmd, fmt, a...) \
- do { \
- if ((scmd)->request->rq_disk) \
- sdev_dbg((scmd)->device, "[%s] " fmt, \
- (scmd)->request->rq_disk->disk_name, ##a);\
- else \
- sdev_dbg((scmd)->device, fmt, ##a); \
+#define scmd_dbg(scmd, fmt, a...) \
+ do { \
+ struct request *__rq = scsi_cmd_to_rq((scmd)); \
+ \
+ if (__rq->rq_disk) \
+ sdev_dbg((scmd)->device, "[%s] " fmt, \
+ __rq->rq_disk->disk_name, ##a); \
+ else \
+ sdev_dbg((scmd)->device, fmt, ##a); \
} while (0)
enum scsi_target_state {
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 03/51] sd: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 01/51] core: Introduce the scsi_cmd_to_rq() function Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 02/51] core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 04/51] sr: " Bart Van Assche
` (47 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/sd.c | 33 +++++++++++++++++----------------
drivers/scsi/sd_zbc.c | 10 +++++-----
2 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index cb3c37d1e009..cb7f8a343b67 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -779,8 +779,9 @@ static unsigned int sd_prot_flag_mask(unsigned int prot_op)
static unsigned char sd_setup_protect_cmnd(struct scsi_cmnd *scmd,
unsigned int dix, unsigned int dif)
{
- struct bio *bio = scmd->request->bio;
- unsigned int prot_op = sd_prot_op(rq_data_dir(scmd->request), dix, dif);
+ struct request *rq = scsi_cmd_to_rq(scmd);
+ struct bio *bio = rq->bio;
+ unsigned int prot_op = sd_prot_op(rq_data_dir(rq), dix, dif);
unsigned int protect = 0;
if (dix) { /* DIX Type 0, 1, 2, 3 */
@@ -871,7 +872,7 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
static blk_status_t sd_setup_unmap_cmnd(struct scsi_cmnd *cmd)
{
struct scsi_device *sdp = cmd->device;
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq));
u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq));
@@ -907,7 +908,7 @@ static blk_status_t sd_setup_write_same16_cmnd(struct scsi_cmnd *cmd,
bool unmap)
{
struct scsi_device *sdp = cmd->device;
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq));
u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq));
@@ -939,7 +940,7 @@ static blk_status_t sd_setup_write_same10_cmnd(struct scsi_cmnd *cmd,
bool unmap)
{
struct scsi_device *sdp = cmd->device;
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq));
u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq));
@@ -969,7 +970,7 @@ static blk_status_t sd_setup_write_same10_cmnd(struct scsi_cmnd *cmd,
static blk_status_t sd_setup_write_zeroes_cmnd(struct scsi_cmnd *cmd)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_device *sdp = cmd->device;
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq));
@@ -1066,7 +1067,7 @@ static void sd_config_write_same(struct scsi_disk *sdkp)
**/
static blk_status_t sd_setup_write_same_cmnd(struct scsi_cmnd *cmd)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_device *sdp = cmd->device;
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
struct bio *bio = rq->bio;
@@ -1115,7 +1116,7 @@ static blk_status_t sd_setup_write_same_cmnd(struct scsi_cmnd *cmd)
static blk_status_t sd_setup_flush_cmnd(struct scsi_cmnd *cmd)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
/* flush requests don't perform I/O, zero the S/G table */
@@ -1213,7 +1214,7 @@ static blk_status_t sd_setup_rw6_cmnd(struct scsi_cmnd *cmd, bool write,
static blk_status_t sd_setup_read_write_cmnd(struct scsi_cmnd *cmd)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_device *sdp = cmd->device;
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
sector_t lba = sectors_to_logical(sdp, blk_rq_pos(rq));
@@ -1327,7 +1328,7 @@ static blk_status_t sd_setup_read_write_cmnd(struct scsi_cmnd *cmd)
static blk_status_t sd_init_command(struct scsi_cmnd *cmd)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
switch (req_op(rq)) {
case REQ_OP_DISCARD:
@@ -1373,7 +1374,7 @@ static blk_status_t sd_init_command(struct scsi_cmnd *cmd)
static void sd_uninit_command(struct scsi_cmnd *SCpnt)
{
- struct request *rq = SCpnt->request;
+ struct request *rq = scsi_cmd_to_rq(SCpnt);
u8 *cmnd;
if (rq->rq_flags & RQF_SPECIAL_PAYLOAD)
@@ -1906,7 +1907,7 @@ static const struct block_device_operations sd_fops = {
**/
static void sd_eh_reset(struct scsi_cmnd *scmd)
{
- struct scsi_disk *sdkp = scsi_disk(scmd->request->rq_disk);
+ struct scsi_disk *sdkp = scsi_disk(scsi_cmd_to_rq(scmd)->rq_disk);
/* New SCSI EH run, reset gate variable */
sdkp->ignore_medium_access_errors = false;
@@ -1926,7 +1927,7 @@ static void sd_eh_reset(struct scsi_cmnd *scmd)
**/
static int sd_eh_action(struct scsi_cmnd *scmd, int eh_disp)
{
- struct scsi_disk *sdkp = scsi_disk(scmd->request->rq_disk);
+ struct scsi_disk *sdkp = scsi_disk(scsi_cmd_to_rq(scmd)->rq_disk);
struct scsi_device *sdev = scmd->device;
if (!scsi_device_online(sdev) ||
@@ -1967,7 +1968,7 @@ static int sd_eh_action(struct scsi_cmnd *scmd, int eh_disp)
static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)
{
- struct request *req = scmd->request;
+ struct request *req = scsi_cmd_to_rq(scmd);
struct scsi_device *sdev = scmd->device;
unsigned int transferred, good_bytes;
u64 start_lba, end_lba, bad_lba;
@@ -2022,8 +2023,8 @@ static int sd_done(struct scsi_cmnd *SCpnt)
unsigned int sector_size = SCpnt->device->sector_size;
unsigned int resid;
struct scsi_sense_hdr sshdr;
- struct scsi_disk *sdkp = scsi_disk(SCpnt->request->rq_disk);
- struct request *req = SCpnt->request;
+ struct request *req = scsi_cmd_to_rq(SCpnt);
+ struct scsi_disk *sdkp = scsi_disk(req->rq_disk);
int sense_valid = 0;
int sense_deferred = 0;
diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
index e45d8d94574c..d2afaa11e2ee 100644
--- a/drivers/scsi/sd_zbc.c
+++ b/drivers/scsi/sd_zbc.c
@@ -244,7 +244,7 @@ int sd_zbc_report_zones(struct gendisk *disk, sector_t sector,
static blk_status_t sd_zbc_cmnd_checks(struct scsi_cmnd *cmd)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
sector_t sector = blk_rq_pos(rq);
@@ -322,7 +322,7 @@ static void sd_zbc_update_wp_offset_workfn(struct work_struct *work)
blk_status_t sd_zbc_prepare_zone_append(struct scsi_cmnd *cmd, sector_t *lba,
unsigned int nr_blocks)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
unsigned int wp_offset, zno = blk_rq_zone_no(rq);
unsigned long flags;
@@ -387,7 +387,7 @@ blk_status_t sd_zbc_prepare_zone_append(struct scsi_cmnd *cmd, sector_t *lba,
blk_status_t sd_zbc_setup_zone_mgmt_cmnd(struct scsi_cmnd *cmd,
unsigned char op, bool all)
{
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
sector_t sector = blk_rq_pos(rq);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
sector_t block = sectors_to_logical(sdkp->device, sector);
@@ -443,7 +443,7 @@ static unsigned int sd_zbc_zone_wp_update(struct scsi_cmnd *cmd,
unsigned int good_bytes)
{
int result = cmd->result;
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
unsigned int zno = blk_rq_zone_no(rq);
enum req_opf op = req_op(rq);
@@ -517,7 +517,7 @@ unsigned int sd_zbc_complete(struct scsi_cmnd *cmd, unsigned int good_bytes,
struct scsi_sense_hdr *sshdr)
{
int result = cmd->result;
- struct request *rq = cmd->request;
+ struct request *rq = scsi_cmd_to_rq(cmd);
if (op_is_zone_mgmt(req_op(rq)) &&
result &&
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 04/51] sr: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (2 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 03/51] sd: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 05/51] scsi_transport_fc: " Bart Van Assche
` (46 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, Jens Axboe, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/sr.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index e4633b84c556..439e8198a528 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -326,7 +326,8 @@ static int sr_done(struct scsi_cmnd *SCpnt)
int good_bytes = (result == 0 ? this_count : 0);
int block_sectors = 0;
long error_sector;
- struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
+ struct request *rq = scsi_cmd_to_rq(SCpnt);
+ struct scsi_cd *cd = scsi_cd(rq->rq_disk);
#ifdef DEBUG
scmd_printk(KERN_INFO, SCpnt, "done: %x\n", result);
@@ -348,16 +349,14 @@ static int sr_done(struct scsi_cmnd *SCpnt)
break;
error_sector =
get_unaligned_be32(&SCpnt->sense_buffer[3]);
- if (SCpnt->request->bio != NULL)
- block_sectors =
- bio_sectors(SCpnt->request->bio);
+ if (rq->bio != NULL)
+ block_sectors = bio_sectors(rq->bio);
if (block_sectors < 4)
block_sectors = 4;
if (cd->device->sector_size == 2048)
error_sector <<= 2;
error_sector &= ~(block_sectors - 1);
- good_bytes = (error_sector -
- blk_rq_pos(SCpnt->request)) << 9;
+ good_bytes = (error_sector - blk_rq_pos(rq)) << 9;
if (good_bytes < 0 || good_bytes >= this_count)
good_bytes = 0;
/*
@@ -389,7 +388,7 @@ static blk_status_t sr_init_command(struct scsi_cmnd *SCpnt)
{
int block = 0, this_count, s_size;
struct scsi_cd *cd;
- struct request *rq = SCpnt->request;
+ struct request *rq = scsi_cmd_to_rq(SCpnt);
blk_status_t ret;
ret = scsi_alloc_sgtables(SCpnt);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 05/51] scsi_transport_fc: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (3 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 04/51] sr: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 06/51] scsi_transport_spi: " Bart Van Assche
` (45 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/scsi_transport_fc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index 49748cd817a5..60e406bcf42a 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -3804,7 +3804,7 @@ bool fc_eh_should_retry_cmd(struct scsi_cmnd *scmd)
struct fc_rport *rport = starget_to_rport(scsi_target(scmd->device));
if ((rport->port_state != FC_PORTSTATE_ONLINE) &&
- (scmd->request->cmd_flags & REQ_FAILFAST_TRANSPORT)) {
+ (scsi_cmd_to_rq(scmd)->cmd_flags & REQ_FAILFAST_TRANSPORT)) {
set_host_byte(scmd, DID_TRANSPORT_MARGINAL);
return false;
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 06/51] scsi_transport_spi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (4 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 05/51] scsi_transport_fc: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 07/51] ata: " Bart Van Assche
` (44 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/scsi_transport_spi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c
index c37dd15d16d2..10f98fc83854 100644
--- a/drivers/scsi/scsi_transport_spi.c
+++ b/drivers/scsi/scsi_transport_spi.c
@@ -1230,7 +1230,7 @@ int spi_populate_tag_msg(unsigned char *msg, struct scsi_cmnd *cmd)
{
if (cmd->flags & SCMD_TAGGED) {
*msg++ = SIMPLE_QUEUE_TAG;
- *msg++ = cmd->request->tag;
+ *msg++ = scsi_cmd_to_rq(cmd)->tag;
return 2;
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 07/51] ata: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (5 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 06/51] scsi_transport_spi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 08/51] RDMA/iser: " Bart Van Assche
` (43 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Jens Axboe,
Hannes Reinecke, Ming Lei
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/ata/libata-eh.c | 5 ++---
drivers/ata/libata-scsi.c | 10 +++++-----
drivers/ata/pata_falcon.c | 4 ++--
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index bb3637762985..bf9c4b6c5c3d 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -912,7 +912,7 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc)
* Note that ATA_QCFLAG_FAILED is unconditionally set after
* this function completes.
*/
- blk_abort_request(qc->scsicmd->request);
+ blk_abort_request(scsi_cmd_to_rq(qc->scsicmd));
}
/**
@@ -1893,8 +1893,7 @@ static inline int ata_eh_worth_retry(struct ata_queued_cmd *qc)
*/
static inline bool ata_eh_quiet(struct ata_queued_cmd *qc)
{
- if (qc->scsicmd &&
- qc->scsicmd->request->rq_flags & RQF_QUIET)
+ if (qc->scsicmd && scsi_cmd_to_rq(qc->scsicmd)->rq_flags & RQF_QUIET)
qc->flags |= ATA_QCFLAG_QUIET;
return qc->flags & ATA_QCFLAG_QUIET;
}
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index fd8b6febbf70..debc78f653c1 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -627,7 +627,7 @@ static struct ata_queued_cmd *ata_scsi_qc_new(struct ata_device *dev,
{
struct ata_queued_cmd *qc;
- qc = ata_qc_new_init(dev, cmd->request->tag);
+ qc = ata_qc_new_init(dev, scsi_cmd_to_rq(cmd)->tag);
if (qc) {
qc->scsicmd = cmd;
qc->scsidone = cmd->scsi_done;
@@ -635,7 +635,7 @@ static struct ata_queued_cmd *ata_scsi_qc_new(struct ata_device *dev,
qc->sg = scsi_sglist(cmd);
qc->n_elem = scsi_sg_count(cmd);
- if (cmd->request->rq_flags & RQF_QUIET)
+ if (scsi_cmd_to_rq(cmd)->rq_flags & RQF_QUIET)
qc->flags |= ATA_QCFLAG_QUIET;
} else {
cmd->result = (DID_OK << 16) | (QUEUE_FULL << 1);
@@ -1497,7 +1497,7 @@ static unsigned int ata_scsi_verify_xlat(struct ata_queued_cmd *qc)
static bool ata_check_nblocks(struct scsi_cmnd *scmd, u32 n_blocks)
{
- struct request *rq = scmd->request;
+ struct request *rq = scsi_cmd_to_rq(scmd);
u32 req_blocks;
if (!blk_rq_is_passthrough(rq))
@@ -1532,7 +1532,7 @@ static unsigned int ata_scsi_rw_xlat(struct ata_queued_cmd *qc)
{
struct scsi_cmnd *scmd = qc->scsicmd;
const u8 *cdb = scmd->cmnd;
- struct request *rq = scmd->request;
+ struct request *rq = scsi_cmd_to_rq(scmd);
int class = IOPRIO_PRIO_CLASS(req_get_ioprio(rq));
unsigned int tf_flags = 0;
u64 block;
@@ -3182,7 +3182,7 @@ static unsigned int ata_scsi_write_same_xlat(struct ata_queued_cmd *qc)
* as it modifies the DATA OUT buffer, which would corrupt user
* memory for SG_IO commands.
*/
- if (unlikely(blk_rq_is_passthrough(scmd->request)))
+ if (unlikely(blk_rq_is_passthrough(scsi_cmd_to_rq(scmd))))
goto invalid_opcode;
if (unlikely(scmd->cmd_len < 16)) {
diff --git a/drivers/ata/pata_falcon.c b/drivers/ata/pata_falcon.c
index 27b0952fde6b..154e3577878b 100644
--- a/drivers/ata/pata_falcon.c
+++ b/drivers/ata/pata_falcon.c
@@ -50,8 +50,8 @@ static unsigned int pata_falcon_data_xfer(struct ata_queued_cmd *qc,
struct scsi_cmnd *cmd = qc->scsicmd;
bool swap = 1;
- if (dev->class == ATA_DEV_ATA && cmd && cmd->request &&
- !blk_rq_is_passthrough(cmd->request))
+ if (dev->class == ATA_DEV_ATA && cmd &&
+ !blk_rq_is_passthrough(scsi_cmd_to_rq(cmd)))
swap = 0;
/* Transfer multiple of 2 bytes */
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 08/51] RDMA/iser: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (6 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 07/51] ata: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 8:46 ` Max Gurtovoy
2021-05-24 3:08 ` [PATCH v3 09/51] RDMA/srp: " Bart Van Assche
` (42 subsequent siblings)
50 siblings, 1 reply; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Sagi Grimberg,
Max Gurtovoy, Doug Ledford, Jason Gunthorpe
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/infiniband/ulp/iser/iser_memory.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index afec40da9b58..9776b755d848 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -159,7 +159,7 @@ iser_set_dif_domain(struct scsi_cmnd *sc, struct ib_sig_domain *domain)
{
domain->sig_type = IB_SIG_TYPE_T10_DIF;
domain->sig.dif.pi_interval = scsi_prot_interval(sc);
- domain->sig.dif.ref_tag = t10_pi_ref_tag(sc->request);
+ domain->sig.dif.ref_tag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
/*
* At the moment we hard code those, but in the future
* we will take them from sc.
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [PATCH v3 08/51] RDMA/iser: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 ` [PATCH v3 08/51] RDMA/iser: " Bart Van Assche
@ 2021-05-24 8:46 ` Max Gurtovoy
0 siblings, 0 replies; 55+ messages in thread
From: Max Gurtovoy @ 2021-05-24 8:46 UTC (permalink / raw)
To: Bart Van Assche, Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Sagi Grimberg, Doug Ledford,
Jason Gunthorpe
On 5/24/2021 6:08 AM, Bart Van Assche wrote:
> Prepare for removal of the request pointer by using scsi_cmd_to_rq()
> instead. This patch does not change any functionality.
>
> Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/infiniband/ulp/iser/iser_memory.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
> index afec40da9b58..9776b755d848 100644
> --- a/drivers/infiniband/ulp/iser/iser_memory.c
> +++ b/drivers/infiniband/ulp/iser/iser_memory.c
> @@ -159,7 +159,7 @@ iser_set_dif_domain(struct scsi_cmnd *sc, struct ib_sig_domain *domain)
> {
> domain->sig_type = IB_SIG_TYPE_T10_DIF;
> domain->sig.dif.pi_interval = scsi_prot_interval(sc);
> - domain->sig.dif.ref_tag = t10_pi_ref_tag(sc->request);
> + domain->sig.dif.ref_tag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
> /*
> * At the moment we hard code those, but in the future
> * we will take them from sc.
Looks good,
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
^ permalink raw reply [flat|nested] 55+ messages in thread
* [PATCH v3 09/51] RDMA/srp: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (7 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 08/51] RDMA/iser: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 10/51] zfcp: " Bart Van Assche
` (41 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Doug Ledford,
Jason Gunthorpe
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/infiniband/ulp/srp/ib_srp.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 31f8aa2c40ed..e3a7ee8d451d 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2182,8 +2182,8 @@ static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd)
if (unlikely(scmnd->result))
goto err;
- WARN_ON_ONCE(scmnd->request->tag < 0);
- tag = blk_mq_unique_tag(scmnd->request);
+ WARN_ON_ONCE(scsi_cmd_to_rq(scmnd)->tag < 0);
+ tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmnd));
ch = &target->ch[blk_mq_unique_tag_to_hwq(tag)];
idx = blk_mq_unique_tag_to_tag(tag);
WARN_ONCE(idx >= target->req_ring_size, "%s: tag %#x: idx %d >= %d\n",
@@ -2814,7 +2814,7 @@ static int srp_abort(struct scsi_cmnd *scmnd)
if (!req)
return SUCCESS;
- tag = blk_mq_unique_tag(scmnd->request);
+ tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmnd));
ch_idx = blk_mq_unique_tag_to_hwq(tag);
if (WARN_ON_ONCE(ch_idx >= target->ch_count))
return SUCCESS;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 10/51] zfcp: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (8 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 09/51] RDMA/srp: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 11/51] 53c700: " Bart Van Assche
` (40 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Benjamin Block,
Steffen Maier, Heiko Carstens, Vasily Gorbik,
Christian Borntraeger
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Acked-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/s390/scsi/zfcp_fsf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 2e4804ef2fb9..9e3f37b4423d 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -2377,7 +2377,7 @@ static void zfcp_fsf_req_trace(struct zfcp_fsf_req *req, struct scsi_cmnd *scsi)
}
}
- blk_add_driver_data(scsi->request, &blktrc, sizeof(blktrc));
+ blk_add_driver_data(scsi_cmd_to_rq(scsi), &blktrc, sizeof(blktrc));
}
/**
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 11/51] 53c700: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (9 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 10/51] zfcp: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 12/51] NCR5380: " Bart Van Assche
` (39 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/53c700.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index 77ccb96e5ed4..4bff29169f19 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -1823,7 +1823,7 @@ NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *)
if ((hostdata->tag_negotiated & (1<<scmd_id(SCp))) &&
SCp->device->simple_tags) {
- slot->tag = SCp->request->tag;
+ slot->tag = scsi_cmd_to_rq(SCp)->tag;
CDEBUG(KERN_DEBUG, SCp, "sending out tag %d, slot %p\n",
slot->tag, slot);
} else {
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 12/51] NCR5380: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (10 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 11/51] 53c700: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 13/51] aacraid: " Bart Van Assche
` (38 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Finn Thain,
Michael Schmitz, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/NCR5380.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 2ddbcaa667d1..47502f63a167 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c
@@ -778,7 +778,7 @@ static void NCR5380_dma_complete(struct Scsi_Host *instance)
}
#ifdef CONFIG_SUN3
- if ((sun3scsi_dma_finish(rq_data_dir(hostdata->connected->request)))) {
+ if ((sun3scsi_dma_finish(rq_data_dir(scsi_cmd_to_rq(hostdata->connected))))) {
pr_err("scsi%d: overrun in UDC counter -- not prepared to deal with this!\n",
instance->host_no);
BUG();
@@ -1710,7 +1710,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
count = sun3scsi_dma_xfer_len(hostdata, cmd);
if (count > 0) {
- if (rq_data_dir(cmd->request))
+ if (rq_data_dir(scsi_cmd_to_rq(cmd)))
sun3scsi_dma_send_setup(hostdata,
cmd->SCp.ptr, count);
else
@@ -2158,7 +2158,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance)
count = sun3scsi_dma_xfer_len(hostdata, tmp);
if (count > 0) {
- if (rq_data_dir(tmp->request))
+ if (rq_data_dir(scsi_cmd_to_rq(tmp)))
sun3scsi_dma_send_setup(hostdata,
tmp->SCp.ptr, count);
else
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 13/51] aacraid: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (11 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 12/51] NCR5380: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 14/51] advansys: " Bart Van Assche
` (37 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
Adaptec OEM Raid Solutions, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/aacraid/aachba.c | 2 +-
drivers/scsi/aacraid/commsup.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 46b8dffce2dd..567d305d3ab4 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -1505,7 +1505,7 @@ static struct aac_srb * aac_scsi_common(struct fib * fib, struct scsi_cmnd * cmd
srbcmd->id = cpu_to_le32(scmd_id(cmd));
srbcmd->lun = cpu_to_le32(cmd->device->lun);
srbcmd->flags = cpu_to_le32(flag);
- timeout = cmd->request->timeout/HZ;
+ timeout = scsi_cmd_to_rq(cmd)->timeout / HZ;
if (timeout == 0)
timeout = (dev->sa_firmware ? AAC_SA_TIMEOUT : AAC_ARC_TIMEOUT);
srbcmd->timeout = cpu_to_le32(timeout); // timeout in seconds
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
index 54eb4d41bc2c..deb32c9f4b3e 100644
--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -224,7 +224,7 @@ struct fib *aac_fib_alloc_tag(struct aac_dev *dev, struct scsi_cmnd *scmd)
{
struct fib *fibptr;
- fibptr = &dev->fibs[scmd->request->tag];
+ fibptr = &dev->fibs[scsi_cmd_to_rq(scmd)->tag];
/*
* Null out fields that depend on being zero at the start of
* each I/O
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 14/51] advansys: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (12 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 13/51] aacraid: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 15/51] aha1542: " Bart Van Assche
` (36 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Matthew Wilcox,
Hannes Reinecke, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/advansys.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 800052f10699..dd6355382c62 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -7427,7 +7427,7 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
* Set the srb_tag to the command tag + 1, as
* srb_tag '0' is used internally by the chip.
*/
- srb_tag = scp->request->tag + 1;
+ srb_tag = scsi_cmd_to_rq(scp)->tag + 1;
asc_scsi_q->q2.srb_tag = srb_tag;
/*
@@ -7641,7 +7641,7 @@ static int
adv_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
adv_req_t **adv_reqpp)
{
- u32 srb_tag = scp->request->tag;
+ u32 srb_tag = scsi_cmd_to_rq(scp)->tag;
adv_req_t *reqp;
ADV_SCSI_REQ_Q *scsiqp;
int ret;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 15/51] aha1542: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (13 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 14/51] advansys: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 16/51] bnx2i: " Bart Van Assche
` (35 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/aha1542.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c
index 1210e61afb18..584a59522038 100644
--- a/drivers/scsi/aha1542.c
+++ b/drivers/scsi/aha1542.c
@@ -262,11 +262,12 @@ static void aha1542_free_cmd(struct scsi_cmnd *cmd)
struct aha1542_cmd *acmd = scsi_cmd_priv(cmd);
if (cmd->sc_data_direction == DMA_FROM_DEVICE) {
+ struct request *rq = scsi_cmd_to_rq(cmd);
void *buf = acmd->data_buffer;
struct req_iterator iter;
struct bio_vec bv;
- rq_for_each_segment(bv, cmd->request, iter) {
+ rq_for_each_segment(bv, rq, iter) {
memcpy_to_page(bv.bv_page, bv.bv_offset, buf,
bv.bv_len);
buf += bv.bv_len;
@@ -447,11 +448,12 @@ static int aha1542_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *cmd)
#endif
if (cmd->sc_data_direction == DMA_TO_DEVICE) {
+ struct request *rq = scsi_cmd_to_rq(cmd);
void *buf = acmd->data_buffer;
struct req_iterator iter;
struct bio_vec bv;
- rq_for_each_segment(bv, cmd->request, iter) {
+ rq_for_each_segment(bv, rq, iter) {
memcpy_from_page(buf, bv.bv_page, bv.bv_offset,
bv.bv_len);
buf += bv.bv_len;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 16/51] bnx2i: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (14 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 15/51] aha1542: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 17/51] csiostor: " Bart Van Assche
` (34 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Nilesh Javali,
Manish Rangankar, GR-QLogic-Storage-Upstream,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/bnx2i/bnx2i_hwi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
index 43e8a1dafec0..5521469ce678 100644
--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
@@ -1918,7 +1918,7 @@ static int bnx2i_queue_scsi_cmd_resp(struct iscsi_session *session,
spin_unlock(&session->back_lock);
- p = &per_cpu(bnx2i_percpu, blk_mq_rq_cpu(sc->request));
+ p = &per_cpu(bnx2i_percpu, blk_mq_rq_cpu(scsi_cmd_to_rq(sc)));
spin_lock(&p->p_work_lock);
if (unlikely(!p->iothread)) {
rc = -EINVAL;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 17/51] csiostor: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (15 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 16/51] bnx2i: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 18/51] cxlflash: " Bart Van Assche
` (33 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
James E.J. Bottomley, Colin Ian King, Jiapeng Chong
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/csiostor/csio_scsi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/csiostor/csio_scsi.c b/drivers/scsi/csiostor/csio_scsi.c
index 56b9ad0a1ca0..3b2eb6ce1fcf 100644
--- a/drivers/scsi/csiostor/csio_scsi.c
+++ b/drivers/scsi/csiostor/csio_scsi.c
@@ -1786,7 +1786,7 @@ csio_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmnd)
struct csio_scsi_qset *sqset;
struct fc_rport *rport = starget_to_rport(scsi_target(cmnd->device));
- sqset = &hw->sqset[ln->portid][blk_mq_rq_cpu(cmnd->request)];
+ sqset = &hw->sqset[ln->portid][blk_mq_rq_cpu(scsi_cmd_to_rq(cmnd))];
nr = fc_remote_port_chkready(rport);
if (nr) {
@@ -1989,13 +1989,13 @@ csio_eh_abort_handler(struct scsi_cmnd *cmnd)
csio_info(hw,
"Aborted SCSI command to (%d:%llu) tag %u\n",
cmnd->device->id, cmnd->device->lun,
- cmnd->request->tag);
+ scsi_cmd_to_rq(cmnd)->tag);
return SUCCESS;
} else {
csio_info(hw,
"Failed to abort SCSI command, (%d:%llu) tag %u\n",
cmnd->device->id, cmnd->device->lun,
- cmnd->request->tag);
+ scsi_cmd_to_rq(cmnd)->tag);
return FAILED;
}
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 18/51] cxlflash: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (16 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 17/51] csiostor: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 19/51] dpt_i2o: " Bart Van Assche
` (32 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Manoj N. Kumar,
Matthew R. Ochs, Uma Krishnan, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/cxlflash/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c
index 222593bc2afe..2f1894588e0b 100644
--- a/drivers/scsi/cxlflash/main.c
+++ b/drivers/scsi/cxlflash/main.c
@@ -433,7 +433,7 @@ static u32 cmd_to_target_hwq(struct Scsi_Host *host, struct scsi_cmnd *scp,
hwq = afu->hwq_rr_count++ % afu->num_hwqs;
break;
case HWQ_MODE_TAG:
- tag = blk_mq_unique_tag(scp->request);
+ tag = blk_mq_unique_tag(scsi_cmd_to_rq(scp));
hwq = blk_mq_unique_tag_to_hwq(tag);
break;
case HWQ_MODE_CPU:
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 19/51] dpt_i2o: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (17 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 18/51] cxlflash: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 20/51] fnic: " Bart Van Assche
` (31 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
Adaptec OEM Raid Solutions, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/dpt_i2o.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index a18a4a08f049..7af96d14c9bc 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -652,7 +652,7 @@ static int adpt_abort(struct scsi_cmnd * cmd)
msg[2] = 0;
msg[3]= 0;
/* Add 1 to avoid firmware treating it as invalid command */
- msg[4] = cmd->request->tag + 1;
+ msg[4] = scsi_cmd_to_rq(cmd)->tag + 1;
if (pHba->host)
spin_lock_irq(pHba->host->host_lock);
rcode = adpt_i2o_post_wait(pHba, msg, sizeof(msg), FOREVER);
@@ -2236,7 +2236,7 @@ static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_d
msg[1] = ((0xff<<24)|(HOST_TID<<12)|d->tid);
msg[2] = 0;
/* Add 1 to avoid firmware treating it as invalid command */
- msg[3] = cmd->request->tag + 1;
+ msg[3] = scsi_cmd_to_rq(cmd)->tag + 1;
// Our cards use the transaction context as the tag for queueing
// Adaptec/DPT Private stuff
msg[4] = I2O_CMD_SCSI_EXEC|(DPT_ORGANIZATION_ID<<16);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 20/51] fnic: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (18 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 19/51] dpt_i2o: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 21/51] hisi_sas: " Bart Van Assche
` (30 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Satish Kharat,
Sesidhar Baddela, Karan Tilak Kumar, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/fnic/fnic_scsi.c | 49 +++++++++++++++++------------------
1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index 762cc8bd2653..ee02f5ed90ee 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -107,7 +107,7 @@ static void fnic_cleanup_io(struct fnic *fnic);
static inline spinlock_t *fnic_io_lock_hash(struct fnic *fnic,
struct scsi_cmnd *sc)
{
- u32 hash = sc->request->tag & (FNIC_IO_LOCKS - 1);
+ u32 hash = scsi_cmd_to_rq(sc)->tag & (FNIC_IO_LOCKS - 1);
return &fnic->io_req_lock[hash];
}
@@ -390,7 +390,7 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic,
(rp->flags & FC_RP_FLAGS_RETRY))
exch_flags |= FCPIO_ICMND_SRFLAG_RETRY;
- fnic_queue_wq_copy_desc_icmnd_16(wq, sc->request->tag,
+ fnic_queue_wq_copy_desc_icmnd_16(wq, scsi_cmd_to_rq(sc)->tag,
0, exch_flags, io_req->sgl_cnt,
SCSI_SENSE_BUFFERSIZE,
io_req->sgl_list_pa,
@@ -422,6 +422,7 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic,
*/
static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
{
+ struct request *rq = scsi_cmd_to_rq(sc);
struct fc_lport *lp = shost_priv(sc->device->host);
struct fc_rport *rport;
struct fnic_io_req *io_req = NULL;
@@ -511,8 +512,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
sg_count = scsi_dma_map(sc);
if (sg_count < 0) {
FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
- sc->request->tag, sc, 0, sc->cmnd[0],
- sg_count, CMD_STATE(sc));
+ rq->tag, sc, 0, sc->cmnd[0], sg_count, CMD_STATE(sc));
mempool_free(io_req, fnic->io_req_pool);
goto out;
}
@@ -571,7 +571,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
* refetch the pointer under the lock.
*/
FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
- sc->request->tag, sc, 0, 0, 0,
+ rq->tag, sc, 0, 0, 0,
(((u64)CMD_FLAGS(sc) << 32) | CMD_STATE(sc)));
io_req = (struct fnic_io_req *)CMD_SP(sc);
CMD_SP(sc) = NULL;
@@ -603,8 +603,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
sc->cmnd[5]);
FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
- sc->request->tag, sc, io_req,
- sg_count, cmd_trace,
+ rq->tag, sc, io_req, sg_count, cmd_trace,
(((u64)CMD_FLAGS(sc) >> 32) | CMD_STATE(sc)));
/* if only we issued IO, will we have the io lock */
@@ -1364,6 +1363,7 @@ int fnic_wq_copy_cmpl_handler(struct fnic *fnic, int copy_work_to_do)
static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
bool reserved)
{
+ struct request *rq = scsi_cmd_to_rq(sc);
struct fnic *fnic = data;
struct fnic_io_req *io_req;
unsigned long flags = 0;
@@ -1371,7 +1371,7 @@ static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
unsigned long start_time = 0;
struct fnic_stats *fnic_stats = &fnic->fnic_stats;
- io_lock = fnic_io_lock_tag(fnic, sc->request->tag);
+ io_lock = fnic_io_lock_tag(fnic, rq->tag);
spin_lock_irqsave(io_lock, flags);
io_req = (struct fnic_io_req *)CMD_SP(sc);
@@ -1413,7 +1413,7 @@ static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
sc->result = DID_TRANSPORT_DISRUPTED << 16;
FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
"fnic_cleanup_io: tag:0x%x : sc:0x%p duration = %lu DID_TRANSPORT_DISRUPTED\n",
- sc->request->tag, sc, (jiffies - start_time));
+ rq->tag, sc, jiffies - start_time);
if (atomic64_read(&fnic->io_cmpl_skip))
atomic64_dec(&fnic->io_cmpl_skip);
@@ -1425,10 +1425,10 @@ static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
if (!(CMD_FLAGS(sc) & FNIC_IO_ISSUED))
shost_printk(KERN_ERR, fnic->lport->host,
"Calling done for IO not issued to fw: tag:0x%x sc:0x%p\n",
- sc->request->tag, sc);
+ rq->tag, sc);
FNIC_TRACE(fnic_cleanup_io,
- sc->device->host->host_no, sc->request->tag, sc,
+ sc->device->host->host_no, rq->tag, sc,
jiffies_to_msecs(jiffies - start_time),
0, ((u64)sc->cmnd[0] << 32 |
(u64)sc->cmnd[2] << 24 |
@@ -1566,7 +1566,7 @@ static bool fnic_rport_abort_io_iter(struct scsi_cmnd *sc, void *data,
{
struct fnic_rport_abort_io_iter_data *iter_data = data;
struct fnic *fnic = iter_data->fnic;
- int abt_tag = sc->request->tag;
+ int abt_tag = scsi_cmd_to_rq(sc)->tag;
struct fnic_io_req *io_req;
spinlock_t *io_lock;
unsigned long flags;
@@ -1727,6 +1727,7 @@ void fnic_terminate_rport_io(struct fc_rport *rport)
*/
int fnic_abort_cmd(struct scsi_cmnd *sc)
{
+ struct request *rq = scsi_cmd_to_rq(sc);
struct fc_lport *lp;
struct fnic *fnic;
struct fnic_io_req *io_req = NULL;
@@ -1741,7 +1742,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
struct abort_stats *abts_stats;
struct terminate_stats *term_stats;
enum fnic_ioreq_state old_ioreq_state;
- int tag;
+ int tag = rq->tag;
unsigned long abt_issued_time;
DECLARE_COMPLETION_ONSTACK(tm_done);
@@ -1757,7 +1758,6 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
term_stats = &fnic->fnic_stats.term_stats;
rport = starget_to_rport(scsi_target(sc->device));
- tag = sc->request->tag;
FNIC_SCSI_DBG(KERN_DEBUG,
fnic->lport->host,
"Abort Cmd called FCID 0x%x, LUN 0x%llx TAG %x flags %x\n",
@@ -1842,7 +1842,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
/* Now queue the abort command to firmware */
int_to_scsilun(sc->device->lun, &fc_lun);
- if (fnic_queue_abort_io_req(fnic, sc->request->tag, task_req,
+ if (fnic_queue_abort_io_req(fnic, rq->tag, task_req,
fc_lun.scsi_lun, io_req)) {
spin_lock_irqsave(io_lock, flags);
if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING)
@@ -1943,8 +1943,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
}
fnic_abort_cmd_end:
- FNIC_TRACE(fnic_abort_cmd, sc->device->host->host_no,
- sc->request->tag, sc,
+ FNIC_TRACE(fnic_abort_cmd, sc->device->host->host_no, rq->tag, sc,
jiffies_to_msecs(jiffies - start_time),
0, ((u64)sc->cmnd[0] << 32 |
(u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
@@ -1994,7 +1993,7 @@ static inline int fnic_queue_dr_io_req(struct fnic *fnic,
/* fill in the lun info */
int_to_scsilun(sc->device->lun, &fc_lun);
- fnic_queue_wq_copy_desc_itmf(wq, sc->request->tag | FNIC_TAG_DEV_RST,
+ fnic_queue_wq_copy_desc_itmf(wq, scsi_cmd_to_rq(sc)->tag | FNIC_TAG_DEV_RST,
0, FCPIO_ITMF_LUN_RESET, SCSI_NO_TAG,
fc_lun.scsi_lun, io_req->port_id,
fnic->config.ra_tov, fnic->config.ed_tov);
@@ -2025,7 +2024,7 @@ static bool fnic_pending_aborts_iter(struct scsi_cmnd *sc,
struct fnic_pending_aborts_iter_data *iter_data = data;
struct fnic *fnic = iter_data->fnic;
struct scsi_device *lun_dev = iter_data->lun_dev;
- int abt_tag = sc->request->tag;
+ int abt_tag = scsi_cmd_to_rq(sc)->tag;
struct fnic_io_req *io_req;
spinlock_t *io_lock;
unsigned long flags;
@@ -2206,14 +2205,15 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
static inline int
fnic_scsi_host_start_tag(struct fnic *fnic, struct scsi_cmnd *sc)
{
- struct request_queue *q = sc->request->q;
+ struct request *rq = scsi_cmd_to_rq(sc);
+ struct request_queue *q = rq->q;
struct request *dummy;
dummy = blk_mq_alloc_request(q, REQ_OP_WRITE, BLK_MQ_REQ_NOWAIT);
if (IS_ERR(dummy))
return SCSI_NO_TAG;
- sc->tag = sc->request->tag = dummy->tag;
+ sc->tag = rq->tag = dummy->tag;
sc->host_scribble = (unsigned char *)dummy;
return dummy->tag;
@@ -2238,6 +2238,7 @@ fnic_scsi_host_end_tag(struct fnic *fnic, struct scsi_cmnd *sc)
*/
int fnic_device_reset(struct scsi_cmnd *sc)
{
+ struct request *rq = scsi_cmd_to_rq(sc);
struct fc_lport *lp;
struct fnic *fnic;
struct fnic_io_req *io_req = NULL;
@@ -2250,7 +2251,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
struct scsi_lun fc_lun;
struct fnic_stats *fnic_stats;
struct reset_stats *reset_stats;
- int tag = 0;
+ int tag = rq->tag;
DECLARE_COMPLETION_ONSTACK(tm_done);
int tag_gen_flag = 0; /*to track tags allocated by fnic driver*/
bool new_sc = 0;
@@ -2284,7 +2285,6 @@ int fnic_device_reset(struct scsi_cmnd *sc)
CMD_FLAGS(sc) = FNIC_DEVICE_RESET;
/* Allocate tag if not present */
- tag = sc->request->tag;
if (unlikely(tag < 0)) {
/*
* Really should fix the midlayer to pass in a proper
@@ -2458,8 +2458,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
}
fnic_device_reset_end:
- FNIC_TRACE(fnic_device_reset, sc->device->host->host_no,
- sc->request->tag, sc,
+ FNIC_TRACE(fnic_device_reset, sc->device->host->host_no, rq->tag, sc,
jiffies_to_msecs(jiffies - start_time),
0, ((u64)sc->cmnd[0] << 32 |
(u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 21/51] hisi_sas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (19 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 20/51] fnic: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 22/51] hpsa: " Bart Van Assche
` (29 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, John Garry,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Acked-by: John Garry <john.garry@huawei.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 4 ++--
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
index 5a204074099c..b9337aa6cf8b 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -185,7 +185,7 @@ static int hisi_sas_slot_index_alloc(struct hisi_hba *hisi_hba,
void *bitmap = hisi_hba->slot_index_tags;
if (scsi_cmnd)
- return scsi_cmnd->request->tag;
+ return scsi_cmd_to_rq(scsi_cmnd)->tag;
spin_lock(&hisi_hba->lock);
index = find_next_zero_bit(bitmap, hisi_hba->slot_index_count,
@@ -449,7 +449,7 @@ static int hisi_sas_task_prep(struct sas_task *task,
unsigned int dq_index;
u32 blk_tag;
- blk_tag = blk_mq_unique_tag(scmd->request);
+ blk_tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd));
dq_index = blk_mq_unique_tag_to_hwq(blk_tag);
*dq_pointer = dq = &hisi_hba->dq[dq_index];
} else {
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
index 499c770d405c..6ef7e950226c 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
@@ -1153,7 +1153,7 @@ static void fill_prot_v3_hw(struct scsi_cmnd *scsi_cmnd,
{
unsigned char prot_op = scsi_get_prot_op(scsi_cmnd);
unsigned int interval = scsi_prot_interval(scsi_cmnd);
- u32 lbrt_chk_val = t10_pi_ref_tag(scsi_cmnd->request);
+ u32 lbrt_chk_val = t10_pi_ref_tag(scsi_cmd_to_rq(scsi_cmnd));
switch (prot_op) {
case SCSI_PROT_READ_INSERT:
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 22/51] hpsa: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (20 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 21/51] hisi_sas: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 23/51] ibmvfc: " Bart Van Assche
` (28 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Don Brace,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/hpsa.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index f135a10f582b..3faa87fa296a 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -5686,7 +5686,7 @@ static int hpsa_scsi_queue_command(struct Scsi_Host *sh, struct scsi_cmnd *cmd)
/* Get the ptr to our adapter structure out of cmd->host. */
h = sdev_to_hba(cmd->device);
- BUG_ON(cmd->request->tag < 0);
+ BUG_ON(scsi_cmd_to_rq(cmd)->tag < 0);
dev = cmd->device->hostdata;
if (!dev) {
@@ -5729,7 +5729,7 @@ static int hpsa_scsi_queue_command(struct Scsi_Host *sh, struct scsi_cmnd *cmd)
* and is therefore a brand-new command.
*/
if (likely(cmd->retries == 0 &&
- !blk_rq_is_passthrough(cmd->request) &&
+ !blk_rq_is_passthrough(scsi_cmd_to_rq(cmd)) &&
h->acciopath_status)) {
/* Submit with the retry_pending flag unset. */
rc = hpsa_ioaccel_submit(h, c, cmd, false);
@@ -5894,7 +5894,7 @@ static int hpsa_scsi_add_host(struct ctlr_info *h)
*/
static int hpsa_get_cmd_index(struct scsi_cmnd *scmd)
{
- int idx = scmd->request->tag;
+ int idx = scsi_cmd_to_rq(scmd)->tag;
if (idx < 0)
return idx;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 23/51] ibmvfc: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (21 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 22/51] hpsa: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 24/51] ibmvscsi: " Bart Van Assche
` (27 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Tyrel Datwyler,
Michael Ellerman, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/ibmvscsi/ibmvfc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index a251dbf630cc..9067ce1611d3 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -1910,7 +1910,7 @@ static int ibmvfc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *cmnd)
struct ibmvfc_cmd *vfc_cmd;
struct ibmvfc_fcp_cmd_iu *iu;
struct ibmvfc_event *evt;
- u32 tag_and_hwq = blk_mq_unique_tag(cmnd->request);
+ u32 tag_and_hwq = blk_mq_unique_tag(scsi_cmd_to_rq(cmnd));
u16 hwq = blk_mq_unique_tag_to_hwq(tag_and_hwq);
u16 scsi_channel;
int rc;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 24/51] ibmvscsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (22 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 23/51] ibmvfc: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 25/51] ips: " Bart Van Assche
` (26 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Tyrel Datwyler,
Michael Ellerman, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index e75b0068ad84..d8ed85624bf9 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -1072,7 +1072,7 @@ static int ibmvscsi_queuecommand_lck(struct scsi_cmnd *cmnd,
init_event_struct(evt_struct,
handle_cmd_rsp,
VIOSRP_SRP_FORMAT,
- cmnd->request->timeout/HZ);
+ scsi_cmd_to_rq(cmnd)->timeout / HZ);
evt_struct->cmnd = cmnd;
evt_struct->cmnd_done = done;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 25/51] ips: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (23 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 24/51] ibmvscsi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 26/51] libsas: " Bart Van Assche
` (25 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
Adaptec OEM Raid Solutions, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/ips.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
index bc33d54a4011..66152888ad8c 100644
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -3733,7 +3733,7 @@ ips_send_cmd(ips_ha_t * ha, ips_scb_t * scb)
scb->cmd.dcdb.segment_4G = 0;
scb->cmd.dcdb.enhanced_sg = 0;
- TimeOut = scb->scsi_cmd->request->timeout;
+ TimeOut = scsi_cmd_to_rq(scb->scsi_cmd)->timeout;
if (ha->subsys->param[4] & 0x00100000) { /* If NEW Tape DCDB is Supported */
if (!scb->sg_len) {
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 26/51] libsas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (24 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 25/51] ips: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 27/51] lpfc: " Bart Van Assche
` (24 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, John Garry,
James E.J. Bottomley, Jason Yan, Luo Jiaxing,
Gustavo A. R. Silva, Jolly Shah, Liu Shixin
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Tested-by: John Garry <john.garry@huawei.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/libsas/sas_ata.c | 2 +-
drivers/scsi/libsas/sas_scsi_host.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index e9a86128f1f1..d007a5714923 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -595,7 +595,7 @@ void sas_ata_task_abort(struct sas_task *task)
/* Bounce SCSI-initiated commands to the SCSI EH */
if (qc->scsicmd) {
- blk_abort_request(qc->scsicmd->request);
+ blk_abort_request(scsi_cmd_to_rq(qc->scsicmd));
return;
}
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 1bf939818c98..b6cd9d87fbd0 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -908,7 +908,7 @@ void sas_task_abort(struct sas_task *task)
if (dev_is_sata(task->dev))
sas_ata_task_abort(task);
else
- blk_abort_request(sc->request);
+ blk_abort_request(scsi_cmd_to_rq(sc));
}
void sas_target_destroy(struct scsi_target *starget)
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 27/51] lpfc: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (25 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 26/51] libsas: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 28/51] megaraid: " Bart Van Assche
` (23 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James Smart,
Dick Kennedy, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/lpfc/lpfc_scsi.c | 63 +++++++++++++++++------------------
1 file changed, 31 insertions(+), 32 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index b8bb012abb33..795b0305fbdc 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -674,7 +674,7 @@ lpfc_get_scsi_buf_s4(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp,
cpu = raw_smp_processor_id();
if (cmnd && phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_HDWQ) {
- tag = blk_mq_unique_tag(cmnd->request);
+ tag = blk_mq_unique_tag(scsi_cmd_to_rq(cmnd));
idx = blk_mq_unique_tag_to_hwq(tag);
} else {
idx = phba->sli4_hba.cpu_map[cpu].hdwq;
@@ -1037,7 +1037,7 @@ lpfc_bg_err_inject(struct lpfc_hba *phba, struct scsi_cmnd *sc,
return 0;
sgpe = scsi_prot_sglist(sc);
- lba = t10_pi_ref_tag(sc->request);
+ lba = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
if (lba == LPFC_INVALID_REFTAG)
return 0;
@@ -1620,7 +1620,7 @@ lpfc_bg_setup_bpl(struct lpfc_hba *phba, struct scsi_cmnd *sc,
goto out;
/* extract some info from the scsi command for pde*/
- reftag = t10_pi_ref_tag(sc->request);
+ reftag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
if (reftag == LPFC_INVALID_REFTAG)
goto out;
@@ -1783,7 +1783,7 @@ lpfc_bg_setup_bpl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc,
/* extract some info from the scsi command */
blksize = lpfc_cmd_blksize(sc);
- reftag = t10_pi_ref_tag(sc->request);
+ reftag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
if (reftag == LPFC_INVALID_REFTAG)
goto out;
@@ -2014,7 +2014,7 @@ lpfc_bg_setup_sgl(struct lpfc_hba *phba, struct scsi_cmnd *sc,
goto out;
/* extract some info from the scsi command for pde*/
- reftag = t10_pi_ref_tag(sc->request);
+ reftag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
if (reftag == LPFC_INVALID_REFTAG)
goto out;
@@ -2215,7 +2215,7 @@ lpfc_bg_setup_sgl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc,
/* extract some info from the scsi command */
blksize = lpfc_cmd_blksize(sc);
- reftag = t10_pi_ref_tag(sc->request);
+ reftag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
if (reftag == LPFC_INVALID_REFTAG)
goto out;
@@ -2809,7 +2809,7 @@ lpfc_calc_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd)
chk_guard = 1;
src = (struct scsi_dif_tuple *)sg_virt(sgpe);
- start_ref_tag = t10_pi_ref_tag(cmd->request);
+ start_ref_tag = t10_pi_ref_tag(scsi_cmd_to_rq(cmd));
if (start_ref_tag == LPFC_INVALID_REFTAG)
goto out;
start_app_tag = src->app_tag;
@@ -2903,7 +2903,7 @@ lpfc_calc_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd)
phba->bg_guard_err_cnt++;
lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
"9069 BLKGRD: reftag %x grd_tag err %x != %x\n",
- t10_pi_ref_tag(cmd->request),
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
sum, guard_tag);
} else if (err_type == BGS_REFTAG_ERR_MASK) {
@@ -2915,7 +2915,7 @@ lpfc_calc_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd)
phba->bg_reftag_err_cnt++;
lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
"9066 BLKGRD: reftag %x ref_tag err %x != %x\n",
- t10_pi_ref_tag(cmd->request),
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
ref_tag, start_ref_tag);
} else if (err_type == BGS_APPTAG_ERR_MASK) {
@@ -2927,7 +2927,7 @@ lpfc_calc_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd)
phba->bg_apptag_err_cnt++;
lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
"9041 BLKGRD: reftag %x app_tag err %x != %x\n",
- t10_pi_ref_tag(cmd->request),
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
app_tag, start_app_tag);
}
}
@@ -2991,7 +2991,7 @@ lpfc_sli4_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
" 0x%x lba 0x%llx blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
(unsigned long long)scsi_get_lba(cmd),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
}
if (lpfc_bgs_get_reftag_err(bgstat)) {
@@ -3008,7 +3008,7 @@ lpfc_sli4_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
" 0x%x lba 0x%llx blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
(unsigned long long)scsi_get_lba(cmd),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
}
if (lpfc_bgs_get_apptag_err(bgstat)) {
@@ -3025,7 +3025,7 @@ lpfc_sli4_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
" 0x%x lba 0x%llx blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
(unsigned long long)scsi_get_lba(cmd),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
}
if (lpfc_bgs_get_hi_water_mark_present(bgstat)) {
@@ -3069,7 +3069,7 @@ lpfc_sli4_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
" 0x%x lba 0x%llx blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
(unsigned long long)scsi_get_lba(cmd),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
/* Calcuate what type of error it was */
lpfc_calc_bg_err(phba, lpfc_cmd);
@@ -3106,8 +3106,8 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
"9072 BLKGRD: Invalid BG Profile in cmd "
"0x%x reftag 0x%x blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
- t10_pi_ref_tag(cmd->request),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
ret = (-1);
goto out;
}
@@ -3118,8 +3118,8 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
"9073 BLKGRD: Invalid BG PDIF Block in cmd "
"0x%x reftag 0x%x blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
- t10_pi_ref_tag(cmd->request),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
ret = (-1);
goto out;
}
@@ -3136,8 +3136,8 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
"9055 BLKGRD: Guard Tag error in cmd "
"0x%x reftag 0x%x blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
- t10_pi_ref_tag(cmd->request),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
}
if (lpfc_bgs_get_reftag_err(bgstat)) {
@@ -3153,8 +3153,8 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
"9056 BLKGRD: Ref Tag error in cmd "
"0x%x reftag 0x%x blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
- t10_pi_ref_tag(cmd->request),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
}
if (lpfc_bgs_get_apptag_err(bgstat)) {
@@ -3170,8 +3170,8 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
"9061 BLKGRD: App Tag error in cmd "
"0x%x reftag 0x%x blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
- t10_pi_ref_tag(cmd->request),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
}
if (lpfc_bgs_get_hi_water_mark_present(bgstat)) {
@@ -3214,8 +3214,8 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
"9057 BLKGRD: Unknown error in cmd "
"0x%x reftag 0x%x blk cnt 0x%x "
"bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
- t10_pi_ref_tag(cmd->request),
- blk_rq_sectors(cmd->request), bgstat, bghm);
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmd)), bgstat, bghm);
/* Calcuate what type of error it was */
lpfc_calc_bg_err(phba, lpfc_cmd);
@@ -5302,8 +5302,8 @@ lpfc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *cmnd)
"reftag x%x cnt %u pt %x\n",
dif_op_str[scsi_get_prot_op(cmnd)],
cmnd->cmnd[0],
- t10_pi_ref_tag(cmnd->request),
- blk_rq_sectors(cmnd->request),
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmnd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmnd)),
(cmnd->cmnd[1]>>5));
}
err = lpfc_bg_scsi_prep_dma_buf(phba, lpfc_cmd);
@@ -5314,8 +5314,8 @@ lpfc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *cmnd)
"9038 BLKGRD: rcvd PROT_NORMAL cmd: "
"x%x reftag x%x cnt %u pt %x\n",
cmnd->cmnd[0],
- t10_pi_ref_tag(cmnd->request),
- blk_rq_sectors(cmnd->request),
+ t10_pi_ref_tag(scsi_cmd_to_rq(cmnd)),
+ blk_rq_sectors(scsi_cmd_to_rq(cmnd)),
(cmnd->cmnd[1]>>5));
}
err = lpfc_scsi_prep_dma_buf(phba, lpfc_cmd);
@@ -5367,8 +5367,7 @@ lpfc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *cmnd)
bf_get(wqe_tmo,
&lpfc_cmd->cur_iocbq.wqe.generic.wqe_com) :
lpfc_cmd->cur_iocbq.iocb.ulpTimeout,
- (uint32_t)
- (cmnd->request->timeout / 1000));
+ (uint32_t)(scsi_cmd_to_rq(cmnd)->timeout / 1000));
goto out_host_busy_free_buf;
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 28/51] megaraid: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (26 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 27/51] lpfc: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 29/51] mpt3sas: " Bart Van Assche
` (22 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Sumit Saxena,
Kashyap Desai, Shivasharan S, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/megaraid/megaraid_sas_base.c | 4 ++--
drivers/scsi/megaraid/megaraid_sas_fusion.c | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 8ed347eebf07..8fc7a3074a21 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -1443,10 +1443,10 @@ megasas_build_dcdb(struct megasas_instance *instance, struct scsi_cmnd *scp,
* pthru timeout to the os layer timeout value.
*/
if (scp->device->type == TYPE_TAPE) {
- if ((scp->request->timeout / HZ) > 0xFFFF)
+ if (scsi_cmd_to_rq(scp)->timeout / HZ > 0xFFFF)
pthru->timeout = cpu_to_le16(0xFFFF);
else
- pthru->timeout = cpu_to_le16(scp->request->timeout / HZ);
+ pthru->timeout = cpu_to_le16(scsi_cmd_to_rq(scp)->timeout / HZ);
}
/*
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 2221175ae051..b894451a3e09 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -402,7 +402,7 @@ megasas_get_msix_index(struct megasas_instance *instance,
(mega_mod64(atomic64_add_return(1, &instance->total_io_count),
instance->msix_vectors));
} else if (instance->host->nr_hw_queues > 1) {
- u32 tag = blk_mq_unique_tag(scmd->request);
+ u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd));
cmd->request_desc->SCSIIO.MSIxIndex = blk_mq_unique_tag_to_hwq(tag) +
instance->low_latency_index_start;
@@ -3024,7 +3024,7 @@ static void megasas_build_ld_nonrw_fusion(struct megasas_instance *instance,
io_request->DevHandle = cpu_to_le16(device_id);
io_request->LUN[1] = scmd->device->lun;
pRAID_Context->timeout_value =
- cpu_to_le16 (scmd->request->timeout / HZ);
+ cpu_to_le16(scsi_cmd_to_rq(scmd)->timeout / HZ);
cmd->request_desc->SCSIIO.RequestFlags =
(MPI2_REQ_DESCRIPT_FLAGS_SCSI_IO <<
MEGASAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT);
@@ -3087,7 +3087,7 @@ megasas_build_syspd_fusion(struct megasas_instance *instance,
device_id = MEGASAS_DEV_INDEX(scmd);
pd_index = MEGASAS_PD_INDEX(scmd);
- os_timeout_value = scmd->request->timeout / HZ;
+ os_timeout_value = scsi_cmd_to_rq(scmd)->timeout / HZ;
mr_device_priv_data = scmd->device->hostdata;
cmd->pd_interface = mr_device_priv_data->interface_type;
@@ -3376,7 +3376,7 @@ megasas_build_and_issue_cmd_fusion(struct megasas_instance *instance,
return SCSI_MLQUEUE_HOST_BUSY;
}
- cmd = megasas_get_cmd_fusion(instance, scmd->request->tag);
+ cmd = megasas_get_cmd_fusion(instance, scsi_cmd_to_rq(scmd)->tag);
if (!cmd) {
atomic_dec(&instance->fw_outstanding);
@@ -3417,7 +3417,7 @@ megasas_build_and_issue_cmd_fusion(struct megasas_instance *instance,
*/
if (cmd->r1_alt_dev_handle != MR_DEVHANDLE_INVALID) {
r1_cmd = megasas_get_cmd_fusion(instance,
- (scmd->request->tag + instance->max_fw_cmds));
+ scsi_cmd_to_rq(scmd)->tag + instance->max_fw_cmds);
megasas_prepare_secondRaid1_IO(instance, cmd, r1_cmd);
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 29/51] mpt3sas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (27 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 28/51] megaraid: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 30/51] mvumi: " Bart Van Assche
` (21 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Sathya Prakash,
Sreekanth Reddy, Suganath Prabu Subramani, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/mpt3sas/mpt3sas_base.c | 4 ++--
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
index 68fde055b02f..352526cdcb2d 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -3649,7 +3649,7 @@ _base_get_msix_index(struct MPT3SAS_ADAPTER *ioc,
&ioc->total_io_cnt), ioc->reply_queue_count) : 0;
if (scmd && ioc->shost->nr_hw_queues > 1) {
- u32 tag = blk_mq_unique_tag(scmd->request);
+ u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd));
return blk_mq_unique_tag_to_hwq(tag) +
ioc->high_iops_queues;
@@ -3733,7 +3733,7 @@ mpt3sas_base_get_smid_scsiio(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx,
u16 smid;
u32 tag, unique_tag;
- unique_tag = blk_mq_unique_tag(scmd->request);
+ unique_tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd));
tag = blk_mq_unique_tag_to_tag(unique_tag);
/*
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
index d00aca3c77ce..c05abb458f57 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -3303,7 +3303,7 @@ scsih_abort(struct scsi_cmnd *scmd)
sdev_printk(KERN_INFO, scmd->device, "attempting task abort!"
"scmd(0x%p), outstanding for %u ms & timeout %u ms\n",
scmd, jiffies_to_msecs(jiffies - scmd->jiffies_at_alloc),
- (scmd->request->timeout / HZ) * 1000);
+ (scsi_cmd_to_rq(scmd)->timeout / HZ) * 1000);
_scsih_tm_display_info(ioc, scmd);
sas_device_priv_data = scmd->device->hostdata;
@@ -5032,7 +5032,7 @@ _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
MPI2_SCSIIO_EEDPFLAGS_CHECK_REFTAG |
MPI2_SCSIIO_EEDPFLAGS_CHECK_GUARD;
mpi_request->CDB.EEDP32.PrimaryReferenceTag =
- cpu_to_be32(t10_pi_ref_tag(scmd->request));
+ cpu_to_be32(t10_pi_ref_tag(scsi_cmd_to_rq(scmd)));
break;
case SCSI_PROT_DIF_TYPE3:
@@ -5101,7 +5101,7 @@ scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
struct MPT3SAS_DEVICE *sas_device_priv_data;
struct MPT3SAS_TARGET *sas_target_priv_data;
struct _raid_device *raid_device;
- struct request *rq = scmd->request;
+ struct request *rq = scsi_cmd_to_rq(scmd);
int class;
Mpi25SCSIIORequest_t *mpi_request;
struct _pcie_device *pcie_device = NULL;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 30/51] mvumi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (28 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 29/51] mpt3sas: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 31/51] myrb: " Bart Van Assche
` (20 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/mvumi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c
index 9d5743627604..94b2b207d391 100644
--- a/drivers/scsi/mvumi.c
+++ b/drivers/scsi/mvumi.c
@@ -702,7 +702,7 @@ static int mvumi_host_reset(struct scsi_cmnd *scmd)
mhba = (struct mvumi_hba *) scmd->device->host->hostdata;
scmd_printk(KERN_NOTICE, scmd, "RESET -%u cmd=%x retries=%x\n",
- scmd->request->tag, scmd->cmnd[0], scmd->retries);
+ scsi_cmd_to_rq(scmd)->tag, scmd->cmnd[0], scmd->retries);
return mhba->instancet->reset_host(mhba);
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 31/51] myrb: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (29 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 30/51] mvumi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 32/51] myrs: " Bart Van Assche
` (19 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/myrb.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/myrb.c b/drivers/scsi/myrb.c
index d9c82e211ae7..27aabe1e635a 100644
--- a/drivers/scsi/myrb.c
+++ b/drivers/scsi/myrb.c
@@ -1263,6 +1263,7 @@ static int myrb_host_reset(struct scsi_cmnd *scmd)
static int myrb_pthru_queuecommand(struct Scsi_Host *shost,
struct scsi_cmnd *scmd)
{
+ struct request *rq = scsi_cmd_to_rq(scmd);
struct myrb_hba *cb = shost_priv(shost);
struct myrb_cmdblk *cmd_blk = scsi_cmd_priv(scmd);
union myrb_cmd_mbox *mbox = &cmd_blk->mbox;
@@ -1286,7 +1287,7 @@ static int myrb_pthru_queuecommand(struct Scsi_Host *shost,
}
mbox->type3.opcode = MYRB_CMD_DCDB;
- mbox->type3.id = scmd->request->tag + 3;
+ mbox->type3.id = rq->tag + 3;
mbox->type3.addr = dcdb_addr;
dcdb->channel = sdev->channel;
dcdb->target = sdev->id;
@@ -1305,11 +1306,11 @@ static int myrb_pthru_queuecommand(struct Scsi_Host *shost,
break;
}
dcdb->early_status = false;
- if (scmd->request->timeout <= 10)
+ if (rq->timeout <= 10)
dcdb->timeout = MYRB_DCDB_TMO_10_SECS;
- else if (scmd->request->timeout <= 60)
+ else if (rq->timeout <= 60)
dcdb->timeout = MYRB_DCDB_TMO_60_SECS;
- else if (scmd->request->timeout <= 600)
+ else if (rq->timeout <= 600)
dcdb->timeout = MYRB_DCDB_TMO_10_MINS;
else
dcdb->timeout = MYRB_DCDB_TMO_24_HRS;
@@ -1577,7 +1578,7 @@ static int myrb_ldev_queuecommand(struct Scsi_Host *shost,
}
myrb_reset_cmd(cmd_blk);
- mbox->type5.id = scmd->request->tag + 3;
+ mbox->type5.id = scsi_cmd_to_rq(scmd)->tag + 3;
if (scmd->sc_data_direction == DMA_NONE)
goto submit;
nsge = scsi_dma_map(scmd);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 32/51] myrs: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (30 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 31/51] myrb: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 33/51] ncr53c8xx: " Bart Van Assche
` (18 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/myrs.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/myrs.c b/drivers/scsi/myrs.c
index 3b68c68d1716..9b3090d59bb9 100644
--- a/drivers/scsi/myrs.c
+++ b/drivers/scsi/myrs.c
@@ -1582,6 +1582,7 @@ static void myrs_mode_sense(struct myrs_hba *cs, struct scsi_cmnd *scmd,
static int myrs_queuecommand(struct Scsi_Host *shost,
struct scsi_cmnd *scmd)
{
+ struct request *rq = scsi_cmd_to_rq(scmd);
struct myrs_hba *cs = shost_priv(shost);
struct myrs_cmdblk *cmd_blk = scsi_cmd_priv(scmd);
union myrs_cmd_mbox *mbox = &cmd_blk->mbox;
@@ -1633,7 +1634,7 @@ static int myrs_queuecommand(struct Scsi_Host *shost,
return SCSI_MLQUEUE_HOST_BUSY;
cmd_blk->sense_addr = sense_addr;
- timeout = scmd->request->timeout;
+ timeout = rq->timeout;
if (scmd->cmd_len <= 10) {
if (scmd->device->channel >= cs->ctlr_info->physchan_present) {
struct myrs_ldev_info *ldev_info = sdev->hostdata;
@@ -1649,10 +1650,10 @@ static int myrs_queuecommand(struct Scsi_Host *shost,
mbox->SCSI_10.pdev.target = sdev->id;
mbox->SCSI_10.pdev.channel = sdev->channel;
}
- mbox->SCSI_10.id = scmd->request->tag + 3;
+ mbox->SCSI_10.id = rq->tag + 3;
mbox->SCSI_10.control.dma_ctrl_to_host =
(scmd->sc_data_direction == DMA_FROM_DEVICE);
- if (scmd->request->cmd_flags & REQ_FUA)
+ if (rq->cmd_flags & REQ_FUA)
mbox->SCSI_10.control.fua = true;
mbox->SCSI_10.dma_size = scsi_bufflen(scmd);
mbox->SCSI_10.sense_addr = cmd_blk->sense_addr;
@@ -1695,10 +1696,10 @@ static int myrs_queuecommand(struct Scsi_Host *shost,
mbox->SCSI_255.pdev.target = sdev->id;
mbox->SCSI_255.pdev.channel = sdev->channel;
}
- mbox->SCSI_255.id = scmd->request->tag + 3;
+ mbox->SCSI_255.id = rq->tag + 3;
mbox->SCSI_255.control.dma_ctrl_to_host =
(scmd->sc_data_direction == DMA_FROM_DEVICE);
- if (scmd->request->cmd_flags & REQ_FUA)
+ if (rq->cmd_flags & REQ_FUA)
mbox->SCSI_255.control.fua = true;
mbox->SCSI_255.dma_size = scsi_bufflen(scmd);
mbox->SCSI_255.sense_addr = cmd_blk->sense_addr;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 33/51] ncr53c8xx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (31 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 32/51] myrs: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 34/51] qedf: " Bart Van Assche
` (17 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/ncr53c8xx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c
index c76e9f05d042..09958f78b70f 100644
--- a/drivers/scsi/ncr53c8xx.c
+++ b/drivers/scsi/ncr53c8xx.c
@@ -4164,8 +4164,8 @@ static int ncr_queue_command (struct ncb *np, struct scsi_cmnd *cmd)
**
**----------------------------------------------------
*/
- if (np->settle_time && cmd->request->timeout >= HZ) {
- u_long tlimit = jiffies + cmd->request->timeout - HZ;
+ if (np->settle_time && scsi_cmd_to_rq(cmd)->timeout >= HZ) {
+ u_long tlimit = jiffies + scsi_cmd_to_rq(cmd)->timeout - HZ;
if (time_after(np->settle_time, tlimit))
np->settle_time = tlimit;
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 34/51] qedf: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (32 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 33/51] ncr53c8xx: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 35/51] qedi: " Bart Van Assche
` (16 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Saurav Kashyap,
Javed Hasan, GR-QLogic-Storage-Upstream, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qedf/qedf_io.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
index 6184bc485811..73f29e0e9a5c 100644
--- a/drivers/scsi/qedf/qedf_io.c
+++ b/drivers/scsi/qedf/qedf_io.c
@@ -1162,13 +1162,7 @@ void qedf_scsi_completion(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
return;
}
- if (!sc_cmd->request) {
- QEDF_WARN(&(qedf->dbg_ctx), "sc_cmd->request is NULL, "
- "sc_cmd=%p.\n", sc_cmd);
- return;
- }
-
- if (!sc_cmd->request->q) {
+ if (!scsi_cmd_to_rq(sc_cmd)->q) {
QEDF_WARN(&(qedf->dbg_ctx), "request->q is NULL so request "
"is not valid, sc_cmd=%p.\n", sc_cmd);
return;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 35/51] qedi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (33 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 34/51] qedf: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 36/51] qla1280: " Bart Van Assche
` (15 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Nilesh Javali,
Manish Rangankar, GR-QLogic-Storage-Upstream,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qedi/qedi_fw.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c
index 440ddd2309f1..f371c358c8c4 100644
--- a/drivers/scsi/qedi/qedi_fw.c
+++ b/drivers/scsi/qedi/qedi_fw.c
@@ -611,14 +611,7 @@ static void qedi_scsi_completion(struct qedi_ctx *qedi,
goto error;
}
- if (!sc_cmd->request) {
- QEDI_WARN(&qedi->dbg_ctx,
- "sc_cmd->request is NULL, sc_cmd=%p.\n",
- sc_cmd);
- goto error;
- }
-
- if (!sc_cmd->request->q) {
+ if (!scsi_cmd_to_rq(sc_cmd)->q) {
QEDI_WARN(&qedi->dbg_ctx,
"request->q is NULL so request is not valid, sc_cmd=%p.\n",
sc_cmd);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 36/51] qla1280: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (34 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 35/51] qedi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 37/51] qla2xxx: " Bart Van Assche
` (14 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Michael Reed,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qla1280.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 928da90b79be..15d564076707 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -490,7 +490,7 @@ __setup("qla1280=", qla1280_setup);
#define CMD_SNSLEN(Cmnd) SCSI_SENSE_BUFFERSIZE
#define CMD_RESULT(Cmnd) Cmnd->result
#define CMD_HANDLE(Cmnd) Cmnd->host_scribble
-#define CMD_REQUEST(Cmnd) Cmnd->request->cmd
+#define CMD_REQUEST(Cmnd) scsi_cmd_to_rq(Cmnd)->cmd
#define CMD_HOST(Cmnd) Cmnd->device->host
#define SCSI_BUS_32(Cmnd) Cmnd->device->channel
@@ -2827,7 +2827,7 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8));
/* Set ISP command timeout. */
- pkt->timeout = cpu_to_le16(cmd->request->timeout/HZ);
+ pkt->timeout = cpu_to_le16(scsi_cmd_to_rq(cmd)->timeout / HZ);
/* Set device target ID and LUN */
pkt->lun = SCSI_LUN_32(cmd);
@@ -3082,7 +3082,7 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8));
/* Set ISP command timeout. */
- pkt->timeout = cpu_to_le16(cmd->request->timeout/HZ);
+ pkt->timeout = cpu_to_le16(scsi_cmd_to_rq(cmd)->timeout / HZ);
/* Set device target ID and LUN */
pkt->lun = SCSI_LUN_32(cmd);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 37/51] qla2xxx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (35 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 36/51] qla1280: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 38/51] qla4xxx: " Bart Van Assche
` (13 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Nilesh Javali,
GR-QLogic-Storage-Upstream, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qla2xxx/qla_os.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 4eab564ea6a0..c65e85db87d5 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -849,7 +849,7 @@ qla2xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
uint16_t hwq;
struct qla_qpair *qpair = NULL;
- tag = blk_mq_unique_tag(cmd->request);
+ tag = blk_mq_unique_tag(scsi_cmd_to_rq(cmd));
hwq = blk_mq_unique_tag_to_hwq(tag);
qpair = ha->queue_pair_map[hwq];
@@ -1742,7 +1742,7 @@ static void qla2x00_abort_srb(struct qla_qpair *qp, srb_t *sp, const int res,
}
spin_lock_irqsave(qp->qp_lock_ptr, *flags);
- if (ret_cmd && blk_mq_request_started(cmd->request))
+ if (ret_cmd && blk_mq_request_started(scsi_cmd_to_rq(cmd)))
sp->done(sp, res);
} else {
sp->done(sp, res);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 38/51] qla4xxx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (36 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 37/51] qla2xxx: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 39/51] qlogicpti: " Bart Van Assche
` (12 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Nilesh Javali,
Manish Rangankar, GR-QLogic-Storage-Upstream,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qla4xxx/ql4_iocb.c | 2 +-
drivers/scsi/qla4xxx/ql4_os.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/qla4xxx/ql4_iocb.c b/drivers/scsi/qla4xxx/ql4_iocb.c
index cbd1e6ffcd67..d2e450831837 100644
--- a/drivers/scsi/qla4xxx/ql4_iocb.c
+++ b/drivers/scsi/qla4xxx/ql4_iocb.c
@@ -288,7 +288,7 @@ int qla4xxx_send_command_to_isp(struct scsi_qla_host *ha, struct srb * srb)
/* Acquire hardware specific lock */
spin_lock_irqsave(&ha->hardware_lock, flags);
- index = (uint32_t)cmd->request->tag;
+ index = scsi_cmd_to_rq(cmd)->tag;
/*
* Check to see if adapter is online before placing request on
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index ad3afe30f617..88a37dacf90f 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -9282,7 +9282,7 @@ static int qla4xxx_eh_device_reset(struct scsi_cmnd *cmd)
DEBUG2(printk(KERN_INFO
"scsi%ld: DEVICE_RESET cmd=%p jiffies = 0x%lx, to=%x,"
"dpc_flags=%lx, status=%x allowed=%d\n", ha->host_no,
- cmd, jiffies, cmd->request->timeout / HZ,
+ cmd, jiffies, scsi_cmd_to_rq(cmd)->timeout / HZ,
ha->dpc_flags, cmd->result, cmd->allowed));
rval = qla4xxx_isp_check_reg(ha);
@@ -9349,7 +9349,7 @@ static int qla4xxx_eh_target_reset(struct scsi_cmnd *cmd)
DEBUG2(printk(KERN_INFO
"scsi%ld: TARGET_DEVICE_RESET cmd=%p jiffies = 0x%lx, "
"to=%x,dpc_flags=%lx, status=%x allowed=%d\n",
- ha->host_no, cmd, jiffies, cmd->request->timeout / HZ,
+ ha->host_no, cmd, jiffies, scsi_cmd_to_rq(cmd)->timeout / HZ,
ha->dpc_flags, cmd->result, cmd->allowed));
rval = qla4xxx_isp_check_reg(ha);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 39/51] qlogicpti: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (37 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 38/51] qla4xxx: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 40/51] scsi_debug: " Bart Van Assche
` (11 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qlogicpti.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c
index d84e218d32cb..8e7e833a36cc 100644
--- a/drivers/scsi/qlogicpti.c
+++ b/drivers/scsi/qlogicpti.c
@@ -890,7 +890,7 @@ static inline void cmd_frob(struct Command_Entry *cmd, struct scsi_cmnd *Cmnd,
cmd->control_flags |= CFLAG_WRITE;
else
cmd->control_flags |= CFLAG_READ;
- cmd->time_out = Cmnd->request->timeout/HZ;
+ cmd->time_out = scsi_cmd_to_rq(Cmnd)->timeout / HZ;
memcpy(cmd->cdb, Cmnd->cmnd, Cmnd->cmd_len);
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 40/51] scsi_debug: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (38 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 39/51] qlogicpti: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-25 16:19 ` Douglas Gilbert
2021-05-24 3:08 ` [PATCH v3 41/51] smartpqi: " Bart Van Assche
` (10 subsequent siblings)
50 siblings, 1 reply; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/scsi_debug.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index 6e2ad003c179..151b0d2f49a5 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -4705,7 +4705,7 @@ static int resp_rwp_zone(struct scsi_cmnd *scp, struct sdebug_dev_info *devip)
static struct sdebug_queue *get_queue(struct scsi_cmnd *cmnd)
{
u16 hwq;
- u32 tag = blk_mq_unique_tag(cmnd->request);
+ u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(cmnd));
hwq = blk_mq_unique_tag_to_hwq(tag);
@@ -4718,7 +4718,7 @@ static struct sdebug_queue *get_queue(struct scsi_cmnd *cmnd)
static u32 get_tag(struct scsi_cmnd *cmnd)
{
- return blk_mq_unique_tag(cmnd->request);
+ return blk_mq_unique_tag(scsi_cmd_to_rq(cmnd));
}
/* Queued (deferred) command completions converge here. */
@@ -5367,7 +5367,7 @@ static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
{
bool new_sd_dp;
bool inject = false;
- bool hipri = (cmnd->request->cmd_flags & REQ_HIPRI);
+ bool hipri = scsi_cmd_to_rq(cmnd)->cmd_flags & REQ_HIPRI;
int k, num_in_q, qdepth;
unsigned long iflags;
u64 ns_from_boot = 0;
@@ -5570,8 +5570,9 @@ static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
if (sdebug_statistics)
sd_dp->issuing_cpu = raw_smp_processor_id();
if (unlikely(sd_dp->aborted)) {
- sdev_printk(KERN_INFO, sdp, "abort request tag %d\n", cmnd->request->tag);
- blk_abort_request(cmnd->request);
+ sdev_printk(KERN_INFO, sdp, "abort request tag %d\n",
+ scsi_cmd_to_rq(cmnd)->tag);
+ blk_abort_request(scsi_cmd_to_rq(cmnd));
atomic_set(&sdeb_inject_pending, 0);
sd_dp->aborted = false;
}
@@ -7397,7 +7398,7 @@ static int scsi_debug_queuecommand(struct Scsi_Host *shost,
(u32)cmd[k]);
}
sdev_printk(KERN_INFO, sdp, "%s: tag=%#x, cmd %s\n", my_name,
- blk_mq_unique_tag(scp->request), b);
+ blk_mq_unique_tag(scsi_cmd_to_rq(scp)), b);
}
if (unlikely(inject_now && (sdebug_opts & SDEBUG_OPT_HOST_BUSY)))
return SCSI_MLQUEUE_HOST_BUSY;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [PATCH v3 40/51] scsi_debug: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 ` [PATCH v3 40/51] scsi_debug: " Bart Van Assche
@ 2021-05-25 16:19 ` Douglas Gilbert
0 siblings, 0 replies; 55+ messages in thread
From: Douglas Gilbert @ 2021-05-25 16:19 UTC (permalink / raw)
To: Bart Van Assche, Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, James E.J. Bottomley
On 2021-05-23 11:08 p.m., Bart Van Assche wrote:
> Prepare for removal of the request pointer by using scsi_cmd_to_rq()
> instead. This patch does not change any functionality.
>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Douglas Gilbert <dgilbert@interlog.com>
> ---
> drivers/scsi/scsi_debug.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
> index 6e2ad003c179..151b0d2f49a5 100644
> --- a/drivers/scsi/scsi_debug.c
> +++ b/drivers/scsi/scsi_debug.c
> @@ -4705,7 +4705,7 @@ static int resp_rwp_zone(struct scsi_cmnd *scp, struct sdebug_dev_info *devip)
> static struct sdebug_queue *get_queue(struct scsi_cmnd *cmnd)
> {
> u16 hwq;
> - u32 tag = blk_mq_unique_tag(cmnd->request);
> + u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(cmnd));
>
> hwq = blk_mq_unique_tag_to_hwq(tag);
>
> @@ -4718,7 +4718,7 @@ static struct sdebug_queue *get_queue(struct scsi_cmnd *cmnd)
>
> static u32 get_tag(struct scsi_cmnd *cmnd)
> {
> - return blk_mq_unique_tag(cmnd->request);
> + return blk_mq_unique_tag(scsi_cmd_to_rq(cmnd));
> }
>
> /* Queued (deferred) command completions converge here. */
> @@ -5367,7 +5367,7 @@ static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
> {
> bool new_sd_dp;
> bool inject = false;
> - bool hipri = (cmnd->request->cmd_flags & REQ_HIPRI);
> + bool hipri = scsi_cmd_to_rq(cmnd)->cmd_flags & REQ_HIPRI;
> int k, num_in_q, qdepth;
> unsigned long iflags;
> u64 ns_from_boot = 0;
> @@ -5570,8 +5570,9 @@ static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
> if (sdebug_statistics)
> sd_dp->issuing_cpu = raw_smp_processor_id();
> if (unlikely(sd_dp->aborted)) {
> - sdev_printk(KERN_INFO, sdp, "abort request tag %d\n", cmnd->request->tag);
> - blk_abort_request(cmnd->request);
> + sdev_printk(KERN_INFO, sdp, "abort request tag %d\n",
> + scsi_cmd_to_rq(cmnd)->tag);
> + blk_abort_request(scsi_cmd_to_rq(cmnd));
> atomic_set(&sdeb_inject_pending, 0);
> sd_dp->aborted = false;
> }
> @@ -7397,7 +7398,7 @@ static int scsi_debug_queuecommand(struct Scsi_Host *shost,
> (u32)cmd[k]);
> }
> sdev_printk(KERN_INFO, sdp, "%s: tag=%#x, cmd %s\n", my_name,
> - blk_mq_unique_tag(scp->request), b);
> + blk_mq_unique_tag(scsi_cmd_to_rq(scp)), b);
> }
> if (unlikely(inject_now && (sdebug_opts & SDEBUG_OPT_HOST_BUSY)))
> return SCSI_MLQUEUE_HOST_BUSY;
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* [PATCH v3 41/51] smartpqi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (39 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 40/51] scsi_debug: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 42/51] snic: " Bart Van Assche
` (9 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Don Brace,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/smartpqi/smartpqi_init.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 5db16509b6e1..6c841a1fa4a2 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -5569,7 +5569,7 @@ static inline u16 pqi_get_hw_queue(struct pqi_ctrl_info *ctrl_info,
{
u16 hw_queue;
- hw_queue = blk_mq_unique_tag_to_hwq(blk_mq_unique_tag(scmd->request));
+ hw_queue = blk_mq_unique_tag_to_hwq(blk_mq_unique_tag(scsi_cmd_to_rq(scmd)));
if (hw_queue > ctrl_info->max_hw_queue_index)
hw_queue = 0;
@@ -5578,7 +5578,7 @@ static inline u16 pqi_get_hw_queue(struct pqi_ctrl_info *ctrl_info,
static inline bool pqi_is_bypass_eligible_request(struct scsi_cmnd *scmd)
{
- if (blk_rq_is_passthrough(scmd->request))
+ if (blk_rq_is_passthrough(scsi_cmd_to_rq(scmd)))
return false;
return scmd->SCp.this_residual == 0;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 42/51] snic: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (40 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 41/51] smartpqi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 43/51] stex: " Bart Van Assche
` (8 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
Karan Tilak Kumar, Sesidhar Baddela, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/snic/snic_scsi.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/snic/snic_scsi.c b/drivers/scsi/snic/snic_scsi.c
index 6dd0ff188bb4..d5a807c9c0d3 100644
--- a/drivers/scsi/snic/snic_scsi.c
+++ b/drivers/scsi/snic/snic_scsi.c
@@ -33,7 +33,7 @@
#include "snic_io.h"
#include "snic.h"
-#define snic_cmd_tag(sc) (((struct scsi_cmnd *) sc)->request->tag)
+#define snic_cmd_tag(sc) (scsi_cmd_to_rq(sc)->tag)
const char *snic_state_str[] = {
[SNIC_INIT] = "SNIC_INIT",
@@ -1636,7 +1636,7 @@ snic_abort_cmd(struct scsi_cmnd *sc)
u32 start_time = jiffies;
SNIC_SCSI_DBG(snic->shost, "abt_cmd:sc %p :0x%x :req = %p :tag = %d\n",
- sc, sc->cmnd[0], sc->request, tag);
+ sc, sc->cmnd[0], scsi_cmd_to_rq(sc), tag);
if (unlikely(snic_get_state(snic) != SNIC_ONLINE)) {
SNIC_HOST_ERR(snic->shost,
@@ -2152,7 +2152,7 @@ snic_device_reset(struct scsi_cmnd *sc)
int dr_supp = 0;
SNIC_SCSI_DBG(shost, "dev_reset:sc %p :0x%x :req = %p :tag = %d\n",
- sc, sc->cmnd[0], sc->request,
+ sc, sc->cmnd[0], scsi_cmd_to_rq(sc),
snic_cmd_tag(sc));
dr_supp = snic_dev_reset_supported(sc->device);
if (!dr_supp) {
@@ -2387,7 +2387,7 @@ snic_host_reset(struct scsi_cmnd *sc)
SNIC_SCSI_DBG(shost,
"host reset:sc %p sc_cmd 0x%x req %p tag %d flags 0x%llx\n",
- sc, sc->cmnd[0], sc->request,
+ sc, sc->cmnd[0], scsi_cmd_to_rq(sc),
snic_cmd_tag(sc), CMD_FLAGS(sc));
ret = snic_reset(shost, sc);
@@ -2494,7 +2494,7 @@ snic_scsi_cleanup(struct snic *snic, int ex_tag)
sc->result = DID_TRANSPORT_DISRUPTED << 16;
SNIC_HOST_INFO(snic->shost,
"sc_clean: DID_TRANSPORT_DISRUPTED for sc %p, Tag %d flags 0x%llx rqi %p duration %u msecs\n",
- sc, sc->request->tag, CMD_FLAGS(sc), rqi,
+ sc, scsi_cmd_to_rq(sc)->tag, CMD_FLAGS(sc), rqi,
jiffies_to_msecs(jiffies - st_time));
/* Update IO stats */
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 43/51] stex: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (41 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 42/51] snic: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 44/51] sun3_scsi: " Bart Van Assche
` (7 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/stex.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 12471208c7a8..b6eec2e51048 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -543,7 +543,7 @@ stex_ss_send_cmd(struct st_hba *hba, struct req_msg *req, u16 tag)
msg_h = (struct st_msg_header *)req - 1;
if (likely(cmd)) {
msg_h->channel = (u8)cmd->device->channel;
- msg_h->timeout = cpu_to_le16(cmd->request->timeout/HZ);
+ msg_h->timeout = cpu_to_le16(scsi_cmd_to_rq(cmd)->timeout / HZ);
}
addr = hba->dma_handle + hba->req_head * hba->rq_size;
addr += (hba->ccb[tag].sg_count+4)/11;
@@ -693,7 +693,7 @@ stex_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
cmd->scsi_done = done;
- tag = cmd->request->tag;
+ tag = scsi_cmd_to_rq(cmd)->tag;
if (unlikely(tag >= host->can_queue))
return SCSI_MLQUEUE_HOST_BUSY;
@@ -1249,7 +1249,7 @@ static int stex_abort(struct scsi_cmnd *cmd)
{
struct Scsi_Host *host = cmd->device->host;
struct st_hba *hba = (struct st_hba *)host->hostdata;
- u16 tag = cmd->request->tag;
+ u16 tag = scsi_cmd_to_rq(cmd)->tag;
void __iomem *base;
u32 data;
int result = SUCCESS;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 44/51] sun3_scsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (42 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 43/51] stex: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 45/51] sym53c8xx: " Bart Van Assche
` (6 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Finn Thain,
Michael Schmitz, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/sun3_scsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c
index 2e3fbc2fae97..d6000a397f73 100644
--- a/drivers/scsi/sun3_scsi.c
+++ b/drivers/scsi/sun3_scsi.c
@@ -336,7 +336,7 @@ static int sun3scsi_dma_xfer_len(struct NCR5380_hostdata *hostdata,
{
int wanted_len = cmd->SCp.this_residual;
- if (wanted_len < DMA_MIN_SIZE || blk_rq_is_passthrough(cmd->request))
+ if (wanted_len < DMA_MIN_SIZE || blk_rq_is_passthrough(scsi_cmd_to_rq(cmd)))
return 0;
return wanted_len;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 45/51] sym53c8xx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (43 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 44/51] sun3_scsi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 46/51] ufs: " Bart Van Assche
` (5 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Matthew Wilcox,
James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/sym53c8xx_2/sym_glue.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
index d9a045f9858c..04cd28c268f2 100644
--- a/drivers/scsi/sym53c8xx_2/sym_glue.c
+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
@@ -502,8 +502,8 @@ static int sym53c8xx_queue_command_lck(struct scsi_cmnd *cmd,
* Shorten our settle_time if needed for
* this command not to time out.
*/
- if (np->s.settle_time_valid && cmd->request->timeout) {
- unsigned long tlimit = jiffies + cmd->request->timeout;
+ if (np->s.settle_time_valid && scsi_cmd_to_rq(cmd)->timeout) {
+ unsigned long tlimit = jiffies + scsi_cmd_to_rq(cmd)->timeout;
tlimit -= SYM_CONF_TIMER_INTERVAL*2;
if (time_after(np->s.settle_time, tlimit)) {
np->s.settle_time = tlimit;
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 46/51] ufs: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (44 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 45/51] sym53c8xx: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 47/51] virtio_scsi: " Bart Van Assche
` (4 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
James E.J. Bottomley, Stanley Chu, Can Guo, Avri Altman,
Bean Huo, Jaegeuk Kim, Asutosh Das
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/ufs/ufshcd.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index c382260e0cf7..1fecba9eeb77 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -379,6 +379,8 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
}
if (cmd) { /* data phase exists */
+ struct request *rq = scsi_cmd_to_rq(cmd);
+
/* trace UPIU also */
ufshcd_add_cmd_upiu_trace(hba, tag, str_t);
opcode = cmd->cmnd[0];
@@ -387,17 +389,15 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
* Currently we only fully trace read(10) and write(10)
* commands
*/
- if (cmd->request && cmd->request->bio)
- lba = cmd->request->bio->bi_iter.bi_sector;
+ if (rq->bio)
+ lba = rq->bio->bi_iter.bi_sector;
transfer_len = be32_to_cpu(
lrbp->ucd_req_ptr->sc.exp_data_transfer_len);
if (opcode == WRITE_10)
group_id = lrbp->cmd->cmnd[6];
} else if (opcode == UNMAP) {
- if (cmd->request) {
- lba = scsi_get_lba(cmd);
- transfer_len = blk_rq_bytes(cmd->request);
- }
+ lba = scsi_get_lba(cmd);
+ transfer_len = blk_rq_bytes(rq);
}
}
@@ -2058,7 +2058,7 @@ static void ufshcd_update_monitor(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
int dir = ufshcd_monitor_opcode2dir(*lrbp->cmd->cmnd);
if (dir >= 0 && hba->monitor.nr_queued[dir] > 0) {
- struct request *req = lrbp->cmd->request;
+ struct request *req = scsi_cmd_to_rq(lrbp->cmd);
struct ufs_hba_monitor *m = &hba->monitor;
ktime_t now, inc, lat;
@@ -2677,11 +2677,11 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
hba = shost_priv(host);
- tag = cmd->request->tag;
+ tag = scsi_cmd_to_rq(cmd)->tag;
if (!ufshcd_valid_tag(hba, tag)) {
dev_err(hba->dev,
- "%s: invalid command tag %d: cmd=0x%p, cmd->request=0x%p",
- __func__, tag, cmd, cmd->request);
+ "%s: invalid command tag %d: cmd=0x%p, scsi_cmd_to_rq=0x%p",
+ __func__, tag, cmd, scsi_cmd_to_rq(cmd));
BUG();
}
@@ -2716,7 +2716,7 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
lrbp->lun = ufshcd_scsi_to_upiu_lun(cmd->device->lun);
lrbp->intr_cmd = !ufshcd_is_intr_aggr_allowed(hba) ? true : false;
- ufshcd_prepare_lrbp_crypto(cmd->request, lrbp);
+ ufshcd_prepare_lrbp_crypto(scsi_cmd_to_rq(cmd), lrbp);
lrbp->req_abort_skip = false;
@@ -6965,12 +6965,12 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
host = cmd->device->host;
hba = shost_priv(host);
- tag = cmd->request->tag;
+ tag = scsi_cmd_to_rq(cmd)->tag;
lrbp = &hba->lrb[tag];
if (!ufshcd_valid_tag(hba, tag)) {
dev_err(hba->dev,
- "%s: invalid command tag %d: cmd=0x%p, cmd->request=0x%p",
- __func__, tag, cmd, cmd->request);
+ "%s: invalid command tag %d: cmd=0x%p, scsi_cmd_to_rq=0x%p",
+ __func__, tag, cmd, scsi_cmd_to_rq(cmd));
BUG();
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 47/51] virtio_scsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (45 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 46/51] ufs: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 9:23 ` Michael S. Tsirkin
2021-05-24 3:08 ` [PATCH v3 48/51] xen-scsifront: " Bart Van Assche
` (3 subsequent siblings)
50 siblings, 1 reply; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche,
Michael S. Tsirkin, Jason Wang, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/virtio_scsi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index b9c86a7e3b97..8ae4b8441519 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -521,7 +521,7 @@ static void virtio_scsi_init_hdr_pi(struct virtio_device *vdev,
struct virtio_scsi_cmd_req_pi *cmd_pi,
struct scsi_cmnd *sc)
{
- struct request *rq = sc->request;
+ struct request *rq = scsi_cmd_to_rq(sc);
struct blk_integrity *bi;
virtio_scsi_init_hdr(vdev, (struct virtio_scsi_cmd_req *)cmd_pi, sc);
@@ -545,7 +545,7 @@ static void virtio_scsi_init_hdr_pi(struct virtio_device *vdev,
static struct virtio_scsi_vq *virtscsi_pick_vq_mq(struct virtio_scsi *vscsi,
struct scsi_cmnd *sc)
{
- u32 tag = blk_mq_unique_tag(sc->request);
+ u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(sc));
u16 hwq = blk_mq_unique_tag_to_hwq(tag);
return &vscsi->req_vqs[hwq];
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [PATCH v3 47/51] virtio_scsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 ` [PATCH v3 47/51] virtio_scsi: " Bart Van Assche
@ 2021-05-24 9:23 ` Michael S. Tsirkin
0 siblings, 0 replies; 55+ messages in thread
From: Michael S. Tsirkin @ 2021-05-24 9:23 UTC (permalink / raw)
To: Bart Van Assche
Cc: Martin K . Petersen, Christoph Hellwig, linux-scsi, Jason Wang,
James E.J. Bottomley
On Sun, May 23, 2021 at 08:08:52PM -0700, Bart Van Assche wrote:
> Prepare for removal of the request pointer by using scsi_cmd_to_rq()
> instead. This patch does not change any functionality.
>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
If everyone else does it, I don't mind
Acked-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> drivers/scsi/virtio_scsi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
> index b9c86a7e3b97..8ae4b8441519 100644
> --- a/drivers/scsi/virtio_scsi.c
> +++ b/drivers/scsi/virtio_scsi.c
> @@ -521,7 +521,7 @@ static void virtio_scsi_init_hdr_pi(struct virtio_device *vdev,
> struct virtio_scsi_cmd_req_pi *cmd_pi,
> struct scsi_cmnd *sc)
> {
> - struct request *rq = sc->request;
> + struct request *rq = scsi_cmd_to_rq(sc);
> struct blk_integrity *bi;
>
> virtio_scsi_init_hdr(vdev, (struct virtio_scsi_cmd_req *)cmd_pi, sc);
> @@ -545,7 +545,7 @@ static void virtio_scsi_init_hdr_pi(struct virtio_device *vdev,
> static struct virtio_scsi_vq *virtscsi_pick_vq_mq(struct virtio_scsi *vscsi,
> struct scsi_cmnd *sc)
> {
> - u32 tag = blk_mq_unique_tag(sc->request);
> + u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(sc));
> u16 hwq = blk_mq_unique_tag_to_hwq(tag);
>
> return &vscsi->req_vqs[hwq];
^ permalink raw reply [flat|nested] 55+ messages in thread
* [PATCH v3 48/51] xen-scsifront: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (46 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 47/51] virtio_scsi: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 49/51] tcm_loop: " Bart Van Assche
` (2 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Juergen Gross,
Boris Ostrovsky, James E.J. Bottomley
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Acked-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/xen-scsifront.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/xen-scsifront.c b/drivers/scsi/xen-scsifront.c
index 259fc248d06c..efb95e222e70 100644
--- a/drivers/scsi/xen-scsifront.c
+++ b/drivers/scsi/xen-scsifront.c
@@ -212,7 +212,7 @@ static int scsifront_do_request(struct vscsifrnt_info *info,
memcpy(ring_req->cmnd, sc->cmnd, sc->cmd_len);
ring_req->sc_data_direction = (uint8_t)sc->sc_data_direction;
- ring_req->timeout_per_command = sc->request->timeout / HZ;
+ ring_req->timeout_per_command = scsi_cmd_to_rq(sc)->timeout / HZ;
for (i = 0; i < (shadow->nr_segments & ~VSCSIIF_SG_GRANT); i++)
ring_req->seg[i] = shadow->seg[i];
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 49/51] tcm_loop: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (47 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 48/51] xen-scsifront: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 50/51] usb-storage: " Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 51/51] core: Remove the request member from struct scsi_cmnd Bart Van Assche
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Bodo Stroesser,
Mike Christie, Himanshu Madhani
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Reviewed-by: Bodo Stroesser <bostroesser@gmail.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/target/loopback/tcm_loop.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
index 2687fd7d45db..834eceaac9cd 100644
--- a/drivers/target/loopback/tcm_loop.c
+++ b/drivers/target/loopback/tcm_loop.c
@@ -183,7 +183,7 @@ static int tcm_loop_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *sc)
memset(tl_cmd, 0, sizeof(*tl_cmd));
tl_cmd->sc = sc;
- tl_cmd->sc_cmd_tag = sc->request->tag;
+ tl_cmd->sc_cmd_tag = scsi_cmd_to_rq(sc)->tag;
tcm_loop_target_queue_cmd(tl_cmd);
return 0;
@@ -249,7 +249,7 @@ static int tcm_loop_abort_task(struct scsi_cmnd *sc)
tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host);
tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id];
ret = tcm_loop_issue_tmr(tl_tpg, sc->device->lun,
- sc->request->tag, TMR_ABORT_TASK);
+ scsi_cmd_to_rq(sc)->tag, TMR_ABORT_TASK);
return (ret == TMR_FUNCTION_COMPLETE) ? SUCCESS : FAILED;
}
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 50/51] usb-storage: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (48 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 49/51] tcm_loop: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
2021-05-24 3:08 ` [PATCH v3 51/51] core: Remove the request member from struct scsi_cmnd Bart Van Assche
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Alan Stern,
Greg Kroah-Hartman
Prepare for removal of the request pointer by using scsi_cmd_to_rq()
instead. This patch does not change any functionality.
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/usb/storage/transport.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index f4304ce69350..4c5a0a49035f 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -551,7 +551,7 @@ static void last_sector_hacks(struct us_data *us, struct scsi_cmnd *srb)
/* Did this command access the last sector? */
sector = (srb->cmnd[2] << 24) | (srb->cmnd[3] << 16) |
(srb->cmnd[4] << 8) | (srb->cmnd[5]);
- disk = srb->request->rq_disk;
+ disk = scsi_cmd_to_rq(srb)->rq_disk;
if (!disk)
goto done;
sdkp = scsi_disk(disk);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [PATCH v3 51/51] core: Remove the request member from struct scsi_cmnd
2021-05-24 3:08 [PATCH v3 00/51] Remove the request pointer from struct scsi_cmnd Bart Van Assche
` (49 preceding siblings ...)
2021-05-24 3:08 ` [PATCH v3 50/51] usb-storage: " Bart Van Assche
@ 2021-05-24 3:08 ` Bart Van Assche
50 siblings, 0 replies; 55+ messages in thread
From: Bart Van Assche @ 2021-05-24 3:08 UTC (permalink / raw)
To: Martin K . Petersen
Cc: Christoph Hellwig, linux-scsi, Bart Van Assche, Hannes Reinecke,
Ming Lei, James E.J. Bottomley
Since all scsi_cmnd.request users are gone, remove the request pointer
from struct scsi_cmnd.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/scsi_error.c | 1 -
drivers/scsi/scsi_lib.c | 1 -
include/scsi/scsi_cmnd.h | 3 ---
3 files changed, 5 deletions(-)
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 5af6d87e83aa..3c83e892284b 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -2390,7 +2390,6 @@ scsi_ioctl_reset(struct scsi_device *dev, int __user *arg)
scmd = (struct scsi_cmnd *)(rq + 1);
scsi_init_command(dev, scmd);
- scmd->request = rq;
scmd->cmnd = scsi_req(rq)->cmd;
scmd->scsi_done = scsi_reset_provider_done_command;
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 2e9598c91cee..b5df3f94156e 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1536,7 +1536,6 @@ static blk_status_t scsi_prepare_cmd(struct request *req)
scsi_init_command(sdev, cmd);
- cmd->request = req;
cmd->tag = req->tag;
cmd->prot_op = SCSI_PROT_NORMAL;
if (blk_rq_bytes(req))
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index bd7f73f035be..984bfa5deab8 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -111,9 +111,6 @@ struct scsi_cmnd {
reconnects. Probably == sector
size */
- struct request *request; /* The command we are
- working on */
-
unsigned char *sense_buffer;
/* obtained by REQUEST SENSE when
* CHECK CONDITION is received on original
^ permalink raw reply related [flat|nested] 55+ messages in thread