lkml.org 
[lkml]   [1999]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] 2.3.14 leaves CDROM drive door locked
On 2.3.14 the CD drive door is often locked where it shouldnt.

Repeat by:
Put an audio CD in the ATAPI drive.
Invoke the program

#include <fcntl.h>
main(){
int i = open("/dev/cdrom", O_RDONLY);
if (i < 0)
perror("/dev/cdrom");
}

This will yield the output

/dev/cdrom: Wrong medium type

and now the drive door is locked, so that one
cannot replace the CD by the right one.

Explanation:

At various points the driver does a check media change,
which calls cdrom_check_status, which does a TEST_UNIT_READY.
However, the routine cdrom_queue_packet_command will always
lock the door unless called with one of a few commands,
and TEST_UNIT_READY is not one of those. So, each
cdrom_check_status, and each check media change will
lock the door. (Even after an eject the tray is withdrawn
and the door is closed again.)
This behaviour is avoided by making TEST_UNIT_READY one
of the exceptions in cdrom_queue_packet_command.

Patch:

--- /g1/linux/linux-2.3.14/linux/drivers/block/ide-cd.c Mon Aug 9 21:34:22 1999
+++ ide-cd.c Thu Aug 26 02:26:10 1999
@@ -1392,8 +1392,10 @@
and we think that the door is presently, lock it again.
(The door was probably unlocked via an explicit
CDROMEJECT ioctl.) */
- if (CDROM_STATE_FLAGS (drive)->door_locked == 0 && drive->usage &&
- (pc->c[0] != REQUEST_SENSE &&
+ if (CDROM_STATE_FLAGS (drive)->door_locked == 0 &&
+ drive->usage &&
+ (pc->c[0] != TEST_UNIT_READY &&
+ pc->c[0] != REQUEST_SENSE &&
pc->c[0] != ALLOW_MEDIUM_REMOVAL &&
pc->c[0] != START_STOP &&
pc->c[0] != MODE_SENSE_10 &&
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [W:0.058 / U:2.708 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site