From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 318F3C4332F for ; Fri, 16 Dec 2022 20:17:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8461D900003; Fri, 16 Dec 2022 15:17:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7F777900002; Fri, 16 Dec 2022 15:17:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D4E1900003; Fri, 16 Dec 2022 15:17:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4B581900002 for ; Fri, 16 Dec 2022 15:17:27 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 17ADEA992E for ; Fri, 16 Dec 2022 20:17:27 +0000 (UTC) X-FDA: 80249279334.07.00F2179 Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by imf20.hostedemail.com (Postfix) with ESMTP id 3985D1C0022 for ; Fri, 16 Dec 2022 20:17:25 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=EKCA0B+h; spf=pass (imf20.hostedemail.com: domain of "prvs=33494f0754=kbusch@meta.com" designates 67.231.153.30 as permitted sender) smtp.mailfrom="prvs=33494f0754=kbusch@meta.com"; dmarc=pass (policy=reject) header.from=meta.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1671221845; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=vVY03djUbGuw9RyCWd6Eexf1lAzlqKJXlcJv1cor+cc=; b=39/x0a1+z8u+qcCIRR+ab3ME5ShuEGueli57zxKMO2pqhSKevya1X6Qnng3/Cp+h/ZSNk8 uJoZgpfwXjpwzIoThI7LETSDY5+kUGjRV7jGDj/lFh/mSQKUWPaNHAeFodynj1gbWoxbn6 v+ivV1cPY6oT/Vhf3brInhLOePTv28w= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=EKCA0B+h; spf=pass (imf20.hostedemail.com: domain of "prvs=33494f0754=kbusch@meta.com" designates 67.231.153.30 as permitted sender) smtp.mailfrom="prvs=33494f0754=kbusch@meta.com"; dmarc=pass (policy=reject) header.from=meta.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671221845; a=rsa-sha256; cv=none; b=mq0ZlGtDs47+QPYkqsReWoIvlXZXlijwbSYF71LTmmqthewb6JI3ADhjULkIH5FwMSnOGc x8zN7NY3eG+X4qYMwhU63wS02Ux/CP0YVDD8Q7QQN4ZxeDAvrEQEgai83UJonQy/NqYETj zgfMda2oSY/fXtTn+EiW6PseIORgqYM= Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BGJx5kW007828 for ; Fri, 16 Dec 2022 12:17:24 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=s2048-2021-q4; bh=vVY03djUbGuw9RyCWd6Eexf1lAzlqKJXlcJv1cor+cc=; b=EKCA0B+hrgWZGusugiQjREbG/siOJhUpzpm7y5E7Byc0U1PFytmCSSpP+757rRLlob3M /DAkqpdjkU+berglGccH1db6L+KkuuhcMEb28WPevJe8nz6PtsfX3n6J6UTZtxBkUd9x ohwjRsEQY5ex0hF2rJOrXt+rNPYYzoxLNkG7O4Qsfi0i3vvg294ITcoBm3af2cLcDuc5 3DUH6NPTjIJTd7qSu9VDmoSKBlPcb9liN8SaXpkox/+3HKnXZmlF4JayolAEbZiFonBN IHF3j3reEBigwDGFUZvdiP2zwtjbZzZW8hzOLipYwJbBJEZodYBTbhYztHun1U1wdfnz Og== Received: from mail.thefacebook.com ([163.114.132.120]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3mgv901aq4-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 16 Dec 2022 12:17:24 -0800 Received: from twshared8047.05.ash9.facebook.com (2620:10d:c085:208::f) by mail.thefacebook.com (2620:10d:c085:21d::4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 16 Dec 2022 12:17:22 -0800 Received: by devbig007.nao1.facebook.com (Postfix, from userid 544533) id 619E0D042AD5; Fri, 16 Dec 2022 12:17:10 -0800 (PST) From: Keith Busch To: , , Matthew Wilcox CC: Tony Battersby , Kernel Team , Keith Busch Subject: [PATCHv2 09/11] dmapool: simplify freeing Date: Fri, 16 Dec 2022 12:16:23 -0800 Message-ID: <20221216201625.2362737-10-kbusch@meta.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221216201625.2362737-1-kbusch@meta.com> References: <20221216201625.2362737-1-kbusch@meta.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe Content-Type: text/plain X-Proofpoint-GUID: JuJvDJ6gpPZ3zm5WQaH69MAdJm5OgeDD X-Proofpoint-ORIG-GUID: JuJvDJ6gpPZ3zm5WQaH69MAdJm5OgeDD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-16_14,2022-12-15_02,2022-06-22_01 X-Rspamd-Queue-Id: 3985D1C0022 X-Stat-Signature: aj7pcxsac916faa1yrtgja5wtt7wpddt X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1671221845-932321 X-HE-Meta: U2FsdGVkX18m3w/ABFJzIsCAvbiUnTI91LlGrtTYnLftwkbC4Lx3SVDLpn9X+HvolMoxxC6LOSaXky4BLpjdqa5Y8UF+xeRYw85hxeFvEvO1qva2vWKCVjXCk148gvLnaQ6l6GJvxJyRad7NRRs8ecfur94FcucyLkmBYdC9eu3qEFkFxVhnG8mMz9wxAafM+MoZjXBWNJEpI5gUNHqIBkjv9JMTIhQSVdkQdNsEbJuWPqpu3ezO2Mb1ZQKJInYi4yF8I4YkcTvS+BVhdHk2icrO51eeSeUFSL45pGMXF6nqvfCLDdNfsqQtHoNrtqkqR4GKqGGsw0xl5iY7wAd+nPfk+xSh6RGQOemZP+qA17SMaclbM7n7G4exd9/mvAAy2JwW6U63Jn4Vgz+U3Kwp01LRmxczKBuvdT87y2oHAZYQfDP0oblY2E95zHfOsmkGqzM8mfi4KNRZZiAS7G9qhfgymzlJYBxfrp6vw5xTwVDzNtdi2py6dRoZQg9udxyYUR1CnTNLPTSdfwprZPTFgg5qgFCpjOsLAyAeBW4Bn2BmSnQiLVy1fxLqResO0wi0G3YBBPYj4Sx8mNhUxNm08HyWO6AtBn14zhBISIMx3+7KLi2Q0fGNeAp/XJ2DUxoCVhGhtJOHsNofKbHfe3DME32lo83XnGyKUsP9vLjfI1aEUenA6hcHxDq12grqVwYNG94OHb/7cfD1Nrm3KqcwdzirA0bZvTle4a6k92kjk03X/ydiC3NDiAr6UieFj0nx9oQPl2pGSQojB/akGkzTViNIJyp8J9zY0y0l4wNb5iQkUhFU3B/VY69LGaTqxdIV6X6dG1Tyj8PMX8n4l54Xo5Nr/aNInyMtfL1tyh7CwvOk40LR9CQBIUveHTwzOvJ2kgXYYTtL5vq5Ace/OxJWHypdLFurSMou49/ZDRsF6sC+mH9uqne0qHcfFTqc58yb1nO4f8vj9ANkniIkeoL VuLqghSB GttaIY8NslOZ0trPOCCI6DzNQtdzsaLb4d30Z6KFJ+9A5UKA/98oFRCwhLhXPyVIZjMLiCatl52FLLth1BOiuTTW0+X/C/NfytG5rEpl10/TE42E= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Keith Busch The actions for busy and not busy are mostly the same, so combine these and remove the unnecessary function. Also, the pool is about to be freed so there's no need to poison the page data since we only check for poison on alloc, which can't be done on a freed pool. Signed-off-by: Keith Busch --- mm/dmapool.c | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/mm/dmapool.c b/mm/dmapool.c index 33d20ceff18c5..44622f2bf4641 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -241,18 +241,6 @@ static inline bool is_page_busy(struct dma_page *pag= e) return page->in_use !=3D 0; } =20 -static void pool_free_page(struct dma_pool *pool, struct dma_page *page) -{ - dma_addr_t dma =3D page->dma; - -#ifdef DMAPOOL_DEBUG - memset(page->vaddr, POOL_POISON_FREED, pool->allocation); -#endif - dma_free_coherent(pool->dev, pool->allocation, page->vaddr, dma); - list_del(&page->page_list); - kfree(page); -} - /** * dma_pool_destroy - destroys a pool of dma memory blocks. * @pool: dma pool that will be destroyed @@ -280,14 +268,14 @@ void dma_pool_destroy(struct dma_pool *pool) mutex_unlock(&pools_reg_lock); =20 list_for_each_entry_safe(page, tmp, &pool->page_list, page_list) { - if (is_page_busy(page)) { + if (!is_page_busy(page)) + dma_free_coherent(pool->dev, pool->allocation, + page->vaddr, page->dma); + else dev_err(pool->dev, "%s %s, %p busy\n", __func__, pool->name, page->vaddr); - /* leak the still-in-use consistent memory */ - list_del(&page->page_list); - kfree(page); - } else - pool_free_page(pool, page); + list_del(&page->page_list); + kfree(page); } =20 kfree(pool); @@ -445,11 +433,6 @@ void dma_pool_free(struct dma_pool *pool, void *vadd= r, dma_addr_t dma) page->in_use--; *(int *)vaddr =3D page->offset; page->offset =3D offset; - /* - * Resist a temptation to do - * if (!is_page_busy(page)) pool_free_page(pool, page); - * Better have a few empty pages hang around. - */ spin_unlock_irqrestore(&pool->lock, flags); } EXPORT_SYMBOL(dma_pool_free); --=20 2.30.2