Re: kgdb(1) ... is it broken ?

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Tue, 27 Feb 2007 12:42:14 +0200
On Mon, Feb 26, 2007 at 06:33:01PM -0500, John Baldwin wrote:
> On Saturday 24 February 2007 05:23, Kostik Belousov wrote:
> > On Sat, Feb 24, 2007 at 03:26:28PM +0900, Wilkinson, Alex wrote:
> > >     0n Fri, Feb 23, 2007 at 01:34:39PM +0200, Kostik Belousov wrote: 
> > > 
> > >     >BTW, you panic is caused by nvidia driver. I believe there is a patch 
> by
> > >     >nvidia that would eliminate the problem.
> > > 
> > > Got a link to the patch ?
> > I do not use nvidia cards, and did not saved the link. Search in the
> > archive. 
> 
> Try this:
> 
> Index: kern_conf.c
> ===================================================================
> RCS file: /usr/cvs/src/sys/kern/kern_conf.c,v
> retrieving revision 1.200
> diff -u -r1.200 kern_conf.c
> --- kern_conf.c	20 Oct 2006 07:59:50 -0000	1.200
> +++ kern_conf.c	4 Jan 2007 20:42:07 -0000
> _at__at_ -843,16 +843,20 _at__at_
>  			dev_unlock();
>  			return (0);
>  		}
> -		if (unit == -1 && u == low) {
> -			low++;
> -			de = dev;
> -			continue;
> -		} else if (u < (unit | extra)) {
> -			de = dev;
> -			continue;
> -		} else if (u > (unit | extra)) {
> -			dl = dev;
> -			break;
> +		if (unit == -1) {
> +			if (u == low) {
> +				low++;
> +				de = dev;
> +				continue;
> +			}
> +		} else {
> +			if (u < (unit | extra)) {
> +				de = dev;
> +				continue;
> +			} else if (u > (unit | extra)) {
> +				dl = dev;
> +				break;
> +			}
>  		}
>  	}
>  	if (unit == -1)
> 
> -- 
> John Baldwin
This change has nothing to do with reported panic. Panic is caused by invalid
refcounting in nvidia driver for cdev. Nvidia is already aware of the problem,
and patch from them floated around.

Received on Tue Feb 27 2007 - 09:42:30 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC