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

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


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 *);
 
 	/*


Later,
George


More information about the freebsd-current mailing list