From: Bart Van Assche <bvanassche@acm.org>
To: linux-scsi <linux-scsi@vger.kernel.org>
Cc: James Bottomley <jbottomley@parallels.com>,
Mike Christie <michaelc@cs.wisc.edu>, Tejun Heo <tj@kernel.org>,
Chanho Min <chanho.min@lge.com>,
David Milburn <dmilburn@redhat.com>,
Hannes Reinecke <hare@suse.de>
Subject: [PATCH v10 8/9] Save and restore host_scribble during error handling
Date: Sun, 07 Apr 2013 17:04:45 +0200 [thread overview]
Message-ID: <51618B0D.2010108@acm.org> (raw)
In-Reply-To: <516188E5.1040008@acm.org>
A SCSI LLD may overwrite host_scribble in its queuecommand()
implementation. Several drivers need that field to process
requests and aborts correctly. Hence this field must be saved
by scsi_eh_prep_cmnd() and must be restored by
scsi_eh_restore_cmnd().
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Cc: James Bottomley <JBottomley@Parallels.com>
Cc: Mike Christie <michaelc@cs.wisc.edu>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Tejun Heo <tj@kernel.org>
---
drivers/scsi/scsi_error.c | 2 ++
include/scsi/scsi_eh.h | 1 +
2 files changed, 3 insertions(+)
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index a1b7eff..33dcce3 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -770,6 +770,7 @@ void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *ses,
ses->result = scmd->result;
ses->underflow = scmd->underflow;
ses->prot_op = scmd->prot_op;
+ ses->host_scribble = scmd->host_scribble;
scmd->prot_op = SCSI_PROT_NORMAL;
scmd->cmnd = ses->eh_cmnd;
@@ -831,6 +832,7 @@ void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd, struct scsi_eh_save *ses)
scmd->result = ses->result;
scmd->underflow = ses->underflow;
scmd->prot_op = ses->prot_op;
+ scmd->host_scribble = ses->host_scribble;
}
EXPORT_SYMBOL(scsi_eh_restore_cmnd);
diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h
index 06a8790..7bdb02f 100644
--- a/include/scsi/scsi_eh.h
+++ b/include/scsi/scsi_eh.h
@@ -83,6 +83,7 @@ struct scsi_eh_save {
/* new command support */
unsigned char eh_cmnd[BLK_MAX_CDB];
struct scatterlist sense_sgl;
+ unsigned char *host_scribble;
};
extern void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd,
--
1.7.10.4
next prev parent reply other threads:[~2013-04-07 15:04 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-07 14:55 [PATCH v10 0/9] More device removal fixes Bart Van Assche
2013-04-07 14:57 ` [PATCH v10 1/9] Fix race between starved list processing and device removal Bart Van Assche
2013-04-07 14:58 ` [PATCH v10 2/9] Remove get_device() / put_device() pair from scsi_request_fn() Bart Van Assche
2013-04-07 14:59 ` [PATCH v10 3/9] Avoid calling __scsi_remove_device() twice Bart Van Assche
2013-04-07 15:00 ` [PATCH v10 4/9] Disallow changing the device state via sysfs into "deleted" Bart Van Assche
2013-04-07 15:01 ` [PATCH v10 5/9] Avoid saving/restoring interrupt state inside scsi_remove_host() Bart Van Assche
2013-04-07 15:02 ` [PATCH v10 6/9] Make scsi_remove_host() wait until error handling finished Bart Van Assche
2013-04-07 15:03 ` [PATCH v10 7/9] Avoid that scsi_device_set_state() triggers a race Bart Van Assche
2013-04-07 15:04 ` Bart Van Assche [this message]
2013-04-07 15:05 ` [PATCH v10 9/9] Avoid reenabling I/O after the transport became offline Bart Van Assche
2013-05-08 13:58 ` [PATCH v10 0/9] More device removal fixes Joe Lawrence
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51618B0D.2010108@acm.org \
--to=bvanassche@acm.org \
--cc=chanho.min@lge.com \
--cc=dmilburn@redhat.com \
--cc=hare@suse.de \
--cc=jbottomley@parallels.com \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.