Date: Tue, 5 Feb 2013 13:52:52 -0500 From: John Baldwin <jhb@freebsd.org> To: Randall Stewart <rrs@lakerest.net> Cc: freebsd-net@freebsd.org, Robert Watson <rwatson@freebsd.org>, Jack Vogel <jfvogel@gmail.com>, Kip Macy <kmacy@freebsd.org> Subject: Re: Driver patch to look at... Message-ID: <201302051352.52741.jhb@freebsd.org> In-Reply-To: <0D421326-9A80-4E21-A18E-E717F5C02164@lakerest.net> References: <D3AA078A-CD19-4228-A019-BE9C985895E2@lakerest.net> <201302051213.51401.jhb@freebsd.org> <0D421326-9A80-4E21-A18E-E717F5C02164@lakerest.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, February 05, 2013 12:44:01 pm Randall Stewart wrote: > Actually, no it is used. > > If you look in if_var.h int he drbr_putback() function, it does > a buf_ring_swap when the old mbuf pointer does not equal the > new mbuf pointer. This *does* happen, I crashed at least once > yesterday when the igb driver did something to free the original > mbuf and return a new mbuf with the data (prepend or some such). > > I also have found several issues that I have fixed this morning.. its been > crash city on my test beds.. > > Here is the latest patch with all fixes and suggested changes from emaste (thanks Ed) Actually, one more suggestion then (since you have to keep putback). It would be nice to not have to require 'snext' in all the callers. How about replace buf_ring_swap() with a buf_ring_putback_sc() that accepts the mbuf and just stores it at the head unconditionally and have drbr_putback() use that? -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302051352.52741.jhb>