Skip site navigation (1)Skip section navigation (2)
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>