Date: 9 Jun 1999 11:28:29 -0000 From: jedgar@fxp.org To: FreeBSD-gnats-submit@freebsd.org Subject: kern/12095: [PATCH] Buggy ATAPI Zip Drive is not detected properly Message-ID: <19990609112829.36640.qmail@pawn.primelocation.net>
index | next in thread | raw e-mail
>Number: 12095
>Category: kern
>Synopsis: [PATCH] Buggy ATAPI Zip Drive is not detected properly
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jun 9 04:30:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator: Chris D. Faulhaber
>Release: FreeBSD 3.2-STABLE i386
>Organization:
>Environment:
FreeBSD [....] 3.2-STABLE FreeBSD 3.2-STABLE #22: Mon Jun 7 12:08:27
EDT 1999 root@[....]:/usr/src/sys/compile/EARTH i386
>Description:
The current revision of /usr/src/sys/i386/isa/wfd.c does not properly
detect all buggy ATAPI Zip Drive firmware revisions. Currently, the
driver checks to see if the drive is a Zip Drive using:
if (!strcmp(ap->model, "IOMEGA ZIP 100 ATAPI")) {
then sets t->maxblks = 64. I own an OEM Zip Drive (NEC) whose inquiry
is: <IOMEGA ZIP 100 ATAPI Floppy/12.A>. Since this drive
is not detected as a Zip Drive using the current method, and has buggy
firmware, it will lock up when t->maxblks is > 64.
>How-To-Repeat:
1) Attach an ATAPI Zip Drive to the system with an inquiry string slightly
different than what is currently tested for, such as:
<IOMEGA ZIP 100 ATAPI Floppy/12.A>
versus a 'normal' Zip Drive:
<IOMEGA ZIP 100 ATAPI/13.A>
>Fix:
Apply the following patch. This patch limits the test for a Zip Drive,
to the first 11 characters using strncmp; same as Soren Schmidt's test
in the new atapi-fd drivers. This patch applies to /sys/i386/isa/wfd.c
revision: $Id: wfd.c,v 1.17.2.1 1999/02/18 22:06:08 ken Exp $
--- /sys/i386/isa/wfd.c.orig Thu Feb 18 17:06:08 1999
+++ /sys/i386/isa/wfd.c Tue Jun 8 07:25:20 1999
@@ -247,7 +247,7 @@
* is known to lock up if transfers > 64 blocks are
* requested.
*/
- if (!strcmp(ap->model, "IOMEGA ZIP 100 ATAPI")) {
+ if (!strncmp(ap->model, "IOMEGA ZIP", 11)) {
printf("wfd%d: buggy Zip drive, 64-block transfer limit set\n",
t->lun);
t->maxblks = 64;
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990609112829.36640.qmail>
