On Monday 10 September 2012 17:16:22 Aaron Lu wrote:

> +static int sr_resume(struct device *dev)
> +{
> +     struct scsi_cd *cd;
> +     struct scsi_sense_hdr sshdr;
> +
> +     cd = dev_get_drvdata(dev);
> +
> +     if (!cd->device->powered_off)
> +             return 0;
> +
> +     /* get the disk ready */
> +     scsi_test_unit_ready(cd->device, SR_TIMEOUT, MAX_RETRIES, &sshdr);
> +
> +     /* if user wakes up the ODD, eject the tray */
> +     if (cd->device->need_eject) {
> +             cd->device->need_eject = 0;
> +             if (!(cd->cdi.mask & CDC_CLOSE_TRAY))
> +                     sr_tray_move(&cd->cdi, 1);

1. Even if the door is locked?
2. sr_tray_move allocates memory with GFP_KERNEL. This smells of a deadlock.

        Regards
                Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to