From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 044422C86D for ; Sun, 2 Aug 2026 10:46:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785667593; cv=none; b=Hu88IMtvPK2XoVG9pu6HLKedFs+1dVWpjEqjcjINDStFxDIOtCwA6SLkUpsnTWZWE8flEyaV7eaRngHt8/j7fUZQyaO8Gfp218nxVUlgGRaEtleAwhn6MpB5apXgjMVnByRUofDNJu1I74+tNnNvreyWovtLLvTtnl05jCB2GXg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785667593; c=relaxed/simple; bh=h+mqQ2AGwPdtyTXzVDXXUbrmH2/T3JzxCyZ08KfDFVU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=k2mGca2td7bAXBE+RD5is4Jq5SzwNJY5zwSGPCmgz/ygypmRkpmgFrNrwXMI35sNbzKTmWxa2PU24iulfRW36NRN58JxyPNixuoZxK8CzqGocUlmms4Z0QjEwOnyr39p83KSExu+gR8MIsJHDSkJn5X63bWk2pLuvy9smvcVFsI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Db5PZoEI; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Db5PZoEI" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-698a9f11776so3807856a12.1 for ; Sun, 02 Aug 2026 03:46:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785667590; x=1786272390; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=hMc7JramF3Usd/keb3lUAwYR6zMtPrVV5PxoLUsaA1U=; b=Db5PZoEIbSbdvtrr/GNvH9XpTUwXvVjZVFUl6XvxDvcFcm4Cn/plkzUSOc4ZadF49n wPRgX2gwQLO6uLlepLrgvlQR5nmQL0EZvG8l2xwVU+qjlVeRepmW5uqvsTi62iwbfN+U NsuSDFTR9FQKyCrWHiBBawcfBjCVGZkrvbw6o/npEmzPpux45jUVazunxulSabALF1Vn mLjPSECYIjceejwpnd0fVLtxpV39lsyJs8HOjbOSINNVtz4ELHEbkXSlKky5/PqXHCx0 knAUu0KiSvnO+15yNLCMrLAb+etJ2T7CFKbe/2gT5vltW3Cw3eZClQKHTJ7vf5NAPBVJ nRcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785667590; x=1786272390; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hMc7JramF3Usd/keb3lUAwYR6zMtPrVV5PxoLUsaA1U=; b=lz4ZfNAtZGE+MhB50LM2+zHoi3KNAok4dh4JIVKezwZ5Kgp4BsqW16UHS8UcDxfkDO ZK2UnrIBzrk+hbN9ruY+Ec5a7X40v221ONeB1VFlLmJ5fj8sXm4EjgbfXcEzYYy3iv9z QKUGbhN8et779fP4ivBnw2dGyNWfMMbuctmiEiq1NJqDsUSKemsGXdt+3rFbHsrVpn+D mdBuJLPka2bcAivdvZyQnXU96TpqfIRFRFRzVD2/kbyiVSXxCUREwTUlxb6QPaunhEJp +mp3hwMQMyrW51nFAH9Hcg9av9xdCx4jOIpeAimkx3baeSQ4wrxhN0RgKZZK7Fv7uhPc q0hg== X-Forwarded-Encrypted: i=1; AHgh+Rrl62REjrFxSOH34DZ3B42l6bTqzv6AOUuy/CHv6ur3u6qbkGRmDXG+N3m4ykxeP5iR5nvoFoBNVrVXmpA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+NE8+PTX2zpTsrIF5LJSpmhM3DukKXD49UJur1v6nk7SnHP+N Cv0djAJ/6kUriuLRzfyFFy8se33TStTtzgy0+wGs2PqMk7s/p9TsQII1 X-Gm-Gg: AR+sD1063WbnMdzfPKW9MUGWn4urUAPrAUvPxvqlqg33Ne7YBWayVEeqsw3PRllGbVC 6GWu4iD0d/s3ma6McrGou2J1lXtY/jOtk1/5dxguAOs0OkO2n5qjfqNp70I5hgdy7pkj6/UzKvF otAVS02Tbhat0UosS0cmc9JZahrjZypghik0S0CAL1uEhAPdy9Z0/XBXkUQIyfyqOBtabjImEw8 373nRjBdiy0sDqAS+66kQZD0WDLn+MCWlhQH714vgysMpScx/cDjZMqLGrzQkztWzajOL7PHXzi XAZ2J8etjMZlnQ3CtvZJL4Yn/W2LgJ2flo8DyMWM3qcVIRNtbvGjb3Kr5pLqEA/cu9Qiu/86tcp YgNLODHwtjnu7KSu1AIpg89m/v+DvnFtWxI3y9+aWliS2ig/ehamKHiKGkUPsVrHa/KTfwOPp3L FJgyiWYbb34ioKGYDulHHB7DtTjipNEr7w5UFms7yScupxkRly0eEVoPjQYSReGC0= X-Received: by 2002:a17:907:cd05:b0:c19:45e2:b3c2 with SMTP id a640c23a62f3a-c1fe7ea7fb2mr397510366b.10.1785667590045; Sun, 02 Aug 2026 03:46:30 -0700 (PDT) Received: from localhost.localdomain ([2001:9b1:d5a0:a500::24b]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1fd445433esm427342466b.30.2026.08.02.03.46.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Aug 2026 03:46:29 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: linux-mm@kvack.org, Andrew Morton Cc: Baoquan He , LKML , Uladzislau Rezki , syzbot+61c997e6be1d9bb300ba@syzkaller.appspotmail.com Subject: [PATCH] mm/vmalloc: Do not warn on -ENOMEM from va_alloc() Date: Sun, 2 Aug 2026 12:46:27 +0200 Message-ID: <20260802104627.63892-1-urezki@gmail.com> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Since vmalloc() accepts non-blocking GFP flags, allocation requests may fail when callers pass restrictive GFP masks. va_clip() may return -ENOMEM when its GFP_NOWAIT fallback allocation fails during NE_FIT_TYPE splitting. This is an expected failure, so va_alloc() should return the error without triggering a kernel splat. Reported-by: syzbot+61c997e6be1d9bb300ba@syzkaller.appspotmail.com Signed-off-by: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 1afca3568b9b..7a0cbba3d29d 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1817,8 +1817,10 @@ va_alloc(struct vmap_area *va, /* Update the free vmap_area. */ ret = va_clip(root, head, va, nva_start_addr, size); - if (WARN_ON_ONCE(ret)) + if (ret) { + WARN_ON_ONCE(ret != -ENOMEM); return ret; + } return nva_start_addr; } @@ -1891,12 +1893,9 @@ preload_this_cpu_lock(spinlock_t *lock, gfp_t gfp_mask, int node) /* * Preload this CPU with one extra vmap_area object. It is used - * when fit type of free area is NE_FIT_TYPE. It guarantees that - * a CPU that does an allocation is preloaded. - * - * We do it in non-atomic context, thus it allows us to use more - * permissive allocation masks to be more stable under low memory - * condition and high memory pressure. + * when fit type of free area is NE_FIT_TYPE. It is best effort + * pre-loading. If it fails va_clip() may return -ENOMEM from its + * GFP_NOWAIT fallback. */ if (!this_cpu_read(ne_fit_preload_node)) va = kmem_cache_alloc_node(vmap_area_cachep, gfp_mask, node); -- 2.47.3