From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (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 4FF8E31E855 for ; Sat, 4 Jul 2026 09:20:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783156828; cv=none; b=Vs7ePUTCJ8j0dlMh6epI4XVpI7HIZVoGj26xT+UJBWnA28R7IBf7RCr2PpahpnrN89nPXjRW/pX8hkOcq3Crub7et/HgCRD5xR50CPXq1hlyYDqTl3Yx1UmeVRDYz2JjDXHVrbuZ6VD9m+Z7wNBbBP3QMINHWAmDVUYnW9mcHlI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783156828; c=relaxed/simple; bh=V5461WIYsHC0B2uY1ER2SKIlEyebHgS46UEf2PRPhXY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dftC6Jm9l5PkZmL9QVOaBPcMXjsIy6hcwjKaTMUPErJlLd7XUClCXYS2fy4DJf5CZld9EwfyWnsigONC3W1Bk6wW6U/YZPtfY1WC2krx4gPCV732OCgLvbFtmlTpQlEteCbiCF1Kg7G6g1kzlamT+kIN1W/qMRqUSrXOc0IWV2A= 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=NXHJxBQr; arc=none smtp.client-ip=209.85.167.42 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="NXHJxBQr" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-5aea0fff535so1413477e87.3 for ; Sat, 04 Jul 2026 02:20:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783156825; x=1783761625; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vOl+czY2f1ph2+qzbkwCXQTY9N5lq8+tBU4quwjJzyE=; b=NXHJxBQrOEAaYtav5RHouhYj6CbeUCuWWE2wgB2mpTQshD/XZICffHnkYiiW9BqG+i 9RJAaL9txi42KsICElc79zzI7oCMglh9RGL5nBFh2/ixCT4u8g/RZwV4BOe5fLC5CPvk NoAgK2zJUhog3A3a3oChUZ13PWT9WVJGOLXXP9+7KQcmeF1wvlL1mPoprBt3iMG/wKkY p7EnfT5Wr3ts46YM20UXLqU2wg4CSIcv7vi91y0YFjzDPZvdwJe7C/d4ibVQVrnP71Dz KnHwUAP3EIhR6xrhfM28uoNT+uiPGQ1IASt/8YfakEwwWD57xZqgduB2s1jHFLxJCYRc k2OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783156825; x=1783761625; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vOl+czY2f1ph2+qzbkwCXQTY9N5lq8+tBU4quwjJzyE=; b=PfQ3JNeN1mQqFMVWmhYWyq8rAuGhcCRMycQSdVYtDOQFjGKjqFz75YewhvF9PSykja 7gHr/1aLg2WcMJVGS+o/jzB5QtS+MpimxeL3efNIaCgKCqQa5pDj7VTVXlHIrz0qTIPZ +nqEbm3EuUY4U1/OBRW7fwwqoYnXxzvHPjsaY2lUJbsXQUGQv4cpf5u0nCOS2ZdWsm/7 7kgLhw7T/3iw7B6JOo93hRhHaT9X3ir4mugRErue1OZt/FPLW1lFcp148ANx3kH9K9q/ f7sGmBeBxoBnFp1f4WWmnQ9711oPCzqZdP2nzEwiP1NIONrZ+iMr3jk8E/c3LRIpMbkq kIVQ== X-Forwarded-Encrypted: i=1; AHgh+Ro9gYybYvYyKzm2rFXyi8Kj48Lklo9uNm8WCIKlHNZ4S+3N8WByKMShCStQ39IH9qiIlIoEYEl8BlWtLP0=@vger.kernel.org X-Gm-Message-State: AOJu0YzWe5TocNwJ3Wej8ogbuHVx1J3n9rD1adYdVjWLRxMX900nhmf4 4/NXSb5f89C+5SIXPbBRAopSfTdZyJAv7oJkHhVjl3QfWRE3KD3Vd+4F X-Gm-Gg: AfdE7ck2q+x7wXnKu4iBPjf7lmsH0etouvEsoxJpYz5qVfMtU4UqRBHxFnhYPWMdvxN rllFUXp0E0N6GewoSL4VGMP6oT8YnvwhGRN2sMMQsXGG5rfKEHA0hewgNXV+9o02S/HlijCsRrc Y/vEnBVfhgLkFIguAC6T0Q9rXD+LtDe3oK00WDjUHSTFEqumDGln/Fx+d39osI0kwUYaoh7EwgF Z1ZtZfONNRm8tcYxLj6QGa118wwMXRxYL2GYQoahceoz2qUTg4n+gFo/CwRaMiGniTjlvt2ObEO yEs3H7/qphdyitvr6oCz0lU7cDmIRqVxAN4HW1BEjJcQTMN0Ewzbe9Dxj+fE8Sjcrr33/iZPFar U/uoQqNhKnjMUDAzqYGjgm6w4jHtc7B4as66FZ/f8klDTG0leDcDByFm+oYgMYnctSBcOQelXIZ S6hPd0J/HKk3Zb/X3RHQfEVb8C4+BR8efIdLLDZ3qR7Fa76NmF8NoZs2RtiRPorLx6zo8A37ijh WbKLFY= X-Received: by 2002:a05:6512:1382:b0:5ae:bfd6:1bc1 with SMTP id 2adb3069b0e04-5aed5084c00mr553192e87.14.1783156825451; Sat, 04 Jul 2026 02:20:25 -0700 (PDT) Received: from debian.localdomain (95-25-158-125.broadband.corbina.ru. [95.25.158.125]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13770fbsm1149063e87.30.2026.07.04.02.20.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Jul 2026 02:20:24 -0700 (PDT) From: Igor Putko To: ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, vincenzo.frascino@arm.com, akpm@linux-foundation.org Cc: kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Igor Putko Subject: [PATCH 1/3] kasan: deduplicate quarantine reduction logic Date: Sat, 4 Jul 2026 12:20:05 +0300 Message-ID: <20260704092007.3483-2-igorpetindev@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260704092007.3483-1-igorpetindev@gmail.com> References: <20260704092007.3483-1-igorpetindev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Multiple allocation functions share the exact same conditional logic for reducing the KASAN quarantine size based on gfp flags. Introduce the kasan_quarantine_reduce_cond() helper to eliminate this boilerplate from the slab, kmalloc, kmalloc_large, and krealloc paths. Signed-off-by: Igor Putko --- mm/kasan/common.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mm/kasan/common.c b/mm/kasan/common.c index b7d05c2a6..34aa0fdce 100644 --- a/mm/kasan/common.c +++ b/mm/kasan/common.c @@ -340,14 +340,19 @@ static inline void unpoison_slab_object(struct kmem_cache *cache, void *object, kasan_save_alloc_info(cache, object, flags); } +static inline void kasan_quarantine_reduce_cond(gfp_t flags) +{ + if (gfpflags_allow_blocking(flags)) + kasan_quarantine_reduce(); +} + void * __must_check __kasan_slab_alloc(struct kmem_cache *cache, void *object, gfp_t flags, bool init) { u8 tag; void *tagged_object; - if (gfpflags_allow_blocking(flags)) - kasan_quarantine_reduce(); + kasan_quarantine_reduce_cond(flags); if (unlikely(object == NULL)) return NULL; @@ -402,8 +407,7 @@ static inline void poison_kmalloc_redzone(struct kmem_cache *cache, void * __must_check __kasan_kmalloc(struct kmem_cache *cache, const void *object, size_t size, gfp_t flags) { - if (gfpflags_allow_blocking(flags)) - kasan_quarantine_reduce(); + kasan_quarantine_reduce_cond(flags); if (unlikely(object == NULL)) return NULL; @@ -443,8 +447,7 @@ static inline void poison_kmalloc_large_redzone(const void *ptr, size_t size, void * __must_check __kasan_kmalloc_large(const void *ptr, size_t size, gfp_t flags) { - if (gfpflags_allow_blocking(flags)) - kasan_quarantine_reduce(); + kasan_quarantine_reduce_cond(flags); if (unlikely(ptr == NULL)) return NULL; @@ -460,8 +463,7 @@ void * __must_check __kasan_krealloc(const void *object, size_t size, gfp_t flag { struct slab *slab; - if (gfpflags_allow_blocking(flags)) - kasan_quarantine_reduce(); + kasan_quarantine_reduce_cond(flags); if (unlikely(object == ZERO_SIZE_PTR)) return (void *)object; -- 2.47.3