Date: Wed, 13 Jan 1999 23:36:13 -0500 (EST) From: "Andrew Atrens" <atrens@nortelnetworks.com> To: current@FreeBSD.ORG Cc: lcremean@tidalwave.net Subject: testers wanted: ide_pci.c bugster Message-ID: <Pine.BSF.4.05.9901132300570.623-100000@hcarp00g.ca.nortel.com> In-Reply-To: <Pine.BSF.4.05.9901121615040.600-100000@hcarp00g.ca.nortel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi All,
Recall that around the middle of December a patch to pci_ide.c was
committed which I suspected has been hosing my system.
Okay, so I've looked into the usage of this, and I'm convinced the patch
is _wrong_. For those of you experiencing PCI IDE grief, try _backing out_
this change ...
In ide_pci.c:
1452 /*
1453 * Return a cookie if we can do DMA on the specified (iobase_wd, unit).
1454 */
1455 static void *
1456 ide_pci_candma(int iobase_wd, int unit)
1457 {
1458 struct ide_pci_cookie *cp;
1459
1460 cp = softc.cookies.lh_first;
1461 while(cp) {
1462 <<*OLD*<< if (cp->ctlr == unit &&
1462 >>*NEW*<< if (cp->unit == unit &&
1463 ((iobase_wd == 0) || (cp->iobase_wd==iobase_wd)))
1464 break;
1465 cp = cp->le.le_next;
1466 }
1467
1468 return cp;
1469 }
ide_pci_candma() is a registered callback function used in wd.c in the
following way:
327: if (wddma[interface].wdd_candma) {
328: du->dk_dmacookie =
329: wddma[interface].wdd_candma(dvp->id_iobase,du->dk_ctrlr);
Notice the second argument is a controller _not_ a drive. Therefore the
comparison between cp->ctlr == du->dk_ctrlr was correct, and should not
have been changed to cp->unit == du->dk_ctrlr.
Cheers,
Andrew.
--
+----------------------------------------------------+
= Andrew Atrens - Nortel Networks (atrens@nortel.ca) =
= P.O. Box 3511, Station C Ottawa, Canada =
= =
= All opinions expressed are mine, not Nortel's. =
+----------------------------------------------------+
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9901132300570.623-100000>
