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 C97A7C4332F for ; Thu, 24 Nov 2022 04:02:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 55A8E6B0071; Wed, 23 Nov 2022 23:02:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 50ABC6B0072; Wed, 23 Nov 2022 23:02:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D1BD6B0074; Wed, 23 Nov 2022 23:02:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 29D906B0071 for ; Wed, 23 Nov 2022 23:02:35 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E9837804B8 for ; Thu, 24 Nov 2022 04:02:34 +0000 (UTC) X-FDA: 80166989028.27.7385916 Received: from cstnet.cn (smtp21.cstnet.cn [159.226.251.21]) by imf05.hostedemail.com (Postfix) with ESMTP id CF630100002 for ; Thu, 24 Nov 2022 04:02:32 +0000 (UTC) Received: from localhost.localdomain (unknown [124.16.138.125]) by APP-01 (Coremail) with SMTP id qwCowACXnjbT7H5jRa6HAQ--.13010S2; Thu, 24 Nov 2022 12:02:28 +0800 (CST) From: Jiasheng Jiang To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jiasheng Jiang Subject: [PATCH] mm/vmalloc: Add check for KMEM_CACHE Date: Thu, 24 Nov 2022 12:02:26 +0800 Message-Id: <20221124040226.17953-1-jiasheng@iscas.ac.cn> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:qwCowACXnjbT7H5jRa6HAQ--.13010S2 X-Coremail-Antispam: 1UD129KBjvJXoW7CFW8ZrWUCw17Gw17uFWDXFb_yoW8Jw1UpF W3Gw13Wr4rXwnxCrnxJFW8WF1fKa1ktFy8Ka1a9w18Zw1akF4fZFW5J348XryrurZrAF12 vF18K3Wrur42qr7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUyl14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Cr 1j6rxdM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj 6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr 0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxAIw28IcxkI7VAK I48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7 xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI42IY6xII jxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw2 0EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x02 67AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjfU5WlkUUUUU X-Originating-IP: [124.16.138.125] X-CM-SenderInfo: pmld2xxhqjqxpvfd2hldfou0/ ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; spf=pass (imf05.hostedemail.com: domain of jiasheng@iscas.ac.cn designates 159.226.251.21 as permitted sender) smtp.mailfrom=jiasheng@iscas.ac.cn; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1669262554; a=rsa-sha256; cv=none; b=OxNA8Cw8JM7byNG4fDqlFfMCtVem7RJdkUBnRPWhJLc0glXwTKlRX6DXAx37t7K+9kDAPh e5oxJ1n51E8jj2iTJeHyQfZkJ0hVZ5xD7xaOhfZ+klDZ3452qeZWxwjgbFqWEC9pUocGvO RuOMdLvV3Nl+2euXtY9UVRvo6tGmOLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1669262554; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=60gyWdX0cCn5HcpciA+8IBaWRRbDSlezbWeVg9ZsESo=; b=U3hdktvCgLRbQ93jKVji8zcUSe5C+CiFOKfGWQ56CrIi+eafUdC8aSA6NdOLrX17vqgoz8 2HIvc72oWXFTWRjZ61ktGdrxezKZVydrR8Z6MFHjsiDCMIGyTUbSqgXFkyIhBx1gDHq+hV GYjFUHSvMV1w7w+RVQu5UshFya6GAVs= X-Stat-Signature: 7dq6hwene1jj3zsek5bqbh6t1tpik3jr X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: CF630100002 Authentication-Results: imf05.hostedemail.com; dkim=none; spf=pass (imf05.hostedemail.com: domain of jiasheng@iscas.ac.cn designates 159.226.251.21 as permitted sender) smtp.mailfrom=jiasheng@iscas.ac.cn; dmarc=none X-Rspam-User: X-HE-Tag: 1669262552-940531 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: As KMEM_CACHE may return NULL pointer, it should be better to check the return value in order to avoid NULL pointer dereference in kmem_cache_zalloc. Fixes: 68ad4a330433 ("mm/vmalloc.c: keep track of free blocks for vmap allocation") Signed-off-by: Jiasheng Jiang --- mm/vmalloc.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index ccaa461998f3..df3e59f614cc 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2426,15 +2426,17 @@ void __init vmalloc_init(void) } /* Import existing vmlist entries. */ - for (tmp = vmlist; tmp; tmp = tmp->next) { - va = kmem_cache_zalloc(vmap_area_cachep, GFP_NOWAIT); - if (WARN_ON_ONCE(!va)) - continue; + if (!WARN_ON_ONCE(!vmap_area_cachep)) { + for (tmp = vmlist; tmp; tmp = tmp->next) { + va = kmem_cache_zalloc(vmap_area_cachep, GFP_NOWAIT); + if (WARN_ON_ONCE(!va)) + continue; - va->va_start = (unsigned long)tmp->addr; - va->va_end = va->va_start + tmp->size; - va->vm = tmp; - insert_vmap_area(va, &vmap_area_root, &vmap_area_list); + va->va_start = (unsigned long)tmp->addr; + va->va_end = va->va_start + tmp->size; + va->vm = tmp; + insert_vmap_area(va, &vmap_area_root, &vmap_area_list); + } } /* -- 2.25.1