Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Jan 2001 08:50:38 -0800 (PST)
From:      Matthew Jacob <mjacob@feral.com>
To:        Mike Smith <msmith@freebsd.org>
Cc:        alpha@freebsd.org
Subject:   Re: rawhide breakage report... 
Message-ID:  <Pine.BSF.4.21.0101010850340.86667-100000@beppo.feral.com>
In-Reply-To: <200101010209.f0129cn12505@mass.osd.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Done. Thanks.


On Sun, 31 Dec 2000, Mike Smith wrote:

> > What it turns out is that a card had PCIM_STATUS_CAPPRESENT set in the status
> > register (Qlogic 2200, and the code that reads this got stuck in an infinite
> > loop... I'm not sure whether this was due to bad reads from config space or
> > whether it really was a bogus PCIM_STATUS_CAPPRESENT or what (see attach). It
> > kinda looks like the config read stuff is broken because it accepted an offset
> > of -1 :-), but there was a case before where a value of -1 was returned.
> > 
> > I don't know this cap goop at all. Whaddya think?
> 
>         nextptr = REG(ptrptr, 1);       /* sanity check? */
> 
> The right sanity check probably involves looking at nextptr in the loop:
>  
>         /*
>          * Read capability entries.
>          */
>         while (nextptr != 0) {
> 		/* Sanity check */
> 		if (nextptr > 255) {
> 			printf("illegal PCI extended capability offset %d\n",
> 			    nexptr);
> 			return;
> 		}
>                 /* Find the next entry */
>                 ptr = nextptr;
>                 nextptr = REG(ptr + 1, 1);                                      
> 
> It should never be < 0, since pci_read_config returns unsigned.  Since 
> you have some errant hardware, it'd be great if you could check and 
> commit this.
> 
> -- 
> ... every activity meets with opposition, everyone who acts has his
> rivals and unfortunately opponents also.  But not because people want
> to be opponents, rather because the tasks and relationships force
> people to take different points of view.  [Dr. Fritz Todt]
>            V I C T O R Y   N O T   V E N G E A N C E
> 
> 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" 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.21.0101010850340.86667-100000>