Sleeping in "rip6_output" with the following non-sleepable locks held

George V. Neville-Neil gnn at neville-neil.com
Tue Aug 10 21:40:33 PDT 2004


At Tue, 10 Aug 2004 21:31:21 -0700,
George V. Neville-Neil wrote:
> 
> At Wed, 11 Aug 2004 00:14:49 -0400 (EDT),
> Robert Watson wrote:
> > 
> > 
> > On Wed, 11 Aug 2004, Jun Kuriyama wrote:
> > 
> > > This is today's -current on amd64 box:
> > 
> > Hmm.  There was a patch floating around for this based on my suggestion of
> > converting this to an M_DONTWAIT and then handling the error case, but I
> > don't seem to be able to find it in my mailbox.  Do you have a copy? 
> > 
> 
> I believe this is what you mean:
> 
> @@ -376,7 +377,12 @@
>  		code = icmp6->icmp6_code;
>  	}
>  
> -	M_PREPEND(m, sizeof(*ip6), M_TRYWAIT);
> +	M_PREPEND(m, sizeof(*ip6), M_DONTWAIT);
> +	if (m == NULL) {
> +		error = ENOBUFS;
> +		goto bad;
> +	}
> +
>  	ip6 = mtod(m, struct ip6_hdr *);
>  
>  	/*
> 

Sorry, forgot to put in the the name of the file.  It's 

sys/netinet6/raw_ip6.c

Later,
George


More information about the freebsd-current mailing list