diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-11 14:12:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-11 14:12:33 -0400 |
commit | 69585dd69e663a40729492c7b52eb82477a2027a (patch) | |
tree | 5c179ca88b70856a7f9b56e10151ffa5480f0284 /drivers/scsi/scsi.c | |
parent | bd381934bf13ccb1af2813ae26c6fe00ec85d254 (diff) | |
parent | c7922a911c42c5a8bdee6cc75eb6bd66937d4217 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (34 commits)
[SCSI] qla2xxx: Fix NULL ptr deref bug in fail path during queue create
[SCSI] st: fix possible memory use after free after MTSETBLK ioctl
[SCSI] be2iscsi: Moving to pci_pools v3
[SCSI] libiscsi: iscsi_session_setup to allow for private space
[SCSI] be2iscsi: add 10Gbps iSCSI - BladeEngine 2 driver
[SCSI] zfcp: Fix hang when offlining device with offline chpid
[SCSI] zfcp: Fix lockdep warning when offlining device with offline chpid
[SCSI] zfcp: Fix oops during shutdown of offline device
[SCSI] zfcp: Fix initial device and cfdc for delayed adapter allocation
[SCSI] zfcp: correctly initialize unchained requests
[SCSI] mpt2sas: Bump version 02.100.03.00
[SCSI] mpt2sas: Support dev remove when phy status is MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT
[SCSI] mpt2sas: Timeout occurred within the HANDSHAKE logic while waiting on firmware to ACK.
[SCSI] mpt2sas: Call init_completion on a per request basis.
[SCSI] mpt2sas: Target Reset will be issued from Interrupt context.
[SCSI] mpt2sas: Added SCSIIO, Internal and high priority memory pools to support multiple TM
[SCSI] mpt2sas: Copyright change to 2009.
[SCSI] mpt2sas: Added mpi2_history.txt for MPI2 headers.
[SCSI] mpt2sas: Update driver to MPI2 REV K headers.
[SCSI] bfa: Brocade BFA FC SCSI driver
...
Diffstat (limited to 'drivers/scsi/scsi.c')
-rw-r--r-- | drivers/scsi/scsi.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index b6e03074cb8f..dd098cad337b 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c | |||
@@ -241,10 +241,7 @@ scsi_host_alloc_command(struct Scsi_Host *shost, gfp_t gfp_mask) | |||
241 | */ | 241 | */ |
242 | struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) | 242 | struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) |
243 | { | 243 | { |
244 | struct scsi_cmnd *cmd; | 244 | struct scsi_cmnd *cmd = scsi_host_alloc_command(shost, gfp_mask); |
245 | unsigned char *buf; | ||
246 | |||
247 | cmd = scsi_host_alloc_command(shost, gfp_mask); | ||
248 | 245 | ||
249 | if (unlikely(!cmd)) { | 246 | if (unlikely(!cmd)) { |
250 | unsigned long flags; | 247 | unsigned long flags; |
@@ -258,9 +255,15 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) | |||
258 | spin_unlock_irqrestore(&shost->free_list_lock, flags); | 255 | spin_unlock_irqrestore(&shost->free_list_lock, flags); |
259 | 256 | ||
260 | if (cmd) { | 257 | if (cmd) { |
258 | void *buf, *prot; | ||
259 | |||
261 | buf = cmd->sense_buffer; | 260 | buf = cmd->sense_buffer; |
261 | prot = cmd->prot_sdb; | ||
262 | |||
262 | memset(cmd, 0, sizeof(*cmd)); | 263 | memset(cmd, 0, sizeof(*cmd)); |
264 | |||
263 | cmd->sense_buffer = buf; | 265 | cmd->sense_buffer = buf; |
266 | cmd->prot_sdb = prot; | ||
264 | } | 267 | } |
265 | } | 268 | } |
266 | 269 | ||