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 E0EA3C47089 for ; Mon, 5 Dec 2022 15:19:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 008718E0003; Mon, 5 Dec 2022 10:19:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EFAD48E0001; Mon, 5 Dec 2022 10:19:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CE2228E0005; Mon, 5 Dec 2022 10:19:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B0EB58E0001 for ; Mon, 5 Dec 2022 10:19:33 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 75D5D1C63F9 for ; Mon, 5 Dec 2022 15:19:33 +0000 (UTC) X-FDA: 80208611826.28.A96EEFE Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by imf25.hostedemail.com (Postfix) with ESMTP id F20F2A0006 for ; Mon, 5 Dec 2022 15:19:32 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=QLN4GBhn; spf=pass (imf25.hostedemail.com: domain of "prvs=3338591533=kbusch@meta.com" designates 67.231.153.30 as permitted sender) smtp.mailfrom="prvs=3338591533=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=1670253573; 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=7lH3jiX0ruyeE1cdD2GeFbAsweQgWwurV4swoFMydnG0LWdsch+s4lMdN+dMm8ayo+T6xr obPhzjqHllJfAnuL8ruzikFSfu3iUZBkmA2LmtTBdjaa5G0mi/xSjfzqVrIG76zTPsUb+m P0T1Gm7RL1ZlxO/FoZQGdkKuyQe8z0c= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=QLN4GBhn; spf=pass (imf25.hostedemail.com: domain of "prvs=3338591533=kbusch@meta.com" designates 67.231.153.30 as permitted sender) smtp.mailfrom="prvs=3338591533=kbusch@meta.com"; dmarc=pass (policy=reject) header.from=meta.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670253573; a=rsa-sha256; cv=none; b=jW0zDHbQP1wkXsNodEU0leX1wnrZvF+Isw9u/621JpZykf+YtcE5z1m2bfs5addROVgMmq DQSZAWOAnov46db6mXlENfBdG1Tkuo0A28uzeNS53fPfUGvieTn9XuImIDX01h55VU4K4q txMIQjp+WzyVhwG7xauzixcqF/ZfY+s= Received: from pps.filterd (m0109331.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2B5B8jI1025632 for ; Mon, 5 Dec 2022 07:19:32 -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=QLN4GBhnbA83aq6qOliJgBUpxscTILYzIYn4FBmCQUXsY0guqxzDTGzMbv1wiLpjeJd1 1kXhbx5PtNDp8z7ZTQ8fX09HUzubN2G3RIFZwNrb6q6/an9SdF20Ts13Qs2pjagC42Sm Juvu/nK1ng81PI8ZbYGbcNHF5ep+mp6hU1cA4DUFQyi3EOL0TJamGK9WLtGOlf098kqF YxeRX/gIKjuwc6oYotHgsf9+jhI3xzlBhUTYWLp0F5JSGlJkNiaalY/WlhzJwKKyrFy3 06/uLfeJU75Ff9urSFA88fxTXl+9jGCXavrFP6auX4NXkV9+GpQKEcIw8u7pTAeM7mef cQ== Received: from mail.thefacebook.com ([163.114.132.120]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3m8561avw8-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 05 Dec 2022 07:19:32 -0800 Received: from twshared16963.27.frc3.facebook.com (2620:10d:c085:208::f) by mail.thefacebook.com (2620:10d:c085:21d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 5 Dec 2022 07:19:29 -0800 Received: by devbig007.nao1.facebook.com (Postfix, from userid 544533) id BDE46C615708; Mon, 5 Dec 2022 07:00:12 -0800 (PST) From: Keith Busch To: , , Matthew Wilcox CC: Tony Battersby , Keith Busch Subject: [PATCH 09/11] dmapool: simplify freeing Date: Mon, 5 Dec 2022 06:59:35 -0800 Message-ID: <20221205145937.54367-10-kbusch@meta.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221205145937.54367-1-kbusch@meta.com> References: <20221205145937.54367-1-kbusch@meta.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe Content-Type: text/plain X-Proofpoint-GUID: 1bxqVrpC35kRG6GjvYkOcJL8chRqmUMM X-Proofpoint-ORIG-GUID: 1bxqVrpC35kRG6GjvYkOcJL8chRqmUMM 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-05_01,2022-12-05_01,2022-06-22_01 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: F20F2A0006 X-Stat-Signature: o7xscb1c3hggazexku7dq53ucppgo7ym X-Spamd-Result: default: False [-0.76 / 9.00]; BAYES_HAM(-3.36)[93.00%]; R_MISSING_CHARSET(2.50)[]; MID_CONTAINS_FROM(1.00)[]; DMARC_POLICY_ALLOW(-0.50)[meta.com,reject]; R_DKIM_ALLOW(-0.20)[meta.com:s=s2048-2021-q4]; R_SPF_ALLOW(-0.20)[+ip4:67.231.153.30]; MIME_GOOD(-0.10)[text/plain]; RCVD_NO_TLS_LAST(0.10)[]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[meta.com:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FORGED_SENDER_VERP_SRS(0.00)[]; FROM_NEQ_ENVFROM(0.00)[kbusch@meta.com,prvs=3338591533=kbusch@meta.com]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; RCPT_COUNT_FIVE(0.00)[5]; TO_DN_SOME(0.00)[]; ARC_SIGNED(0.00)[hostedemail.com:s=arc-20220608:i=1]; PREVIOUSLY_DELIVERED(0.00)[linux-mm@kvack.org]; ARC_NA(0.00)[] X-Rspam-User: X-HE-Tag: 1670253572-778007 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