From owner-freebsd-arm@FreeBSD.ORG Sun Mar 3 00:15:29 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 897CE8E6 for ; Sun, 3 Mar 2013 00:15:29 +0000 (UTC) (envelope-from mlfbsd@kanar.ci0.org) Received: from kanar.ci0.org (unknown [IPv6:2a01:e0b:1:150:ca0a:a9ff:fef1:a4c9]) by mx1.freebsd.org (Postfix) with ESMTP id 2F762A69 for ; Sun, 3 Mar 2013 00:15:28 +0000 (UTC) Received: from kanar.ci0.org (pluxor@localhost [127.0.0.1]) by kanar.ci0.org (8.14.5/8.14.5) with ESMTP id r230F4cr055043; Sun, 3 Mar 2013 01:15:04 +0100 (CET) (envelope-from mlfbsd@kanar.ci0.org) Received: (from mlfbsd@localhost) by kanar.ci0.org (8.14.5/8.14.5/Submit) id r230F4HH055042; Sun, 3 Mar 2013 01:15:04 +0100 (CET) (envelope-from mlfbsd) Date: Sun, 3 Mar 2013 01:15:04 +0100 From: Olivier Houchard To: Thomas Skibo Subject: Re: A bug in busdma_machdep-v6.c? Message-ID: <20130303001504.GA55003@ci0.org> References: <51329325.7070301@sbcglobal.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <51329325.7070301@sbcglobal.net> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-arm@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Mar 2013 00:15:29 -0000 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