Date: Sun, 3 Mar 2013 01:15:04 +0100 From: Olivier Houchard <mlfbsd@ci0.org> To: Thomas Skibo <ThomasSkibo@sbcglobal.net> Cc: freebsd-arm@freebsd.org Subject: Re: A bug in busdma_machdep-v6.c? Message-ID: <20130303001504.GA55003@ci0.org> In-Reply-To: <51329325.7070301@sbcglobal.net> References: <51329325.7070301@sbcglobal.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 02, 2013 at 04:02:45PM -0800, Thomas Skibo wrote: > > Hello. > > I've been trying to solve a tcp checksum bug and I think I see a problem > in _bus_dmamap_load_buffer(): > > In the following code bit, a segment is tacked onto the previous > segment's slist[] entry if it is adjacent to the previous segment in > virtual memory. That's okay if all cache operations use virtual > addresses but if the level 2 cache operations need physical addresses > (ARM_L2_PIPT), the physical address of the second segment is lost. I > don't think bus_dmamap_sync() is properly wb/invalidating the second > segment from the level 2 cache. > Hi Thomas, That makes sense. I'll commit your patch tomorrow if nobody else does it before. Thanks ! Olivier
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130303001504.GA55003>