Package: linux-source-2.6.16 Version: 2.6.16-12 Severity: normal Tags: patch
I have been aggravated by tape problems since upgrading to 2.6 on my Alphaserver using the qla1280 driver with ISP1020/1040 support enabled. It appears on inspection that the problem lies with the qla1280 driver itself, which enforces a 30-second timeout on all (?) SCSI operations it issues. The result is that operations on my TZ89 DLT4 tape drive which take longer than that to complete (for example, "mt eod" or "mt fsf" in particular) abort and force a device reset. The attached kludgy patch demonstrates the fix I am using, namely to increase the timeout to 900 seconds. This is fine because my hardware is all solid and I'm not worried at the moment about a disk going bad and hanging my system for 15 minutes while the I/O times out... :-) Probably the timeout could be reduced to perhaps 5 minutes, but I am erring on the side of longer since these errant "errors" really screw up my backups and restores. I have posted to linux-scsi on this but haven't gotten much of a response. I'll report this there too but figured it would be better to have more eyes on the problem. Thanks, Scott Bailey [EMAIL PROTECTED] --- drivers/scsi/qla1280.c 2006-03-20 00:53:29.000000000 -0500 +++ drivers/scsi/qla1280.c 2006-05-10 10:02:39.000000000 -0400 @@ -17,9 +17,11 @@ * General Public License for more details. * ******************************************************************************/ -#define QLA1280_VERSION "3.26" +#define QLA1280_VERSION "3.26.rsb" /***************************************************************************** Revision History: + Rev 3.26.rsb, May 10, 2006 R. Scott Bailey + - Increase timeouts (?) from 30 to 900 sec for tape support Rev 3.26, January 16, 2006 Jes Sorensen - Ditch all < 2.6 support Rev 3.25.1, February 10, 2005 Christoph Hellwig @@ -2886,7 +2888,7 @@ memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8)); /* Set ISP command timeout. */ - pkt->timeout = cpu_to_le16(30); + pkt->timeout = cpu_to_le16(900); /* was 30 - RSB */ /* Set device target ID and LUN */ pkt->lun = SCSI_LUN_32(cmd); @@ -3185,7 +3187,7 @@ memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8)); /* Set ISP command timeout. */ - pkt->timeout = cpu_to_le16(30); + pkt->timeout = cpu_to_le16(900); /* was 30 - RSB */ /* Set device target ID and LUN */ pkt->lun = SCSI_LUN_32(cmd); -- System Information: Debian Release: testing/unstable Architecture: alpha Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16-scsi.12 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages linux-source-2.6.16 depends on: ii binutils 2.16.1cvs20060413-1 The GNU assembler, linker and bina ii bzip2 1.0.3-2 high-quality block-sorting file co Versions of packages linux-source-2.6.16 recommends: ii gcc 4:4.0.2-2 The GNU C compiler ii libc6.1-dev [libc6-dev] 2.3.6-7 GNU C Library: Development Librari ii make 3.81-1 The GNU version of the "make" util -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]