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 103D5C77B75 for ; Wed, 17 May 2023 19:29:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 821F5900005; Wed, 17 May 2023 15:29:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7D209900003; Wed, 17 May 2023 15:29:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64C25900005; Wed, 17 May 2023 15:29:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 5059A900003 for ; Wed, 17 May 2023 15:29:58 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 22B11A05F8 for ; Wed, 17 May 2023 19:29:58 +0000 (UTC) X-FDA: 80800737276.13.248D21F Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by imf04.hostedemail.com (Postfix) with ESMTP id 19E8B4000D for ; Wed, 17 May 2023 19:29:55 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=VlpzBAOO; spf=pass (imf04.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.52 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684351796; a=rsa-sha256; cv=none; b=WqSzntX+UkhZmAP/nxukFeC3pD2EkctIpzYoD5vdZqZzwKGGS/KQGA5lxsx4v1kL2niLTO av4E/ZYHN9Z6s+0w3TIIi3Jnkbqtd7QUbK1tTjWINhVsoBcVe1BcmGaT3UNvuoi4nLQPTB MRqR44TSFPSwR6TvV1wvYzX0PRjygxM= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=VlpzBAOO; spf=pass (imf04.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.52 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684351796; 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=u1y+HmsKW6aWQMvp65GQBBupOaYvYkMAhb7nN5RSTHg=; b=5ARjjC/VE8ScLCIKhVTUBjHaVAygI3eXGhwnIYGHbWBD2nPItVeItCZQyJAIuFLz2bFYOx j1PqISyC+tSDm9vrAc2OUpRjcawRCHQzDTWobvATlid/L66haGAorapRYuHiXFxm68yRia 2AENv/03303RFlcUlKSaTgnMpWtKTj0= Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-3f450815d0bso11944445e9.0 for ; Wed, 17 May 2023 12:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684351795; x=1686943795; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=u1y+HmsKW6aWQMvp65GQBBupOaYvYkMAhb7nN5RSTHg=; b=VlpzBAOOlsFOl6evvLq9FI57gr0Rj+5UlrrN+OZQLFsT9Twm4lIryDVY9trUXoC3PD QJQbSicYCjFvg7Z6aK2Pf4OY/fhFQzmPUxKg6jcful2tvu+qrOPg7E52EEZUqtivhRkH sQJazVGFwa/XT2mzNfh5XayQSu6g8R+4xkg/JXnN4jZfQutTFtHf+ZGWCq+gi6YTW4RP 0NgyIghMG5wZz9LZqNWDt0l9RCj1PtA2l+n2TRFn7QO3O7lTHWmRFjPynqOdICd1doOV 27GFZ9tQp4ogjLA+2c34WqpZ3yoih57DOABtJfeW2L0nF9jP1XlHaQc7kXLLfLlRNqFO 7JOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684351795; x=1686943795; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=u1y+HmsKW6aWQMvp65GQBBupOaYvYkMAhb7nN5RSTHg=; b=I3ONBbyCF9xGu1WlaAZIIsWSqPKHxBPLFniCD0e4ufugq7b+m6SGuNPhn5JIC52rzH b4dnUlH+QgcGuwA8hTwgb4T+wjGEmhaZxXveG9L4JgQ9zNOO11PzZpznkanuH61aSGoh 6MZ08Yt7Ghx41tK1IN11j6u2QK1KQftgvhgkcZds/j+h8gKaDSB5j0F3Xn1htP1smMi3 8AhKFKzk/TkgebfA0iwqMO0n60epRaRypWH8ube/7tx1eJks9MLWeyL+GI6/FZXwJ5GQ Wcu7s5F6rqVKxcvv5mpOOWYFRnFI8Dg9QGMm0mUP/RsSyY/TOhGW3goU23JSqC10+pZS dbFA== X-Gm-Message-State: AC+VfDx3i/UellV8J0EaifpJMVsea9aM1XUoP9o2PaER8J8OxMJ56Ie8 1kjhwDao5jXk5CdOXDvwkzg= X-Google-Smtp-Source: ACHHUZ60TivEqK8ncNmcyMJnyBwD0N10WkvRVhRtgY2Vz0mCcQWPbXm7qdX73fdfIlIIAHhXmBL/wA== X-Received: by 2002:a1c:f703:0:b0:3f1:979f:a733 with SMTP id v3-20020a1cf703000000b003f1979fa733mr31031043wmh.31.1684351794484; Wed, 17 May 2023 12:29:54 -0700 (PDT) Received: from localhost (host86-156-84-164.range86-156.btcentralplus.com. [86.156.84.164]) by smtp.gmail.com with ESMTPSA id f3-20020a0560001b0300b003063772a55bsm3606352wrz.61.2023.05.17.12.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 May 2023 12:29:53 -0700 (PDT) Date: Wed, 17 May 2023 20:29:52 +0100 From: Lorenzo Stoakes To: Dan Carpenter Cc: linux-mm@kvack.org Subject: Re: [bug report] mm/gup: remove vmas parameter from get_user_pages_remote() Message-ID: <94617cc9-3b42-4ad0-8191-b33e8431c579@lucifer.local> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: x6zjymoccwf5sawtgkryduqtcmqac3if X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 19E8B4000D X-HE-Tag: 1684351795-999484 X-HE-Meta: U2FsdGVkX1/bI3keNLI62oD55UBZyT7/+3WLzkKl1sZv/4YS5wy7cmkFth9dK+PXe+01ICPciiQBxSXVg9lv5NpDkj1U+DN5RaEbMvHJx4WIYrZkwClS+NfbOJMr9FqK5/Vqczhxc+zAALxMMwFCrvLwd/yXKD2pnadovIV8zdiHChwbP7R5m2xNNcnMNTb+yNKHeILOqXwhxVwMa9pWnpE7Chb5kPNXSNVMQmESUWlTQ0GvtdfTza2PjUeKSRlZ3veu3I2NeEzSF1meSXeAGXQbXuI06PhpO5MARsustLaZgYxziaF8leffBA0e3qv8S1fh/qmsHXtsNID7P84PyRtl3YroZET2RrBTMOQbE7eOHgZ4088dW122/3dsn3wTqA55xQGPU5zO7scWs3YJskxiWPadtlCWxwVA3iriMQHWkz8JGFEJ60IAcyyDdGms+PHK0KTKP/cKEQEzK0WIhLYCfPjEFzUA2yZq+u5fRZr61ebeUljMmcXak1UWn2us8scUGyHJ92QfO1FEZz1AV25Adp9j0yuWx9crXFv1momQG1jjaBNks6kbPz8gcw3zPp8R9Rn8NinJhDzPgbLEXYtDK7Y6+GIaMmT+5KbcXFWOAvvrzrQADATnq2LwrXcEqpDilm+5AC2/i9HjMgxs1wZ11Nd/7Wyy4JSxotlzB71WLBO1jHY+WL/7cCJV3RYXL98YeYlHPj/hVsKonvzF3lxRqGm1FUrEkOlRWCe9jZfplxBU1tSmgotHeuG04auiQPCrh7r2+TOxHjjtHEJeaJgl9oH+9X/85baQP0ZcxdQQq9XpgxuNqNsjFR5yD297jkdoN2hEkp9BhyR3JdtcTwOCqyqtIfGEykHa9Kq55XhMjb8S67w9WMnNEYUxvqtGCzb1HpIU57ZPm/1wL+qWv078WlMoYtpRTZerxCs6B+iDyXEm1qRWyMLF28GbIbigb9Z4kStGAyYAQc2fbsS Kgq/Pu+b PZ7MWS0Y6q27c2xn6/x5p21aiv/aUbrMd8OeDAy87wcu1T2WApdglIJhdTiFJaY/IoLASvBsmuMo7heY7eG0n9hlPiowIf79WXhX0annEgirP6IqPYz8U43HutemE9Ykx7SORVWab7rt7e1USSld4SeT/hoPSy6/7t4oKpCJ2dMIcNJTkdX/LmHxNMyG9LO6DCvs+PtJHZlDXBe6g+P6Qj7j0V4VNDC4g/AgkPVnz+D04q0kLgzYQZhXpyJWWeXvm3+ByNXG+GSehy5wHSF7ToLouc+1t/vg0duRerQ1pgMfZ3BNQFjQPUyfhPB2cOAXUUhcDb833oOvHAcFfW2tkopkDN4dewz1nh5qz3HxfCJanY24QxS/2GwLRl365MkmEeXjb+gt44PD9gYviKmdhWYJYnKhrfJ82C0N0XRERiZ0XaQYmH+NhNMI4FgEP8H+A0bbdCleI1WZL1AommNHS65tl+3mxFoVzp4Hqy7+Qg40q5kRkUY/YLVOtYxScGy0NwBs2 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 Wed, May 17, 2023 at 12:54:00PM +0100, Lorenzo Stoakes wrote: > On Wed, May 17, 2023 at 02:45:22PM +0300, Dan Carpenter wrote: > > Hello Lorenzo Stoakes, > > > > The patch eca1a00155df: "mm/gup: remove vmas parameter from > > get_user_pages_remote()" from May 14, 2023, leads to the following > > Smatch static checker warning: > > > > mm/memory.c:5617 __access_remote_vm() > > error: uninitialized symbol 'vma'. > > > > mm/memory.c > > 5590 int __access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf, > > 5591 int len, unsigned int gup_flags) > > 5592 { > > 5593 void *old_buf = buf; > > 5594 int write = gup_flags & FOLL_WRITE; > > 5595 > > 5596 if (mmap_read_lock_killable(mm)) > > 5597 return 0; > > 5598 > > 5599 /* ignore errors, just check how much was successfully transferred */ > > 5600 while (len) { > > 5601 int bytes, offset; > > 5602 void *maddr; > > 5603 struct vm_area_struct *vma; > > 5604 struct page *page = get_user_page_vma_remote(mm, addr, > > 5605 gup_flags, &vma); > > 5606 > > 5607 if (IS_ERR_OR_NULL(page)) { > > > > If page is either an error pointer or NULL then > > > > 5608 int ret = 0; > > 5609 > > 5610 #ifndef CONFIG_HAVE_IOREMAP_PROT > > 5611 break; > > 5612 #else > > 5613 /* > > 5614 * Check if this is a VM_IO | VM_PFNMAP VMA, which > > 5615 * we can access using slightly different code. > > 5616 */ > > --> 5617 if (!vma) > > > > that means vma is unitialized. > > > > Ack yeah you're right, this is a product of carrying over the code with a > wrapper that behaves slightly differently. > > I'll fix this + roll in the -fix patch stuff in a new respin tonight. Fixed in [0]. [0]:https://lore.kernel.org/all/d20128c849ecdbf4dd01cc828fcec32127ed939a.1684350871.git.lstoakes@gmail.com/ > > > 5618 break; > > 5619 if (vma->vm_ops && vma->vm_ops->access) > > 5620 ret = vma->vm_ops->access(vma, addr, buf, > > 5621 len, write); > > 5622 if (ret <= 0) > > 5623 break; > > 5624 bytes = ret; > > 5625 #endif > > 5626 } else { > > 5627 bytes = len; > > 5628 offset = addr & (PAGE_SIZE-1); > > 5629 if (bytes > PAGE_SIZE-offset) > > 5630 bytes = PAGE_SIZE-offset; > > 5631 > > 5632 maddr = kmap(page); > > 5633 if (write) { > > 5634 copy_to_user_page(vma, page, addr, > > 5635 maddr + offset, buf, bytes); > > 5636 set_page_dirty_lock(page); > > 5637 } else { > > 5638 copy_from_user_page(vma, page, addr, > > 5639 buf, maddr + offset, bytes); > > 5640 } > > 5641 kunmap(page); > > 5642 put_page(page); > > 5643 } > > 5644 len -= bytes; > > 5645 buf += bytes; > > 5646 addr += bytes; > > 5647 } > > 5648 mmap_read_unlock(mm); > > 5649 > > 5650 return buf - old_buf; > > 5651 } > > > > regards, > > dan carpenter > > >