diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-11-19 17:04:25 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-11-19 17:04:25 +0900 |
commit | fe040be2fdc49a4132c5f64359c629aeeb8e4947 (patch) | |
tree | 40323a8f05d3754372f561bb8f4698ef1a4e9c8f /drivers/ata/libata-scsi.c | |
parent | 2006920a18cc9f499e5cccf9e6f1aa9f6120705e (diff) | |
parent | 6722a4016d7f5f107a82ad71a3ee1ccec105532f (diff) | |
download | talos-obmc-linux-fe040be2fdc49a4132c5f64359c629aeeb8e4947.tar.gz talos-obmc-linux-fe040be2fdc49a4132c5f64359c629aeeb8e4947.zip |
Merge branch 'common/fbdev-mipi' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r-- | drivers/ata/libata-scsi.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index d050e073e570..19835d39289d 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -2552,8 +2552,11 @@ static void atapi_qc_complete(struct ata_queued_cmd *qc) * * If door lock fails, always clear sdev->locked to * avoid this infinite loop. + * + * This may happen before SCSI scan is complete. Make + * sure qc->dev->sdev isn't NULL before dereferencing. */ - if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL) + if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL && qc->dev->sdev) qc->dev->sdev->locked = 0; qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; @@ -3180,7 +3183,7 @@ static inline int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, * Return value from __ata_scsi_queuecmd() if @cmd can be queued, * 0 otherwise. */ -int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) +static int ata_scsi_queuecmd_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) { struct ata_port *ap; struct ata_device *dev; @@ -3208,6 +3211,8 @@ int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) return rc; } +DEF_SCSI_QCMD(ata_scsi_queuecmd) + /** * ata_scsi_simulate - simulate SCSI command on ATA device * @dev: the target device |