From owner-freebsd-alpha Thu Mar 9 23:41:23 2000 Delivered-To: freebsd-alpha@freebsd.org Received: from mass.cdrom.com (castles556.castles.com [208.214.165.120]) by hub.freebsd.org (Postfix) with ESMTP id 6D0CB37B967; Thu, 9 Mar 2000 23:41:20 -0800 (PST) (envelope-from msmith@mass.cdrom.com) Received: from mass.cdrom.com (localhost [127.0.0.1]) by mass.cdrom.com (8.9.3/8.9.3) with ESMTP id XAA00848; Thu, 9 Mar 2000 23:42:45 -0800 (PST) (envelope-from msmith@mass.cdrom.com) Message-Id: <200003100742.XAA00848@mass.cdrom.com> X-Mailer: exmh version 2.1.1 10/15/1999 To: mjacob@feral.com Cc: Mike Smith , alpha@FreeBSD.ORG Subject: Re: problem with bus_dmamap_destroy? In-reply-to: Your message of "Thu, 09 Mar 2000 23:29:00 PST." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 09 Mar 2000 23:42:44 -0800 From: Mike Smith Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > > No, I believe the first BUS_SPACE_MAXADDR is fine- When you say "hang", hang > where? Unless you've marked this device as BUS_DMA_ISA (where it *might* hang > in sgmap_free_region), it would have to hang in free()- are you sure it's > actually hanging and you don't have some loop where it's trying to destroy the > map when there are still loaded pages? If I bracket the bus_dmamap_destroy with printfs, I get the first but not the second one. I guess I need to go get busy then. Thanks! > On Thu, 9 Mar 2000, Mike Smith wrote: > > > > > Just wondering if anyone's seen a problem with bus_dmamap_destroy() > > hanging on the Alpha. I've tracked down a hang when unloading the Mylex > > driver which doesn't maifest on the i386. > > > > error = bus_dma_tag_create(sc->mlx_parent_dmat, /* parent */ > > 1, 0, /* alignment, boundary */ > > BUS_SPACE_MAXADDR, /* lowaddr */ > > BUS_SPACE_MAXADDR, /* highaddr */ > > NULL, NULL, /* filter, filterarg */ > > MAXBSIZE, MLX_NSEG, /* maxsize, nsegments */ > > BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */ > > 0, /* flags */ > > &sc->mlx_buffer_dmat); > > > > ... > > bus_dmamap_create(sc->mlx_buffer_dmat, 0, &mc->mc_dmamap); > > ... > > bus_dmamap_destroy(sc->mlx_buffer_dmat, mc->mc_dmamap); > > > > I've had someone suggest that the lowaddr parameter should be 0; is this > > actually correct? (The DMA mapping does otherwise seem to work...) > > > > Any "been there, done that" suggestions before I dig into this? > > > > Thanks. > > > > -- > > \\ Give a man a fish, and you feed him for a day. \\ Mike Smith > > \\ Tell him he should learn how to fish himself, \\ msmith@freebsd.org > > \\ and he'll hate you for a lifetime. \\ msmith@cdrom.com > > > > > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-alpha" in the body of the message > > > > -- \\ Give a man a fish, and you feed him for a day. \\ Mike Smith \\ Tell him he should learn how to fish himself, \\ msmith@freebsd.org \\ and he'll hate you for a lifetime. \\ msmith@cdrom.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message