Re: Cdrom broken in bk current?

Leopold Gouverneur (lgouv@pi.be)
Tue, 5 Nov 2002 00:38:31 +0100


On Sun, Nov 03, 2002 at 10:43:06AM +0100, Jens Axboe wrote:
> 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
>

> ===== 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);

I tried your patch without success. The problem is still there in 2.5.46

-
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/