From owner-freebsd-questions@FreeBSD.ORG Thu Mar 20 17:29:24 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 11DB41065673 for ; Thu, 20 Mar 2008 17:29:24 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (casselton.net [63.165.140.2]) by mx1.freebsd.org (Postfix) with ESMTP id C2E9C8FC21 for ; Thu, 20 Mar 2008 17:29:23 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (localhost [127.0.0.1]) by casselton.net (8.14.2/8.14.2) with ESMTP id m2KHTMF6002540; Thu, 20 Mar 2008 12:29:22 -0500 (CDT) (envelope-from tinguely@casselton.net) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=casselton.net; s=ccnMail; t=1206034162; bh=Gw6b+WJQeiOnGPrDWPCsZJOCXI0=; h=Date: From:Message-Id:To:In-Reply-To; b=dGHNPhUo0CDrTyhuQWzdjcNdm8hEiqwC f0PqPnsAKMRPsRRCvJNXBYu4Gx2BbNBzFvl0zYLwQxg04XPtrGmsH1Ntzt6jrx4Q21K wdcKkotJhWG583zBj/WErL5QcTpUUqqVnhXpn6uagCGo4iCt+tHxxhFTDHP/09xv6cy GP7BM= Received: (from tinguely@localhost) by casselton.net (8.14.2/8.14.2/Submit) id m2KHTMd8002539; Thu, 20 Mar 2008 12:29:22 -0500 (CDT) (envelope-from tinguely) Date: Thu, 20 Mar 2008 12:29:22 -0500 (CDT) From: Mark Tinguely Message-Id: <200803201729.m2KHTMd8002539@casselton.net> To: freebsd-questions@freebsd.org, yonyossef.lists@gmail.com In-Reply-To: <20def4870803200908q63137451p7bf052337a2cc5e0@mail.gmail.com> Cc: Subject: Re: bus_dmamem_alloc X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Mar 2008 17:29:24 -0000 > so I'm running: > > err = > bus_dmamem_alloc(ring->dma_tag, &ring->buf, > BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW, &ring->dma_map); > > but after calling bus_dmamem_allloc the dma_map variable is still NULL. is > this OK? Sure, you are allocating with BUS_DMA_NOWAIT. err is probably equal to ENOMEM. If allocation size is larger than a PAGE_SIZE or specific alignment is require then contigmalloc() is called to satisfy the allocation. contigmalloc() can fail even when specifying WAITOK. --Mark Tinguely.