From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (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 29DB83A9D9C for ; Thu, 9 Apr 2026 10:33:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775730832; cv=none; b=qac5jBfHekxa3f2LbRjIyoLA+EFf5hKVMD3MC7mv8BG1i6/rllUPC5a05pm9mM7wLr4SGFMegAd3N2LZoXuffNhEFjOsIeYZqIgSGCsDrOP0jYYBoyzgyKAoJ/0p6nb4sk4Dyynzq8zlJlSNs+4H1YgJGpzBZmmCfztuGDomNlY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775730832; c=relaxed/simple; bh=Lqti2WeVTVBaLfelS8od2K/pMXkfFP2j/NXPHvwrwnk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=cS9VVcRZHTOgWwVKHinztW1dIIDtOPN/lmPqIDm6FqP02QppiUEkWFvaCo6nRAdSFILw52ttfh2xzOIxoFXPnLGk1LTRGJSXS/YbKKQfHwC/rI5p7lKlIi8sWbAeLgzprgaN4Zo5LcNDAdKunNKaUI6LBHhcL24j1aM2aCYqcR4= 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=db0RRn9T; arc=none smtp.client-ip=209.85.208.181 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="db0RRn9T" Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-38e12c67a6fso6352101fa.1 for ; Thu, 09 Apr 2026 03:33:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775730829; x=1776335629; 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; bh=IZCUPUgWtF9cnC+OBlLzSDFkNCO2ZEIu1l+DqN/zQCg=; b=db0RRn9TPLfgQicGMqG/DqB3XS1cVjbIRRcuyTGXihZP28wmt9tGzSZLNqruTkP/WF dnMP04kysJdHz0+6YRp1BkMIVAkjNAtLu7y2dZZXZh8J8vrI6HP1NNcmTaTqDl/zfWvI ykj1uR/FZvM6jiNF/gXPe9MGy8apkRpMcDlTqL9sTMNwlc5OcAYbLiUaWfQJhOux3kc5 pWTSTgYgYR0otpHp6SxM/b+ykxGTRDfO/zN69tuDVIwJ9iyEIm62Nckwmu6147YMOJdv sx08adr5jFVDLZaCdJxGetkm7VBPGyAAmCeUYsW7ibj8V4PgO5N6+tXZE3NmgF6UO28s /ufQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775730829; x=1776335629; 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; bh=IZCUPUgWtF9cnC+OBlLzSDFkNCO2ZEIu1l+DqN/zQCg=; b=Rs9KUoLpRzQ1Fv91NeLr3mCJ+MEW+8J+lasn52PJEIdLWq4tBw27SthbcDJVezYhfh B/5RPkX0HJFZ6bfB6nWCR3oKIuhIH/kQw/z0cYSPBYu13ADH83cnAxwRUIBCdm9aGnu1 /q0Io1XARf3TsBZxRxuDVtFsCLkWyIQBMaHNWyYMa2xb2EGgTW6asbL2UwYf/QsDOj5/ 6O6lh7UqBQ/DJ8oE2xzrvvJId+iKWGx/9MI1UX3fc6DUfBfHnv0G5fCVS418a/btxKVO PSIYh/vjvwyTd2v89CIzqOr9XOASyu9+qSRFNTYTgyrmaUxU4HrCZSUobyiwIysGpaUW LFKQ== X-Forwarded-Encrypted: i=1; AJvYcCW1qNRRTj1z/D6HuE9KuUbLtlT6zA7qxcKR62bnDNluj7n1ZsUqGSSb8Df9jJoSx9geQPu8pkHpiWGsUTU=@vger.kernel.org X-Gm-Message-State: AOJu0YznYPX9Ec3didJhQOiAfMZ/Yxiw2PvATZ9PEQ59Ixc0DVuz1UO8 1N+IJxA37h1e6ft9q6cvash6HudaBRwzyzsfp22SUYeT1Ynxxku/NXKr X-Gm-Gg: AeBDietKTvMs06m8C7YYQPkXoc+AI2h8/M7WdIRAksjJEqprynLeKvCsiT46hvhABvZ lDS68sFHEiTKBWuSj0T/t7dG12Yy1M3JXRU1EVWeGoXtdRibWzGoyhUC8HksF0tKTewxbOm6GQn RTemU+A8mLLfcc5lvgNtUAcoO460qNpCh0BxO1lAlKMey4GnPepKOsOqyO0ZIYdt4s9d8h5kv73 37sXU5+FRE2gJqwvwtFRhbphWxjuvJJu0kKq7w3neQANWMHZ/lDpr0daEWoYY0jXy1rPx0v30Om iJ48HDxUM8MJwqKrIOWMpNcy8k+38OqAQpoiQSdR3/c0NiK8e8S2N8oiWBY4qvy+NIugLp611YC EiS8tmJD0kuDh3gekOirGY7APhpRZm9XseWyiEiLV+YAEbfkodbFbxGPiqrqS/W/Uam18T/bdGy DHqgD6WDR0Jm2cP0+hfmON X-Received: by 2002:a05:6512:3044:b0:59e:57d2:75f0 with SMTP id 2adb3069b0e04-5a33758ad0fmr9639795e87.32.1775730828956; Thu, 09 Apr 2026 03:33:48 -0700 (PDT) Received: from agp-laptop.. ([5.180.139.246]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2c9f42b6fsm4958305e87.84.2026.04.09.03.33.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Apr 2026 03:33:48 -0700 (PDT) From: "Denis M. Karpov" To: harry@kernel.org, rppt@kernel.org, akpm@linux-foundation.org, Liam.Howlett@oracle.com, ljs@kernel.org Cc: vbabka@kernel.org, jannh@google.com, peterx@redhat.com, pfalcato@suse.de, brauner@kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, usama.arif@linux.dev, "Denis M. Karpov" Subject: [PATCH v2] userfaultfd: allow registration of ranges below mmap_min_addr Date: Thu, 9 Apr 2026 13:33:45 +0300 Message-ID: <20260409103345.15044-1-komlomal@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The current implementation of validate_range() in fs/userfaultfd.c performs a hard check against mmap_min_addr. This is redundant because UFFDIO_REGISTER operates on memory ranges that must already be backed by a VMA. Enforcing mmap_min_addr or capability checks again in userfaultfd is unnecessary and prevents applications like binary compilers from using UFFD for valid memory regions mapped by application. Remove the redundant check for mmap_min_addr. Fixes: 86039bd3b4e6 ("userfaultfd: add new syscall to provide memory externalization") Signed-off-by: Denis M. Karpov --- v2: - Remove the check entirely rather than replacing it, as suggested by Harry Yoo and Lorenzo Stoakes. - Added Fixes tag. - Link to v1: https://lore.kernel.org/r/20260407081442.6256-1-komlomal@gmail.com --- fs/userfaultfd.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index bdc84e521..4b53dc4a3 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -1238,8 +1238,6 @@ static __always_inline int validate_unaligned_range( return -EINVAL; if (!len) return -EINVAL; - if (start < mmap_min_addr) - return -EINVAL; if (start >= task_size) return -EINVAL; if (len > task_size - start) -- 2.43.0