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>