Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sun, 3 Nov 2002 04:36:48 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sun, 3 Nov 2002 04:36:48 -0500 Received: from ns.virtualhost.dk ([195.184.98.160]:7081 "EHLO virtualhost.dk") by vger.kernel.org with ESMTP id ; Sun, 3 Nov 2002 04:36:44 -0500 Date: Sun, 3 Nov 2002 10:43:06 +0100 From: Jens Axboe To: Leopold Gouverneur Cc: linux-kernel@vger.kernel.org Subject: Re: Cdrom broken in bk current? Message-ID: <20021103094306.GK3612@suse.de> References: <20021103080514.GC748@gouv> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="3lcZGd9BuhuYXNfi" Content-Disposition: inline In-Reply-To: <20021103080514.GC748@gouv> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2141 Lines: 74 --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 #include /* For SCSI -> ATAPI command conversion */ +#include "../scsi/scsi.h" #include #include @@ -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/