|
@@ -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;
|