From owner-freebsd-net@FreeBSD.ORG Wed Nov 25 10:09:53 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B182106566B for ; Wed, 25 Nov 2009 10:09:53 +0000 (UTC) (envelope-from beezarliu@yahoo.com.cn) Received: from n14.bullet.mail.mud.yahoo.com (n14.bullet.mail.mud.yahoo.com [68.142.206.41]) by mx1.freebsd.org (Postfix) with SMTP id 4DDEC8FC1D for ; Wed, 25 Nov 2009 10:09:53 +0000 (UTC) Received: from [209.191.108.97] by n14.bullet.mail.mud.yahoo.com with NNFMP; 25 Nov 2009 09:57:22 -0000 Received: from [68.142.201.72] by t4.bullet.mud.yahoo.com with NNFMP; 25 Nov 2009 09:57:22 -0000 Received: from [127.0.0.1] by omp424.mail.mud.yahoo.com with NNFMP; 25 Nov 2009 09:57:22 -0000 X-Yahoo-Newman-Id: 301322.96483.bm@omp424.mail.mud.yahoo.com Received: (qmail 6091 invoked from network); 25 Nov 2009 09:57:21 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.cn; h=Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:Date:From:To:Subject:Message-ID:X-mailer:Mime-Version:Content-Type; b=6EDuxlFj/rBs/TQc2ij6RRwUweAbKQEUyHAjTWEJk6DYbEsnxBQbsEjzaC1fbWj66x1rWKhVKoWbMJGu1JJAn93TJWl1eaE+ysiZ+enqZDLuxhG2NlovYLMfnZ5P38g7kDRsFklu0FUkSSTSIp6+pWOMnazAT6L7z894ynAXoWY= ; Received: from (beezarliu@124.42.99.101 with login) by smtp123.plus.mail.sp1.yahoo.com with SMTP; 25 Nov 2009 01:57:21 -0800 PST X-Yahoo-SMTP: YP5UPy2swBBHZGZlvbmOrntlD3fotw-- X-YMail-OSG: FJZwPzQVM1l4J1tqInNmFBLIAsTPqyTBi2H81WK9.d6bu1YLdTta1ksjFYND3LIUvM0foz67tyxzp9g_s_2LfEBhXM2AqrjnOn5Vyr6GsjHq6SKOlroma.jDnhms1JXxxUFlr.7NzlwqELK37dPjrRRnWMlHuJRGBlHB0waSdxZZQVPMaUr9q0_Z_j2sD0icN9Oj.37.gV47K91V2nf41VozghPeqljEi09WS1Fo9QmLYibvmiEnjyRhelWdmAdi X-Yahoo-Newman-Property: ymail-3 Date: Wed, 25 Nov 2009 17:56:50 +0800 From: "beezarliu" To: "freebsd-net" Message-ID: <200911251756446718122@yahoo.com.cn> X-mailer: Foxmail 6, 10, 201, 20 [cn] Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: possible memory leak in em_dma_free? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Nov 2009 10:09:54 -0000 Hi all, I saw em driver, and found a possible memory leak. dma->dma_map may be NULL, so the dma memory will not be freed. I think the condition will it be beter if it is "(dma->dma_vaddr != NULL) {" Thanks static void em_dma_free(struct adapter *adapter, struct em_dma_alloc *dma) { if (dma->dma_tag == NULL) return; if (dma->dma_map != NULL) { --> if (dma->dma_vaddr != NULL) { bus_dmamap_sync(dma->dma_tag, dma->dma_map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(dma->dma_tag, dma->dma_map); bus_dmamem_free(dma->dma_tag, dma->dma_vaddr, dma->dma_map); dma->dma_map = NULL; } bus_dma_tag_destroy(dma->dma_tag); dma->dma_tag = NULL; } 2009-11-25 beezarliu