From owner-freebsd-current@FreeBSD.ORG Sun Sep 24 22:34:20 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D217316A416; Sun, 24 Sep 2006 22:34:20 +0000 (UTC) (envelope-from mbsd@pacbell.net) Received: from ylpvm12.prodigy.net (ylpvm12-ext.prodigy.net [207.115.57.43]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3780443DA9; Sun, 24 Sep 2006 22:34:15 +0000 (GMT) (envelope-from mbsd@pacbell.net) X-ORBL: [71.139.16.119] Received: from antec (ppp-71-139-16-119.dsl.snfc21.pacbell.net [71.139.16.119]) by ylpvm12.prodigy.net (8.13.7 out spool5000 dk/8.13.7) with ESMTP id k8OMXNtb003002; Sun, 24 Sep 2006 18:33:23 -0400 Date: Sun, 24 Sep 2006 15:34:13 -0700 (PDT) From: =?ISO-8859-1?Q?Mikko_Ty=F6l=E4j=E4rvi?= X-X-Sender: mikko@antec.home To: scottl@freebsd.org Message-ID: <20060924151759.D788@antec.home> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: current@freebsd.org Subject: i386/busmda_machdep.c 1.81 broke if_bfe X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Sep 2006 22:34:20 -0000 Hi, It seems to me that with version 1.81 of i386/busdma_machdep.c devices that need bounce buffers, but do not use a filter function, will no longer work. The run_filter() function contains the logic to detect if a bounce buffer is needed also when there is no filter function, so I believe it has to be called for devices that are marked as BUS_DMA_COULD_BOUNCE as well as for those that provide a filter function. For example, this makes my bfe0 interface work again: Index: busdma_machdep.c =================================================================== RCS file: /net/cvs/home/ncvs/src/sys/i386/i386/busdma_machdep.c,v retrieving revision 1.83 diff -u -b -r1.83 busdma_machdep.c --- busdma_machdep.c 24 Sep 2006 19:24:26 -0000 1.83 +++ busdma_machdep.c 24 Sep 2006 21:45:39 -0000 @@ -286,7 +286,7 @@ if (newtag->lowaddr < ptoa((vm_paddr_t)Maxmem) || newtag->alignment > 1) - newtag->flags |= BUS_DMA_COULD_BOUNCE; + newtag->flags |= BUS_DMA_COULD_BOUNCE | BUS_DMA_USE_FILTER; if (((newtag->flags & BUS_DMA_COULD_BOUNCE) != 0) && (flags & BUS_DMA_ALLOCNOW) != 0) { $.02, /Mikko