From patchwork Fri Dec 16 20:16:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Keith Busch X-Patchwork-Id: 13075359 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 120E0C001B2 for ; Fri, 16 Dec 2022 20:17:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 894608E0003; Fri, 16 Dec 2022 15:17:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 846428E0001; Fri, 16 Dec 2022 15:17:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6E6DF8E0003; Fri, 16 Dec 2022 15:17:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 613398E0001 for ; Fri, 16 Dec 2022 15:17:22 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 375D48029A for ; Fri, 16 Dec 2022 20:17:22 +0000 (UTC) X-FDA: 80249279124.24.309CA77 Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by imf06.hostedemail.com (Postfix) with ESMTP id 238A3180013 for ; Fri, 16 Dec 2022 20:17:19 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=EOJULLWU; spf=pass (imf06.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=1671221840; 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=YU1RvihRnvDJ0EI7aPZRW/ndJTmtKABPXXQKd2XE/QM=; b=vcYCIx5/224LIKyIGH6Z6qz6SiCbKhM+gSVxUp6R2DgvkZXj5QQdbDeuOZ3SBt7FWXjIpG HxDrh1kDWEALBpEEUzs9c65YsvInFvDPh34C6qClhbWwPbsBHcWqJ6fpJBzM+iqfAfTdMK yuTX6HX9KINuzJW20noucXQpTtF3KPA= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=EOJULLWU; spf=pass (imf06.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=1671221840; a=rsa-sha256; cv=none; b=H37K0f2z6bf4N7J/3hJi4c3j8xaFt1pRGU93m0NaJCfFqjeDTVpeiaJJXvCARK+tPn6Xqw uokOmSaDsk5KkqkuELOS4CBsG45tKbawqgfJ6j3g1VV+9lmO3RiOtvyLsyCdOr3b9E0V/F cr6aBgVJCPUEWBSULsuDF5PQiZzoBb4= Received: from pps.filterd (m0089730.ppops.net [127.0.0.1]) by m0089730.ppops.net (8.17.1.19/8.17.1.19) with ESMTP id 2BGJx3GS022876 for ; Fri, 16 Dec 2022 12:17:19 -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=YU1RvihRnvDJ0EI7aPZRW/ndJTmtKABPXXQKd2XE/QM=; b=EOJULLWU5UiM1q04JbUAbiQd0PUKnll0UXbftHQzzxz7yZK3DjguaSKyqwL1JRpxtcFY wAx1DBpLWKk8quCYHZmll68+0uhWKQ8zorCor1mfyWh8+uQxvsPPKJ6cGtCLCJPWzS3Z XvsJIwOqeI78+CmYSJW5MwCtQEh+k4tqReLf8DhtOhAgCSlZrRxsCnNLVtQ/+o+mEpk/ +WbH97ifLShydcbG9gNi6mRAjulATneAj02jCdi98MZEeJt0CPGhbpcMMfhfOkBH53C3 qqn3mVOkSEFvFmogvHyvGN8xckvj1rDccte/q0tesXw7MBX/+d21ExQNAgu6S38gEzm0 Ng== Received: from mail.thefacebook.com ([163.114.132.120]) by m0089730.ppops.net (PPS) with ESMTPS id 3mgsfdacgm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 16 Dec 2022 12:17:19 -0800 Received: from snc-exhub201.TheFacebook.com (2620:10d:c085:21d::7) by snc-exhub202.TheFacebook.com (2620:10d:c085:21d::5) 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:18 -0800 Received: from twshared21680.02.ash8.facebook.com (2620:10d:c085:108::8) by mail.thefacebook.com (2620:10d:c085:21d::7) 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:17 -0800 Received: by devbig007.nao1.facebook.com (Postfix, from userid 544533) id F41E3D042AB3; Fri, 16 Dec 2022 12:17:09 -0800 (PST) From: Keith Busch To: , , Matthew Wilcox CC: Tony Battersby , Kernel Team , Keith Busch Subject: [PATCHv2 02/11] dmapool: remove checks for dev == NULL Date: Fri, 16 Dec 2022 12:16:16 -0800 Message-ID: <20221216201625.2362737-3-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 X-FB-Internal: Safe X-Proofpoint-GUID: 6CHDNND40yUNYXUiri3Guy-XGmW_TeVf X-Proofpoint-ORIG-GUID: 6CHDNND40yUNYXUiri3Guy-XGmW_TeVf 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: 238A3180013 X-Stat-Signature: pobc338oacdzkowf6d5trco4to3pbjso X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1671221839-375601 X-HE-Meta: U2FsdGVkX19ntohVQy1pl5DXqF1OgxApaO8K6KsmLsVxE7NS95vmLTKhXaey/fkYA7x9dq1XV43oe/Pf27TBnzylzrK3q5r3owqMtfR9OAXXnmN6Yhr+hJbleCXStBNu/1DEbj0a0OriLpPm5DiK7uld1GIvvUaY7RRnWFMBY7cMgmYfQPuPrZbStEaBIBfps1+U57B3pkAkKLEHRBaVWIfIBRfM4V7pLMqS6mMGEGWSuC91g6nYWItUaX5L5UdceIo36pcOpQDJohBopK6q5q3CP7lXdMfsYXyDSJzE9e1PUAOe/0SZD/gZPRr4zpsUX+od5ZAYrLul3Oagjtziozyp6t9hCxOukXfEYlROgExjXDHrQVeXX6SHRfPobriYznr2wENPo2f/K6ndHJZKKB9ESUZUFu64ObPdLXp8d5f//d/3/ucuM8+JkWbPzXn7zknsH04JpmKRRKZ07Ae/kNd8joCcRr/MY/SiBQRuosuCIvgtYoUx38lgFqYSPSdz5rSaXcnOj+ynXFmOr7s1NwU9d39MPb34YxdyIuzMRR8t6jnvnBNMtAm5uj/sbh9KATY8RV8Ycx7s9oJgR/aV6883kKrw2vwfmTq+9Qt9yg29pLrnSTYXAJSwUnp7QGhJZWVfFQtF7apfOdImzn3EgM1oIfjtQfLQPUKAzRXJm3P2KvUfSSAM5NBDPfdsrBVGTXYSy5PPA6/HKiCbv8itXb1Fi93jQO0NDXG587KqP8+mSZLEGoRtEQ9JTPnqRtUQLnmMXozGN2m376JvOTPFMQTlzO2dPUlcafvFQBCvpW1Nb9jcCGJG9o4u/O+iklIKT60hGFeVliRb1wxRK8x1xRXyYH4yJ/97t14rhcaL7sQUjeeCVxzsM3pUURrljF/gIui1jvO++65nFChVKE332VS/Lx7roGwEE05TJMS9XO2LhgQ7Pt0xYdQznQB2u1w51rd9BEWxiDwarTeQaR3 ysN1KepB 37JzB+jP4jwxRtqrp+U/c3jSQlm072bhNWyI5LEmFlkWBCGBmSG0wB39D6g7Mew1cfE7p+PfZVV4sh17gIhU45oKmGBVUKfdOUQYKAE7yiTbcWF4= 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: Tony Battersby dmapool originally tried to support pools without a device because dma_alloc_coherent() supports allocations without a device. But nobody ended up using dma pools without a device, and trying to do so will result in an oops. So remove the checks for pool->dev == NULL since they are unneeded bloat. Signed-off-by: Tony Battersby [added check for null dev on create] Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig --- mm/dmapool.c | 45 ++++++++++++++------------------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/mm/dmapool.c b/mm/dmapool.c index a7eb5d0eb2da7..559207e1c3339 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -134,6 +134,9 @@ struct dma_pool *dma_pool_create(const char *name, struct device *dev, size_t allocation; bool empty = false; + if (!dev) + return NULL; + if (align == 0) align = 1; else if (align & (align - 1)) @@ -275,7 +278,7 @@ void dma_pool_destroy(struct dma_pool *pool) mutex_lock(&pools_reg_lock); mutex_lock(&pools_lock); list_del(&pool->pools); - if (pool->dev && list_empty(&pool->dev->dma_pools)) + if (list_empty(&pool->dev->dma_pools)) empty = true; mutex_unlock(&pools_lock); if (empty) @@ -284,12 +287,8 @@ void dma_pool_destroy(struct dma_pool *pool) list_for_each_entry_safe(page, tmp, &pool->page_list, page_list) { if (is_page_busy(page)) { - if (pool->dev) - dev_err(pool->dev, "%s %s, %p busy\n", __func__, - pool->name, page->vaddr); - else - pr_err("%s %s, %p busy\n", __func__, - pool->name, page->vaddr); + 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); @@ -351,12 +350,8 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, for (i = sizeof(page->offset); i < pool->size; i++) { if (data[i] == POOL_POISON_FREED) continue; - if (pool->dev) - dev_err(pool->dev, "%s %s, %p (corrupted)\n", - __func__, pool->name, retval); - else - pr_err("%s %s, %p (corrupted)\n", - __func__, pool->name, retval); + dev_err(pool->dev, "%s %s, %p (corrupted)\n", + __func__, pool->name, retval); /* * Dump the first 4 bytes even if they are not @@ -411,12 +406,8 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma) page = pool_find_page(pool, dma); if (!page) { spin_unlock_irqrestore(&pool->lock, flags); - if (pool->dev) - dev_err(pool->dev, "%s %s, %p/%pad (bad dma)\n", - __func__, pool->name, vaddr, &dma); - else - pr_err("%s %s, %p/%pad (bad dma)\n", - __func__, pool->name, vaddr, &dma); + dev_err(pool->dev, "%s %s, %p/%pad (bad dma)\n", + __func__, pool->name, vaddr, &dma); return; } @@ -426,12 +417,8 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma) #ifdef DMAPOOL_DEBUG if ((dma - page->dma) != offset) { spin_unlock_irqrestore(&pool->lock, flags); - if (pool->dev) - dev_err(pool->dev, "%s %s, %p (bad vaddr)/%pad\n", - __func__, pool->name, vaddr, &dma); - else - pr_err("%s %s, %p (bad vaddr)/%pad\n", - __func__, pool->name, vaddr, &dma); + dev_err(pool->dev, "%s %s, %p (bad vaddr)/%pad\n", + __func__, pool->name, vaddr, &dma); return; } { @@ -442,12 +429,8 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma) continue; } spin_unlock_irqrestore(&pool->lock, flags); - if (pool->dev) - dev_err(pool->dev, "%s %s, dma %pad already free\n", - __func__, pool->name, &dma); - else - pr_err("%s %s, dma %pad already free\n", - __func__, pool->name, &dma); + dev_err(pool->dev, "%s %s, dma %pad already free\n", + __func__, pool->name, &dma); return; } }