Re: Cdrom broken in bk current?

Jens Axboe (axboe@suse.de)
Sun, 3 Nov 2002 10:43:06 +0100


--3lcZGd9BuhuYXNfi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, Nov 03 2002, Leopold Gouverneur wrote:
> I see the following during booting:
> ...
> end_request: I/O error, dev hdc, sector 0
> hdc: ATAPI 40X CD-ROM CD-R/RW drive, 2048kB Cache, DMA
> Uniform CD-ROM driver Revision: 3.12
> end_request: I/O error, dev hdc, sector 0
> end_request: I/O error, dev hdd, sector 0
> end_request: I/O error, dev hdd, sector 0
> hdd: ATAPI 16X CD-ROM drive, 256kB Cache, DMA
> ...
>
> If I mount /dev/hd[cd], the system freezes completly.
>
> This was not present in 2.5.42 IRC
> ny help?

Try with this patch.

-- 
Jens Axboe

--3lcZGd9BuhuYXNfi Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=idecd-cdb-size-2

===== drivers/ide/ide-cd.c 1.27 vs edited ===== --- 1.27/drivers/ide/ide-cd.c Fri Oct 18 20:02:55 2002 +++ edited/drivers/ide/ide-cd.c Sun Nov 3 10:33:17 2002 @@ -310,6 +310,7 @@ #include <linux/completion.h> #include <scsi/scsi.h> /* For SCSI -> ATAPI command conversion */ +#include "../scsi/scsi.h" #include <asm/irq.h> #include <asm/io.h> @@ -877,10 +878,10 @@ ide_handler_t *handler) { unsigned char *cmd_buf = rq->cmd; - int cmd_len = sizeof(rq->cmd); unsigned int timeout = rq->timeout; struct cdrom_info *info = drive->driver_data; ide_startstop_t startstop; + unsigned int cmd_len; if (CDROM_CONFIG_FLAGS(drive)->drq_interrupt) { /* Here we should have been called after receiving an interrupt @@ -902,6 +903,11 @@ /* Arm the interrupt handler. */ ide_set_handler(drive, handler, timeout, cdrom_timer_expiry); + + /* cdb length, pad upto the 12th byte if necessary */ + cmd_len = COMMAND_SIZE(rq->cmd[0]); + if (cmd_len < 12) + cmd_len = 12; /* Send the command to the device. */ HWIF(drive)->atapi_output_bytes(drive, cmd_buf, cmd_len);

--3lcZGd9BuhuYXNfi-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/