From patchwork Thu Jan 26 21:51:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Keith Busch X-Patchwork-Id: 13117834 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 7099BC05027 for ; Thu, 26 Jan 2023 21:54:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 06B418E0002; Thu, 26 Jan 2023 16:54:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 01B468E0001; Thu, 26 Jan 2023 16:54:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E25BE8E0002; Thu, 26 Jan 2023 16:54:25 -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 D15B38E0001 for ; Thu, 26 Jan 2023 16:54:25 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8384F40E4A for ; Thu, 26 Jan 2023 21:54:25 +0000 (UTC) X-FDA: 80398304490.02.73A6407 Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by imf22.hostedemail.com (Postfix) with ESMTP id 79998C0017 for ; Thu, 26 Jan 2023 21:54:23 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=EW66EzzZ; dmarc=pass (policy=reject) header.from=meta.com; spf=pass (imf22.hostedemail.com: domain of "prvs=4390123481=kbusch@meta.com" designates 67.231.153.30 as permitted sender) smtp.mailfrom="prvs=4390123481=kbusch@meta.com" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674770063; 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=GssxkqRHzywk5Sc3h7qaypNsDK+tSAkz3BBhF75F+wE=; b=hxEwgtkPdW6MuQVhKzO4W5U0qI3CrcEoQqXJmnB1SUi7V3ikup3l5ml/dKO0+Why0OzxFE mhQwP+GcfTdjtILU98Z8tSpG/Lw1qWhYcgRCJJwmwNF6SftkWDXFJrOL/IpIHknZHYoap9 DFVLBq0E1pCeuM68nESZy+uFiv3AxXs= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=meta.com header.s=s2048-2021-q4 header.b=EW66EzzZ; dmarc=pass (policy=reject) header.from=meta.com; spf=pass (imf22.hostedemail.com: domain of "prvs=4390123481=kbusch@meta.com" designates 67.231.153.30 as permitted sender) smtp.mailfrom="prvs=4390123481=kbusch@meta.com" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674770063; a=rsa-sha256; cv=none; b=FdeiNCcRjrXV9NN5KV7HFDCEX66KL7A3YStJtSYNQZx5jIFF/2O20Eizbk0pxoelvsQ9C1 KK+nDX/20hCW1DebTjn6OLsUIhsS2ELX2D7xj7qrqgacCOPi6qQuQ+LJtGVkdWnvrhSihs ANQUGikhgvmz4IHuCoSQmo554VvxiO0= Received: from pps.filterd (m0001303.ppops.net [127.0.0.1]) by m0001303.ppops.net (8.17.1.19/8.17.1.19) with ESMTP id 30QH17S7029356 for ; Thu, 26 Jan 2023 13:54:22 -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=GssxkqRHzywk5Sc3h7qaypNsDK+tSAkz3BBhF75F+wE=; b=EW66EzzZTYxhxkLjG2nAjPndtIL8LgcOKBBHD/sSSDMd31TgPu0CZWKSeSNRB/D6mSNa dt8c+/70JMd1fhW8sMd/GQB2mQ6ijYChIbRbJkEnPu5A3lVTMiT+K5SXTBS7IBZooSgl /6Q5fi9ryDlra82ARf9bFswTsfAilHAwZv6cK5HYODvGn0/iGaYxhPGYWjwGEJhMzPyg o3eCENiy864rN1NDEddVjj2fQ++ENMLr7FwVH5byL0Zl58Piuhf0mCxzaKG1ldF3hIsz cLuGoG7fMBu8A1TwmCZ4NWzF1qpnle/lWci29BDJ4Mts+COFT4eBwAaLIvgHiZQWRQAz pQ== Received: from mail.thefacebook.com ([163.114.132.120]) by m0001303.ppops.net (PPS) with ESMTPS id 3nbe8yye18-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 26 Jan 2023 13:54:22 -0800 Received: from twshared24547.08.ash9.facebook.com (2620:10d:c085:108::4) by mail.thefacebook.com (2620:10d:c085:11d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.17; Thu, 26 Jan 2023 13:54:21 -0800 Received: by devbig007.nao1.facebook.com (Postfix, from userid 544533) id 3DA2DFE80A9C; Thu, 26 Jan 2023 13:51:26 -0800 (PST) From: Keith Busch To: , , , , , CC: , Keith Busch Subject: [PATCHv4 07/12] dmapool: rearrange page alloc failure handling Date: Thu, 26 Jan 2023 13:51:20 -0800 Message-ID: <20230126215125.4069751-8-kbusch@meta.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230126215125.4069751-1-kbusch@meta.com> References: <20230126215125.4069751-1-kbusch@meta.com> MIME-Version: 1.0 X-FB-Internal: Safe X-Proofpoint-ORIG-GUID: WUvm-yqcGak3y8lgPNXk4QAHX47oDyx1 X-Proofpoint-GUID: WUvm-yqcGak3y8lgPNXk4QAHX47oDyx1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-26_09,2023-01-26_01,2022-06-22_01 X-Rspamd-Queue-Id: 79998C0017 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: oo7eptnwfy7fzdwdk6apn3rdg9pwsxq7 X-HE-Tag: 1674770063-766303 X-HE-Meta: U2FsdGVkX18Au2DMiML9Jfsk3cnF+EMKBIDv6GgYiN1ldwUQotrN5ZzUPpuT8NGn/eE/GqJQIId3iM/jNF512j1IWJyS3CMvKy/XylQs0iF2l39PiFjcNoYC/8NfvH1TzKxI1w3B+zbkHXswVux+0u+3E2TaZorXXulsatT+Ah0VEuFBUlYCCdtIntE3rrV7vcUevu0MZ4GeXOwAn90vt+qKj+J7QDMMX9qin+Y075mk/mxy4FYeXoOwZ7/AeY3VrSSNekaph6CQe0VQEhoK68uOT4yyBa+u9SBiaKxTgOKe7TZq7Dtdq/W0E3gZd4v8WM3oA+vLRGjMdG3abB3kjsroZTscu4W1aO7FinVeNECsDC7UnMPyZXf1xzs1pzMT5++FB5oTjEeZceDN57E/tS5OEMreDATZxTKcqhZ54err4NRJocUyj/KXbo5nQnpNQ+91Oahy2Kx6hpi5TECW+BSSPINa4tVtNmE5K9SiPvzAj3wQbqOCIeeNulrBb7cwOqxU3jO+qZn7jjTuPgor7+d+521d/SvQ+My/TsmkkkfAtzdaLDRlppV514lWVeysTAG4IwGXhL7h4u0ducCIuk50NgNSNOOnjTlyduvDNg53w12rBXz1u49GuJqW0+AT/+1uD3GadY0CH7pk78WjvI7ybaplnIMvPtYtxmcaUKFDosNf3HVhUMZ0TY6JwC31iQRZ6nwXTDY8pbyteoTb1IijuCdQhxim79UkqwMulTCbJAqqNq5sMD89uf0WmMUs9kY/zd8O8agzXc2SCUysLgOA9gYFrw5Lb3CozH3+YGJn+YeQah4HEeB8zOP3GRPaXdEtkyiEYqheJFj0s1dwe4BPPnS37V6BfN8HoVAyW6E1JiMJipmdfCXWTL0Ty3WyE4xSYept1Hbep0CyHSEjsFkKWUe86X4mUgwGWsaiIymT8xJ3mHBOQyczriO2LlzNd/7wTSJNfiayFcb9AKr GOsKC3Lb sx17qD2LUi2FNMcH/Hvv6SuT3IOkk9qCMx+B1MWWgJAXC4SbX6FDPcfM0EB5xortul107acTwyAHRlQtcB6zzfY/QES+8DXqwKm+EMJn75yCgQ92A5XtsLZcPKMFSgrZvPEvdhI+HD/v41IrliMl1T9pytyZG79FsxF04uvhvE4cJ6SCzPQSyhBNgL9m4n2IInxDK6b5TGw/DknZccOn8NH8MMqngdemJgmBRcST4NyAr7/2fc8OXm5IC77Ukrbm/VuqITooCTl7e9V6X+vqdEqdPgKwcPh9MWTuBvHTpJhyX1zr6UF6Z0NPmlBkxO9/ak58GipftVhjeHnl8wqnUwGh9gsIcZoWoIVSqyayyZUeJIz48CrUwPbHzEMLSDZI5pif63mvF7X6whas= 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 Handle the error in a condition so the good path can be in the normal flow. Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig --- mm/dmapool.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/mm/dmapool.c b/mm/dmapool.c index 30b069e999968..900f2afa363a9 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -292,17 +292,19 @@ static struct dma_page *pool_alloc_page(struct dma_pool *pool, gfp_t mem_flags) page = kmalloc(sizeof(*page), mem_flags); if (!page) return NULL; + page->vaddr = dma_alloc_coherent(pool->dev, pool->allocation, &page->dma, mem_flags); - if (page->vaddr) { - pool_init_page(pool, page); - pool_initialise_page(pool, page); - page->in_use = 0; - page->offset = 0; - } else { + if (!page->vaddr) { kfree(page); - page = NULL; + return NULL; } + + pool_init_page(pool, page); + pool_initialise_page(pool, page); + page->in_use = 0; + page->offset = 0; + return page; }