Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2224300ybz; Thu, 30 Apr 2020 13:08:21 -0700 (PDT) X-Google-Smtp-Source: APiQypIwffdW9pkuKsIYJqJFmXzDzuq9U9mztPdbe4o2dLYxCUFu6f/y+ZXEAAJCT/sDWeVd+mC9 X-Received: by 2002:a17:906:a2d3:: with SMTP id by19mr132318ejb.370.1588277301824; Thu, 30 Apr 2020 13:08:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588277301; cv=none; d=google.com; s=arc-20160816; b=n58lNYtTI0ZBhIevj5+7gl/EVfI1m6zp9hdURvftsqfLfsCFrMu2epqAIytGGO/JzC y/ewz/Ga29Gsqj/lklcP1CSTx7tG63FZnNP3NVjyxenQ+UXmJHsAcjJ5A15psiZqZxwj 01LXDjCMSGTkA8pFj687PKac1hK7mzpF3FIC5c6NRTgJrlGoL2pIOXLwGdC7+T23Rxae jkUN0LXYi1Qvm7dBhVUshMymB/Pihl1AveOjVelOfAZx44G6JuchNxBzGknkX4/Mo8Y9 Hea/jgb+eajFSTQjSTxJvZR01FpRj8tFqLYBjf2g+6/uBFW+A3Co/seRbxSPSn+DuRf/ JfWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=3uYu7BNvYOGkc20ha5J/aAEuQ9mqiqPvOhd6B04IV9A=; b=eN9NP+32YNUVC3iZIFIaFh94uxIkFY/5Uz66vReFDj04fmgNe1b7aljgpJepuzcUH7 Jvg8hgmT3aDoIr55QAUKTPRg1HlEslEiGvRqvyCglNdRYZJWb/gugm9XJzvjkXo4RavK GB8uDOSosruBX9i6mwW0Elc+l2z/7dyDre7iO6QNDybrN6V0JWktMBsAsc5In8ugCEAt rKdyxT2LhCqMAX9wM5JSHmUCmLSSFaXTM4+elustMCzZFBq3jNBMjeaHo4+Gox8np6tj Xh0wJnnJzeS7QdJRemznGBlC0umxTEFob59G6x4ptjrFxdwCc8rg+3v3WJY9RKtzDL9Z +ZtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tGSazxkG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e8si436011ejd.76.2020.04.30.13.07.57; Thu, 30 Apr 2020 13:08:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tGSazxkG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727041AbgD3UEC (ORCPT + 99 others); Thu, 30 Apr 2020 16:04:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726338AbgD3UEB (ORCPT ); Thu, 30 Apr 2020 16:04:01 -0400 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A564C035494 for ; Thu, 30 Apr 2020 13:04:01 -0700 (PDT) Received: by mail-pf1-x444.google.com with SMTP id v63so389055pfb.10 for ; Thu, 30 Apr 2020 13:04:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=3uYu7BNvYOGkc20ha5J/aAEuQ9mqiqPvOhd6B04IV9A=; b=tGSazxkG8iYHiUGg9z3/ziD1PrpzsJN0F3Z1dORQ7Lpsim1xwidMONGsRPJ5i6TIa8 Ro0kGSUn6+g60gIxEx3izxAB8anYPikqtdWH/SBGq9X8ZnrV4u350g2uzSUTwwSaVMZ4 kq86ccSa6s/5dcVxw1c/KnatDxOlEoiqV5ylkxWYexqCNvOeTZc20y86t+0wpLoxs957 Kd+bU7HbT77Uz/hYbgM/rHszPt+BO8GZMK2I3sUx9HX14m8lPgTu5ZHY6dzDFGNYugtb Yhpj+TDa9LnXngnK52vp1458SlM3EFEtOVFKAORfQRVHNakAzKtJynEFFx8tjNVX5IxR N3NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=3uYu7BNvYOGkc20ha5J/aAEuQ9mqiqPvOhd6B04IV9A=; b=KszNxgyhab7vVIFASVG7fJfCEkCiC8GsH313MRk4krgjt6EjhxSrbPxIwC0hX/cbYE 4FFljRJCxuQhiWxRK03wP1R5bVnt8OnbGdm8gXGkiAG33tkW2GlCyW6H8vHD53aTI3qu DP10dZLaOpZTgqvDA2ybcUdJUu90RUwTh+iqtqSMrnttXvPqX2kART5z91R9Bs7mSBJ9 58pdA5RuX4bkvwepfz7016JfsfTWQYi1ecUolJQnqPlJtsDrZtBUWEBQoJ/nbE262Lng sbKKzD4f6AZNS2KHi9q6RTAw2Ne9y6wvddHfTUbYaIYuOUxZKXjjldcKGwO5N6ctahjq 30Kg== X-Gm-Message-State: AGi0PubyJHKdVu3NoUsUuMaNOZqSCqg4vlRPj4g4EuJaeaEcqaDkacJX xxoh+3R4PI46vz3FDDLdBJcVXEDr170= X-Received: by 2002:a63:eb15:: with SMTP id t21mr599223pgh.279.1588277041057; Thu, 30 Apr 2020 13:04:01 -0700 (PDT) Received: from jordon-HP-15-Notebook-PC.domain.name ([122.167.43.171]) by smtp.gmail.com with ESMTPSA id e5sm528000pfd.64.2020.04.30.13.03.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Apr 2020 13:04:00 -0700 (PDT) From: Souptick Joarder To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Souptick Joarder Subject: [PATCH] mm/gup.c: Handle error at earliest for incorrect nr_pages value Date: Fri, 1 May 2020 01:41:58 +0530 Message-Id: <1588277518-21425-1-git-send-email-jrdr.linux@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As per documentation, pin_user_pages_fast() & get_user_pages_fast() will return 0, if nr_pages <= 0. But this can be figure out only after going inside the internal_get_user_pages_fast(). This can be handled early. Adding a check for the same. Signed-off-by: Souptick Joarder --- mm/gup.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/gup.c b/mm/gup.c index 50681f0..a13aaa6 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -2817,6 +2817,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, */ if (WARN_ON_ONCE(gup_flags & FOLL_PIN)) return -EINVAL; + if (nr_pages <= 0) + return 0; /* * The caller may or may not have explicitly set FOLL_GET; either way is @@ -2854,6 +2856,8 @@ int pin_user_pages_fast(unsigned long start, int nr_pages, /* FOLL_GET and FOLL_PIN are mutually exclusive. */ if (WARN_ON_ONCE(gup_flags & FOLL_GET)) return -EINVAL; + if (nr_pages <= 0) + return 0; gup_flags |= FOLL_PIN; return internal_get_user_pages_fast(start, nr_pages, gup_flags, pages); -- 1.9.1