Re: [PATCH 6/6] ide: don't use req->special

2018-11-10 Thread Hannes Reinecke
On 11/9/18 7:32 PM, Christoph Hellwig wrote:
> Just replace it with a field of the same name in struct ide_req.
> 
> Signed-off-by: Christoph Hellwig 
> ---
>  drivers/ide/ide-atapi.c|  4 ++--
>  drivers/ide/ide-cd.c   |  4 ++--
>  drivers/ide/ide-devsets.c  |  4 ++--
>  drivers/ide/ide-disk.c |  6 +++---
>  drivers/ide/ide-eh.c   |  2 +-
>  drivers/ide/ide-floppy.c   |  2 +-
>  drivers/ide/ide-io.c   | 14 +-
>  drivers/ide/ide-park.c |  4 ++--
>  drivers/ide/ide-pm.c   | 12 ++--
>  drivers/ide/ide-tape.c |  2 +-
>  drivers/ide/ide-taskfile.c |  2 +-
>  include/linux/ide.h|  1 +
>  12 files changed, 31 insertions(+), 26 deletions(-)
> 
Reviewed-by: Hannes Reinecke 

Cheers,

Hannes
-- 
Dr. Hannes ReineckeTeamlead Storage & Networking
h...@suse.de   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)


[PATCH 6/6] ide: don't use req->special

2018-11-10 Thread Christoph Hellwig
Just replace it with a field of the same name in struct ide_req.

Signed-off-by: Christoph Hellwig 
---
 drivers/ide/ide-atapi.c|  4 ++--
 drivers/ide/ide-cd.c   |  4 ++--
 drivers/ide/ide-devsets.c  |  4 ++--
 drivers/ide/ide-disk.c |  6 +++---
 drivers/ide/ide-eh.c   |  2 +-
 drivers/ide/ide-floppy.c   |  2 +-
 drivers/ide/ide-io.c   | 14 +-
 drivers/ide/ide-park.c |  4 ++--
 drivers/ide/ide-pm.c   | 12 ++--
 drivers/ide/ide-tape.c |  2 +-
 drivers/ide/ide-taskfile.c |  2 +-
 include/linux/ide.h|  1 +
 12 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index 33210bc67618..da58020a144e 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -94,7 +94,7 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk 
*disk,
 
rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, 0);
ide_req(rq)->type = ATA_PRIV_MISC;
-   rq->special = (char *)pc;
+   ide_req(rq)->special = pc;
 
if (buf && bufflen) {
error = blk_rq_map_kern(drive->queue, rq, buf, bufflen,
@@ -244,7 +244,7 @@ int ide_queue_sense_rq(ide_drive_t *drive, void *special)
return -ENOMEM;
}
 
-   sense_rq->special = special;
+   ide_req(sense_rq)->special = special;
drive->sense_rq_armed = false;
 
drive->hwif->rq = NULL;
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 69c1aede5f93..1f03884a6808 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -211,12 +211,12 @@ static void cdrom_analyze_sense_data(ide_drive_t *drive,
 static void ide_cd_complete_failed_rq(ide_drive_t *drive, struct request *rq)
 {
/*
-* For ATA_PRIV_SENSE, "rq->special" points to the original
+* For ATA_PRIV_SENSE, "ide_req(rq)->special" points to the original
 * failed request.  Also, the sense data should be read
 * directly from rq which might be different from the original
 * sense buffer if it got copied during mapping.
 */
-   struct request *failed = (struct request *)rq->special;
+   struct request *failed = ide_req(rq)->special;
void *sense = bio_data(rq->bio);
 
if (failed) {
diff --git a/drivers/ide/ide-devsets.c b/drivers/ide/ide-devsets.c
index f4f8afdf8bbe..f2f93ed40356 100644
--- a/drivers/ide/ide-devsets.c
+++ b/drivers/ide/ide-devsets.c
@@ -171,7 +171,7 @@ int ide_devset_execute(ide_drive_t *drive, const struct 
ide_devset *setting,
scsi_req(rq)->cmd_len = 5;
scsi_req(rq)->cmd[0] = REQ_DEVSET_EXEC;
*(int *)_req(rq)->cmd[1] = arg;
-   rq->special = setting->set;
+   ide_req(rq)->special = setting->set;
 
blk_execute_rq(q, NULL, rq, 0);
ret = scsi_req(rq)->result;
@@ -182,7 +182,7 @@ int ide_devset_execute(ide_drive_t *drive, const struct 
ide_devset *setting,
 
 ide_startstop_t ide_do_devset(ide_drive_t *drive, struct request *rq)
 {
-   int err, (*setfunc)(ide_drive_t *, int) = rq->special;
+   int err, (*setfunc)(ide_drive_t *, int) = ide_req(rq)->special;
 
err = setfunc(drive, *(int *)_req(rq)->cmd[1]);
if (err)
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index 724db9af0d82..197912af5c2f 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -434,8 +434,8 @@ static bool idedisk_prep_rq(ide_drive_t *drive, struct 
request *rq)
if (req_op(rq) != REQ_OP_FLUSH)
return true;
 
-   if (rq->special) {
-   cmd = rq->special;
+   if (ide_req(rq)->special) {
+   cmd = ide_req(rq)->special;
memset(cmd, 0, sizeof(*cmd));
} else {
cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
@@ -455,7 +455,7 @@ static bool idedisk_prep_rq(ide_drive_t *drive, struct 
request *rq)
rq->cmd_flags &= ~REQ_OP_MASK;
rq->cmd_flags |= REQ_OP_DRV_OUT;
ide_req(rq)->type = ATA_PRIV_TASKFILE;
-   rq->special = cmd;
+   ide_req(rq)->special = cmd;
cmd->rq = rq;
 
return true;
diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c
index 47d5f3379748..e1323e058454 100644
--- a/drivers/ide/ide-eh.c
+++ b/drivers/ide/ide-eh.c
@@ -125,7 +125,7 @@ ide_startstop_t ide_error(ide_drive_t *drive, const char 
*msg, u8 stat)
/* retry only "normal" I/O: */
if (blk_rq_is_passthrough(rq)) {
if (ata_taskfile_request(rq)) {
-   struct ide_cmd *cmd = rq->special;
+   struct ide_cmd *cmd = ide_req(rq)->special;
 
if (cmd)
ide_complete_cmd(drive, cmd, stat, err);
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index a8df300f949c..780d33ccc5d8 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -276,7 +276,7 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t 
*drive,

[PATCH 6/6] ide: don't use req->special

2018-11-09 Thread Christoph Hellwig
Just replace it with a field of the same name in struct ide_req.

Signed-off-by: Christoph Hellwig 
---
 drivers/ide/ide-atapi.c|  4 ++--
 drivers/ide/ide-cd.c   |  4 ++--
 drivers/ide/ide-devsets.c  |  4 ++--
 drivers/ide/ide-disk.c |  6 +++---
 drivers/ide/ide-eh.c   |  2 +-
 drivers/ide/ide-floppy.c   |  2 +-
 drivers/ide/ide-io.c   | 14 +-
 drivers/ide/ide-park.c |  4 ++--
 drivers/ide/ide-pm.c   | 12 ++--
 drivers/ide/ide-tape.c |  2 +-
 drivers/ide/ide-taskfile.c |  2 +-
 include/linux/ide.h|  1 +
 12 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index 33210bc67618..da58020a144e 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -94,7 +94,7 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk 
*disk,
 
rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, 0);
ide_req(rq)->type = ATA_PRIV_MISC;
-   rq->special = (char *)pc;
+   ide_req(rq)->special = pc;
 
if (buf && bufflen) {
error = blk_rq_map_kern(drive->queue, rq, buf, bufflen,
@@ -244,7 +244,7 @@ int ide_queue_sense_rq(ide_drive_t *drive, void *special)
return -ENOMEM;
}
 
-   sense_rq->special = special;
+   ide_req(sense_rq)->special = special;
drive->sense_rq_armed = false;
 
drive->hwif->rq = NULL;
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 4ecaf2ace4cb..fb24093c9aa6 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -211,12 +211,12 @@ static void cdrom_analyze_sense_data(ide_drive_t *drive,
 static void ide_cd_complete_failed_rq(ide_drive_t *drive, struct request *rq)
 {
/*
-* For ATA_PRIV_SENSE, "rq->special" points to the original
+* For ATA_PRIV_SENSE, "ide_req(rq)->special" points to the original
 * failed request.  Also, the sense data should be read
 * directly from rq which might be different from the original
 * sense buffer if it got copied during mapping.
 */
-   struct request *failed = (struct request *)rq->special;
+   struct request *failed = ide_req(rq)->special;
void *sense = bio_data(rq->bio);
 
if (failed) {
diff --git a/drivers/ide/ide-devsets.c b/drivers/ide/ide-devsets.c
index f4f8afdf8bbe..f2f93ed40356 100644
--- a/drivers/ide/ide-devsets.c
+++ b/drivers/ide/ide-devsets.c
@@ -171,7 +171,7 @@ int ide_devset_execute(ide_drive_t *drive, const struct 
ide_devset *setting,
scsi_req(rq)->cmd_len = 5;
scsi_req(rq)->cmd[0] = REQ_DEVSET_EXEC;
*(int *)_req(rq)->cmd[1] = arg;
-   rq->special = setting->set;
+   ide_req(rq)->special = setting->set;
 
blk_execute_rq(q, NULL, rq, 0);
ret = scsi_req(rq)->result;
@@ -182,7 +182,7 @@ int ide_devset_execute(ide_drive_t *drive, const struct 
ide_devset *setting,
 
 ide_startstop_t ide_do_devset(ide_drive_t *drive, struct request *rq)
 {
-   int err, (*setfunc)(ide_drive_t *, int) = rq->special;
+   int err, (*setfunc)(ide_drive_t *, int) = ide_req(rq)->special;
 
err = setfunc(drive, *(int *)_req(rq)->cmd[1]);
if (err)
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index f8567c8c9dd1..1333d291cb19 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -434,8 +434,8 @@ static int idedisk_prep_fn(ide_drive_t *drive, struct 
request *rq)
if (req_op(rq) != REQ_OP_FLUSH)
return BLKPREP_OK;
 
-   if (rq->special) {
-   cmd = rq->special;
+   if (ide_req(rq)->special) {
+   cmd = ide_req(rq)->special;
memset(cmd, 0, sizeof(*cmd));
} else {
cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
@@ -455,7 +455,7 @@ static int idedisk_prep_fn(ide_drive_t *drive, struct 
request *rq)
rq->cmd_flags &= ~REQ_OP_MASK;
rq->cmd_flags |= REQ_OP_DRV_OUT;
ide_req(rq)->type = ATA_PRIV_TASKFILE;
-   rq->special = cmd;
+   ide_req(rq)->special = cmd;
cmd->rq = rq;
 
return BLKPREP_OK;
diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c
index 47d5f3379748..e1323e058454 100644
--- a/drivers/ide/ide-eh.c
+++ b/drivers/ide/ide-eh.c
@@ -125,7 +125,7 @@ ide_startstop_t ide_error(ide_drive_t *drive, const char 
*msg, u8 stat)
/* retry only "normal" I/O: */
if (blk_rq_is_passthrough(rq)) {
if (ata_taskfile_request(rq)) {
-   struct ide_cmd *cmd = rq->special;
+   struct ide_cmd *cmd = ide_req(rq)->special;
 
if (cmd)
ide_complete_cmd(drive, cmd, stat, err);
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index a8df300f949c..780d33ccc5d8 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -276,7 +276,7 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t 
*drive,