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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2DE4C0015E for ; Wed, 12 Jul 2023 01:23:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 719626B0072; Tue, 11 Jul 2023 21:23:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6CA586B0075; Tue, 11 Jul 2023 21:23:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 480DF6B0078; Tue, 11 Jul 2023 21:23:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 2C78B6B0072 for ; Tue, 11 Jul 2023 21:23:19 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0CCF31C84CD for ; Wed, 12 Jul 2023 01:23:19 +0000 (UTC) X-FDA: 81001211718.11.77E4E28 Received: from mail-yw1-f171.google.com (mail-yw1-f171.google.com [209.85.128.171]) by imf18.hostedemail.com (Postfix) with ESMTP id 4308D1C0005 for ; Wed, 12 Jul 2023 01:23:17 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b="KB0KaSU/"; spf=pass (imf18.hostedemail.com: domain of hughd@google.com designates 209.85.128.171 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689124997; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PUgKvhM9wgJcoRhVCLXVooHfxm4NzzQqOjKai2ByuyU=; b=Xc2xtH6yrx1UAkNXpaKWinkqU/H6rxDgedZCzaHriEhS5IlUsVlaCsAPdcCgPKT7nBfnEN p/UyBKuXzSFp/abZaOpLPcd9YhUC4LxxMpB0MpNKEQjzF2wLfqg5eyw7VEYySoSLHaqH9c +MynK5x1pzQ10UZWWA8a3eubwPfrKj8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689124997; a=rsa-sha256; cv=none; b=PsIXzOND9bdJYOqLSN8xt2cQqA0Dv18l5BJHroDnfJBmGt2NcOJV96brcXUiX7w1brY6+8 TZwuIsJWbeHBmEVjweMrGmCNxyncBCK/eH1jG2W5bnXaqr2qR4Sss+Kg5urM2YNy4xZRpj BVFqHXx8p+WHA1xsWXw635Qe6GgvaCY= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b="KB0KaSU/"; spf=pass (imf18.hostedemail.com: domain of hughd@google.com designates 209.85.128.171 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f171.google.com with SMTP id 00721157ae682-579de633419so69825377b3.3 for ; Tue, 11 Jul 2023 18:23:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689124996; x=1691716996; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=PUgKvhM9wgJcoRhVCLXVooHfxm4NzzQqOjKai2ByuyU=; b=KB0KaSU/rT0OYS4tXd8eKMZ8Eyjbyv+9kKDw4pQAHLOEh+5aJJwrCqOwQC7AeL1GjM ygWQ3QuwogcqnFv966rvO+47Xrh1Zn1Auax0Na+gYBtIBTi2cW7o9ac+YsfSoQ0E9lgO jx0uS1mnA1Md6drRnHXUA7PGLWTm/UliHvRz9eRA5HxfJQG8lS/OwU5ejE1BRs0lu6tY Q2J7RtggvDNulSqfN4Fbggnrl+8YmxAt9AmLPwOZops+mYD5vWqkxbHv8i3L9SfSrwO0 WrRTtQtNAMbkO5kJ2q2U3D5VAnoxXzB6jPIP+Q5jaQG/ZYSYcz2jebVkSUiZw7fzrqF0 czDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689124996; x=1691716996; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PUgKvhM9wgJcoRhVCLXVooHfxm4NzzQqOjKai2ByuyU=; b=MxMYCYCQ9LIGjum/IvT5zFvL49V60wXehMqN0vqq6tfg7hlgg0/IswKSPzQu4RxTcY 20bioRCrIl5n4NprZ9WTaj87CPGsWBDtq8mCN0MBEtgskUGytdcAbrKOb8JNjiWAmaKr x8OUUE01ziJmwxHQOzWqQL9FbM6RzGyd25Yt04oP/YskdwMV4LIs62gJfEs854WhRdLI ud/QFDEimZzSHv1QgJhtTaG09WBcTKyALfQj7JgA7klVCF+3nRipSvvD+pjl/8d2MNrB c7LPj+S6wkxBM2E09SwjvAuhtT+0pd9x4hMPNS4VFFyF83MwvCiCepcpV7UOTWqAPzDB eZ3w== X-Gm-Message-State: ABy/qLYhuh3i65yioKng84tDOMeGjdIHT/mipWbEZgTOo469+4dnAknd k1Exhz4wlrZDTsbkvq74jQy3rg== X-Google-Smtp-Source: APBJJlFwvBdo/qSP/s6ucFcjqrWrXIYYzmVAlLd4Kexv/2xW4rQs3KDxF8If9Yyak3mldGlAkNjqMw== X-Received: by 2002:a0d:ca86:0:b0:576:ffe3:b95 with SMTP id m128-20020a0dca86000000b00576ffe30b95mr14294862ywd.40.1689124996201; Tue, 11 Jul 2023 18:23:16 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id i184-20020a0dc6c1000000b005771872a8dbsm900808ywd.132.2023.07.11.18.23.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jul 2023 18:23:15 -0700 (PDT) Date: Tue, 11 Jul 2023 18:23:07 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Dan Carpenter cc: Hugh Dickins , Andrew Morton , Axel Rasmussen , Peter Xu , linux-mm@kvack.org Subject: Re: [bug report] mm/pgtable: allow pte_offset_map[_lock]() to fail In-Reply-To: <3ac58297-c3b4-4ef3-9743-d96a477ac53c@moroto.mountain> Message-ID: <7d4486c5-679d-67f8-dee4-f33d2b73517@google.com> References: <3ac58297-c3b4-4ef3-9743-d96a477ac53c@moroto.mountain> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 4308D1C0005 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: ba5f67ywpn3pokqe48g3q1hctoohi3kn X-HE-Tag: 1689124997-526538 X-HE-Meta: U2FsdGVkX1+bQg+caXe48c//SUwTfXl50t2M2gQlhNNbLXhY9FX6ZPwR7tZfYU1fmVaQxf8WFULKL07jFvTjBdhQt72oJpo55z7X8FnjW9V0EAjsADO2QcaC+ibKOERAF6mVbTF5meGNE9CoiLZIwHA5bUYt6bo7c3Kf/Gthdlu4AAbb3ubYSjSDbgPE03RnA67nkNKehsOB9fKnHAep/lNboB2772ESWUkbUsozD0BIRjIj6JWwizfqgrudnFYMRMZzvMA6qYtQWOH/fwxFUocZgapXK2LrVT9QDNt9UGiA1NrnTeZo2HQKFsdxmrwAG8vE6yS6qplGbuyGCRez8R135jPYoGeBllPGsl/oxmIRIRJrPJW00venXmpEX10WgQJ3Fx49JTM5B2bqKNZt0Gvw/UZxgXM6XDUAoR8Q3Qe/spWpy6cPd671oqME7gqmxgsb5qPKzqhYCGZHtzluZhah6Q3jKxD6e5G9s80vRdtJpcCa6Hvy2k3/S7WGkYpuvjEFugPD31pmFMpLxPryqkLE8ro3GSUwUt+GgWY0U5/be0KVGtvdj7cKPitZg7J903p7WWCLkhBlVveCY0QgT53Su7Uagr+jRZ2IGZlMpw+ChB5kOymfbdTOJ3Vk0HDjJdaDw9/jRDXjoqp7x2saxx5fACWRGI171NtvQOJVW8/dFmLTF7zadsxuzkTquheTlxg69miAcomrKaGX/zwVI8W4iRlS7LoFA3rQ6qu6ejmjfdJMpO/xYyDWwd3aBXMZlZm3QZhP4+AxiEu0+yo/lx/JjfKjIJ1PnrdP9XOtM+qfMAiuuJrzi9sZEyMFAYOy0nnE+G3Ovzp2FdpCh/8RqNY7azo27+osA3dDXsqodGMYbFf/hsHv0RnkiFQ6aChrHZiekUoPoBghUZVCtc8b5e/wCFA26oCw5XZ33qC2Iup0PZHdFG6nYzMjGo5U8QqDBTA6R1/Vk5RbemS8rRo dr+GdFG4 bD3d2xaeeybFNVW9qTudy+5BiO2YqZcwKS4RGhQsz3lyIe/mR1yiDdDl5ItA4ZBIlSUzUlBd5eQIea8QEx3m4xGQugEa5hoqF8dpOL0Pzla/ePnSMvj7eHFibK+qLGj5vfmiUPYMHOmQNVeMOUVKfj4D2x3mGSKdNuVlxa2v0mqMkA5Ej9Tbt7VveBIaD7qT520nh+mOIJX11waU6HfxIncLujRmogR52+19jJz+/bH5eOGz9qhYJst4BwbXwOwCYfTvasT1yMs8dQDsgFWEzxUZwzpuxsryVLw1AO9QdAknCd+xUElWJECUklzi/6IAiN1AC+YkSRe2HFlS6lueYbUubW3oQSZo9yffdlQXKn5jReMBRySdXqb6oZT3N8kmru2okVLcdA8Wd9nuW07yiXcnMxw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, 11 Jul 2023, Dan Carpenter wrote: > Hello Hugh Dickins, > > The patch 0d940a9b270b: "mm/pgtable: allow pte_offset_map[_lock]() to > fail" from Jun 8, 2023, leads to the following Smatch static checker > warning: > > mm/userfaultfd.c:321 mfill_atomic_pte_poison() > error: uninitialized symbol 'ptl'. In mm-unstable or linux-next: not a problem in 6.5-rc. Thanks, Dan: yes. A little unfair to blame my patch for code that went in later, but it's a good reminder that I do need to keep checking for new usages of pte_offset_map[_lock](), and this is the only one so far. Great that Smatch is helping me with that. Fix to the guilty patch follows. Hugh > > mm/userfaultfd.c > 292 static int mfill_atomic_pte_poison(pmd_t *dst_pmd, > 293 struct vm_area_struct *dst_vma, > 294 unsigned long dst_addr, > 295 uffd_flags_t flags) > 296 { > 297 int ret; > 298 struct mm_struct *dst_mm = dst_vma->vm_mm; > 299 pte_t _dst_pte, *dst_pte; > 300 spinlock_t *ptl; > 301 > 302 _dst_pte = make_pte_marker(PTE_MARKER_POISONED); > 303 dst_pte = pte_offset_map_lock(dst_mm, dst_pmd, dst_addr, &ptl); > ^^^^ > The __pte_offset_map_lock() function does not initialize ptl if it > returns NULL. > > 304 > 305 if (mfill_file_over_size(dst_vma, dst_addr)) { > 306 ret = -EFAULT; > 307 goto out_unlock; > 308 } > 309 > 310 ret = -EEXIST; > 311 /* Refuse to overwrite any PTE, even a PTE marker (e.g. UFFD WP). */ > 312 if (!pte_none(*dst_pte)) > 313 goto out_unlock; > 314 > 315 set_pte_at(dst_mm, dst_addr, dst_pte, _dst_pte); > 316 > 317 /* No need to invalidate - it was non-present before */ > 318 update_mmu_cache(dst_vma, dst_addr, dst_pte); > 319 ret = 0; > 320 out_unlock: > --> 321 pte_unmap_unlock(dst_pte, ptl); > 322 return ret; > 323 } > > regards, > dan carpenter