Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp4211593pxk; Tue, 29 Sep 2020 18:22:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyg5r25rNVon/W11at1zdB5CUts/1kPojvAqTM+rSRoi1kL0NBWyU3dYpBYhQromfODMdh/ X-Received: by 2002:a17:906:b747:: with SMTP id fx7mr418257ejb.125.1601428955668; Tue, 29 Sep 2020 18:22:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601428955; cv=none; d=google.com; s=arc-20160816; b=mFHQiOEGEwYURDEDjPMYhYlkGg/X/5/nAy9odzs1tFk0OVR/ZewdunHh2Cd2b8NP6b U/4aYMEqGsbNIXfqx6zgI09JTRMjukJ7C6DGwMUC4ifCUFgYTRBbaTJ18tKADHyHrcIj Ihqki6z59bh+C9pRZAOLV3VWWpiGtcjyC9AiP1wkKD5aNr5YfLg7YSDxhbPlhPSfy6tO ejVPvQDibwzEaxXFM6IbGf+5Q3OYM3kNmkem/RSITlhydJ41ikeejNakTcdOJ8eRJoGb KTVmkwTnJDIxeCy1sgegvmULQTQI2Q9yMeA4KCaehaJK6zKYKLmCLvS9X5PkdvlwClzr oiYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:mime-version :references:in-reply-to:from:dkim-signature; bh=JGYJS9NsdZi1x8beX5PbpUGbiZl53A1tuTawkgjS2/I=; b=DTuQw7y560vKQ3Xy26qSHpvn0uggUk9oXPpOyf4RdE2xu+beoyy9anXePGxVtfX18j 0WzglcKWiH6xss3O5mK76wjPIxW5fpcI5zWVvLvqIqqKtgxQLTTR/+Q14CL2HDeSzrJc 0Bbfx9vRcv17hIWBiQGW12G8yQy2w8RmgqEpIuA2DbghONfOHwHT2Dc1mah8MsysTiXR upOlP91XYURpk8wb8X3qeJ3aIO1a6u9quE9QZ8pJeS9bQ0S6SGrguQ6qYSPjqKHsGVRS 6y72CHC7aNyfLWMLjXFiuCKhkB59L0nPrJayjNRrj6NN0LCq6Odfzo9UHsFl2IGU0T9Y JyAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="Vi/xsfmt"; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u2si17492edx.5.2020.09.29.18.22.12; Tue, 29 Sep 2020 18:22:35 -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=@google.com header.s=20161025 header.b="Vi/xsfmt"; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729423AbgI3BUI (ORCPT + 99 others); Tue, 29 Sep 2020 21:20:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52892 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729448AbgI3BUE (ORCPT ); Tue, 29 Sep 2020 21:20:04 -0400 Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com [IPv6:2a00:1450:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EFE9DC0613D0 for ; Tue, 29 Sep 2020 18:20:03 -0700 (PDT) Received: by mail-ej1-x644.google.com with SMTP id gr14so408194ejb.1 for ; Tue, 29 Sep 2020 18:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=JGYJS9NsdZi1x8beX5PbpUGbiZl53A1tuTawkgjS2/I=; b=Vi/xsfmtZt0OubUV/0I5sNv7CqOvrLxLoXAOnwdmWcs9UNaz3IytMNDB+VDywmMkFt 4Nvn2U3hgPCbckquNLY6N2RNzVOKRAkpzuxRLOgyivJoqu5FhIwLGd3vCDsViVU1VX1U 0j01qqilWxOOR3pYtf6YX7LySWAu5+8Y2H8UWKijw/Dvm5B9BDOh0nn4ZQVMlrm2MJ// gta12xDCdtSm33nPxOO8SnPFSndLzKGKqUtoS7hqWz15pPPDHAmMItCY2JyOaV4kWM5d gE80NxPWOJp3FI3eP3wbcvL5GSfe4L1ismIZq6L4aXThyhp19RGqyNQ/r/jSPV4Stp1L vYKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=JGYJS9NsdZi1x8beX5PbpUGbiZl53A1tuTawkgjS2/I=; b=dNhbXrJUzeJZhUHwLp48ksNhC2RT5iUGkVsW0HBUaMNRkX7CYGvvnct7gvzWOaF0wx enkFhuk8h4GF2iYhEd6I7Z1mYNj0z0Zzcc/UBsTUGiuGQK887BW3274CFKypWXNqTy/R 96NixvAFylXkjqO2+QZMDhspzIhS5G13rHscMxLG97O/DXqTCLjJ2ohQpOrnEgiEa72M U7+gWfY+B82Plhj3om2ux56D7u1NCedZSluKAN0YDPMAPFLLbRyraIylXDp59f4cdJ5X ByOoujakSyxQC8RlDFmsagLy3uqlwnmxfBXk0gswNm6+52TIOsmTCcyOe5tzAIDdYtjO 7AtQ== X-Gm-Message-State: AOAM5307wD5Z4FvKpk3KrrYYQteDyxhFPJFcawE5qoQsCmSVEd+TRKk6 TLEHlP5rXLY2aX+zx/5yZEarTog94HvpRYDOnd7++w== X-Received: by 2002:a17:906:980f:: with SMTP id lm15mr438339ejb.184.1601428802457; Tue, 29 Sep 2020 18:20:02 -0700 (PDT) Received: from 913411032810 named unknown by gmailapi.google.com with HTTPREST; Tue, 29 Sep 2020 18:20:01 -0700 From: Jann Horn X-Mailer: git-send-email 2.28.0.709.gb0816b6eb0-goog In-Reply-To: <20200930011944.19869-1-jannh@google.com> References: <20200930011944.19869-1-jannh@google.com> MIME-Version: 1.0 Date: Tue, 29 Sep 2020 18:20:01 -0700 Message-ID: Subject: [PATCH 4/4] mm/gup: Assert that the mmap lock is held in __get_user_pages() To: Andrew Morton , linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, "Eric W . Biederman" , Michel Lespinasse , Mauro Carvalho Chehab , Sakari Ailus Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After having cleaned up all GUP callers (except for the atomisp staging driver, which currently gets mmap locking completely wrong [1]) to always ensure that they hold the mmap lock when calling into GUP (unless the mm is not yet globally visible), add an assertion to make sure it stays that way going forward. [1] https://lore.kernel.org/lkml/CAG48ez3tZAb9JVhw4T5e-i=h2_DUZxfNRTDsagSRCVazNXx5qA@mail.gmail.com/ Signed-off-by: Jann Horn --- mm/gup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/gup.c b/mm/gup.c index f11d39867cf5..3e5d843215b9 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1020,6 +1020,8 @@ static long __get_user_pages(struct mm_struct *mm, struct vm_area_struct *vma = NULL; struct follow_page_context ctx = { NULL }; + mmap_assert_locked(mm); + if (!nr_pages) return 0; -- 2.28.0.709.gb0816b6eb0-goog