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 X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC291C47247 for ; Thu, 30 Apr 2020 20:04:03 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 66D55205C9 for ; Thu, 30 Apr 2020 20:04:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tGSazxkG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 66D55205C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 1932A8E0006; Thu, 30 Apr 2020 16:04:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 11DBC8E0001; Thu, 30 Apr 2020 16:04:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EFFE08E0006; Thu, 30 Apr 2020 16:04:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0032.hostedemail.com [216.40.44.32]) by kanga.kvack.org (Postfix) with ESMTP id D62198E0001 for ; Thu, 30 Apr 2020 16:04:02 -0400 (EDT) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 93396282D for ; Thu, 30 Apr 2020 20:04:02 +0000 (UTC) X-FDA: 76765597524.18.bath38_6254cbfcb51f X-HE-Tag: bath38_6254cbfcb51f X-Filterd-Recvd-Size: 3721 Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by imf25.hostedemail.com (Postfix) with ESMTP for ; Thu, 30 Apr 2020 20:04:02 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id 18so399286pfx.6 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=AFop1nWZXEAQA0kSIHZmOs0ilwbyzS/FCuJ4o/8oFtBiABCarS8lftyWFfWFxacgDx ahed1y3h3FGiN2fLomRokKeEDlOr90ZAj/Jr+8aVUGVev3ViDaXXtvMyoR38hDcNsfC6 sJZhU3iv0TNQXeMCmauwBxjA1OAaNApJQ6YE7bB9T7kwhJ6xmyyz+Pwzt5AxCf8Gtj7m nL9M4JPB8/ER/Ndcb2yip4mDuD+W/E7HhdZKu5bahMBGRTxEvO3PZ2eqTRhHAioP1yBD LA1BXfpKqHgELdvRFnqnFBXTwKysoCeMJc83pith9aRJ4gWeCd1vIGkhGL3BJH5kU0pF nJ1A== X-Gm-Message-State: AGi0PuaWGu8mXnGRIRml/NizOxb86aSvGYIBwEA9w2P6LAkd2fOwaEIk AO254OeG3/JicvmlAd3Outg= X-Google-Smtp-Source: APiQypIf4/p4n46Y+IEjO+M6yY4VM/WoDWLGSGYfUACAiDEVQx5qHNSIGKtwIF+Wzsx+xE4EUoJqVQ== 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 X-Bogosity: Ham, tests=bogofilter, spamicity=0.069082, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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