From patchwork Wed Aug 9 14:46:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kirill A. Shutemov" X-Patchwork-Id: 13348095 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 5D06CC04A6A for ; Wed, 9 Aug 2023 14:46:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5FCC6B0071; Wed, 9 Aug 2023 10:46:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D0F976B0074; Wed, 9 Aug 2023 10:46:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD72E8E0001; Wed, 9 Aug 2023 10:46:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id ABF6E6B0071 for ; Wed, 9 Aug 2023 10:46:22 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 72361160F20 for ; Wed, 9 Aug 2023 14:46:22 +0000 (UTC) X-FDA: 81104841804.30.8EC7471 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by imf20.hostedemail.com (Postfix) with ESMTP id E55FF1C0023 for ; Wed, 9 Aug 2023 14:46:18 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=UtBjpfDb; spf=none (imf20.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.55.52.115) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691592379; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=nAOqbS5Qgl4SST4mVTxt2U0LC8XCkPEc99k44uCyOG0=; b=YV3JppJLFPz8xs1elDhBSsIN2wuaklvtH6BF/hgLYxaHvjGDx6Jl1s9JRfhIj2AmDvONhL 8NpiUmuhBNIkkI/5b/zCPlOZ4HZyRdSmsNQziPkSXWsb0E9gq02EUTVb1MaOYvIw/0zTbB wtjy5V+57rtJngQ79o2zW+TnPKeZBrE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691592379; a=rsa-sha256; cv=none; b=xjDT1ESFVORuQK8DkIbLoGPl07BsWWyDNs8zANGYdXbBM1fhJ+3aKpvFgtfycqr0GgicwJ eekkemf6/dGLqEazpbkNxSs0kOfFCPBwwag/a9euHNoZOhln3o7NX/6MCnowk03p+V2pEg vr3EvoAKwCJ/626UlE8SRYdPdb3ujUE= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=UtBjpfDb; spf=none (imf20.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.55.52.115) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691592379; x=1723128379; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=nat6JIpKlbNyaE2SmtvG1qRCszoGjlyVBGDav8zdJFs=; b=UtBjpfDbG6HIT7UEVkjot7tO8d/MiTLZTvNpEYPME2pUQHb+mO/LUQu+ 6PbcDX/B2mbZk9lk0K9tqqWZMpzyI97ZG6w98lM4f0vHcBhed1IVI94cV OctWONXU3fgD+iWkh2FWXA/IMuAuta3zx5hc5jC6soTCS0kJ7jcHSsRbL 6K+gdJj1XM8A3xZUPbI+428dqwvr7s/CaEmL0lpPlD4tNpZm/A5ORE1mZ d+YQXtkMkH9Id1t8U7lKWLRwYZsE6JQjiZIxgFfibJZY5ByboYvjkqf2X +ma6etIwv5iSnlq6AyvNRJtAk5VyQCqmq9jlwV/1ZrBdxChg/fm5yG3mB w==; X-IronPort-AV: E=McAfee;i="6600,9927,10797"; a="371127928" X-IronPort-AV: E=Sophos;i="6.01,159,1684825200"; d="scan'208";a="371127928" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2023 07:46:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10797"; a="905676169" X-IronPort-AV: E=Sophos;i="6.01,159,1684825200"; d="scan'208";a="905676169" Received: from jmhendri-mobl.ger.corp.intel.com (HELO box.shutemov.name) ([10.252.40.58]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2023 07:46:11 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id 8E85310A257; Wed, 9 Aug 2023 17:46:07 +0300 (+03) From: "Kirill A. Shutemov" To: Linus Torvalds , Andrew Morton , Dave Hansen Cc: Kostya Serebryany , Andrey Ryabinin , Andrey Konovalov , Alexander Potapenko , Taras Madan , Dmitry Vyukov , Rick Edgecombe , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" , Christina Schimpe , stable@vger.kernel.org Subject: [PATCH] mm: Fix access_remote_vm() regression on tagged addresses Date: Wed, 9 Aug 2023 17:46:00 +0300 Message-ID: <20230809144600.13721-1-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Stat-Signature: piowsfn564iw4i83xuq9tu64knbgc1k6 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: E55FF1C0023 X-Rspam-User: X-HE-Tag: 1691592378-581145 X-HE-Meta: U2FsdGVkX19ekcckbb4fAHcc0PMONZ0aj8u3NC8Q3lIE5vuhL8Ul9IXK6JG0bYjmsV7Eme4TCXJOcbIsYJa5kCpmtU+L+cmDZI/B7diZRkv9ah9UdMsu0rdc1yFh0r6nbdh/fVNmrqEWBgToiqueVUM+aigV660ZVs+LxTYcB8eyvwp0jEgLZsr9lRtZe3ASR1ySmQgSfEr8BRMfMwd3CqUmG72dZY2jjk9tKhgTHAxdi+5G/3vULcKmGMaH4y8JnqUEQYXQsz8gbJG1J18Z7yoTdGpZTAztxK4lx0KeO1HDL77thTOnson5ed9iKw5IRl/1j5b2E6g3w+aHpU7cC9nKFiYzKeYXIuWi7v8dyDS645rYZ6YVnS8Kqpa5/Jm6VK0n5HC0HUK31+8046kKH5S04AHpUuR3b1ziyxVBYtm1u4yFknnfvtmwDxl92JAZHWayhhItGtEzcVUvPJxZ7fVkRsAgyEjC7l67KTVhyd73WQaEYFAsMO8d/WMHeQmMgJVRUDuJbogWx43Cf9hAOEI8jxn388PQhSMefIQ9DW8zcH/+RCNZetL36PRPHt80iy6XFM+J/1C/IS34YaO8vfoMrp9X1bxynqrK4qFSSzytk43hqKlEG0hy7k4Y2LVWMobnHswH3AKH/Gugw4m//p9bJlqDyJ1OgIkONBOIk9KFisZSfy1fVsJrYbtgQpipVn079zGvpDNK/H7POblo0ENzpchNKhKX3UyEvUS/5zhtuoY39LcUOhWfoyllOxWPHqvudE5TDFr7lsiCbHzmtXR2mNfIKjIXZQoSknfsK9n9q4cbLgdBKumA112ydqM7A+K4o9e7sjRmOoAH4T0/s4Dcdf2c1K4QqfBRRUCPPDFgIdQDyMICrYhWTUIKb2FLuMf8O6+gUg4Asy+qnDfI/RvwKb5awOYjPwl5x5SI/BoBWd7WX/ORJ5U64hQ3SuYZ2/ULZxLpAnczGF62f7m 2jFCQRd5 UmgHhg1qN9VUqS1zgfIftJZTabQ6173sn9KEXqIR+5zzFxJFAmEta4d5sdYbTUv25WboeLK6Yhscd6EQGdHIdNshRXCoscsrgZC8XNp4vIk1qnJSU+rRgRbWIRA4fqvTppDDlRuJL0wHu213r3p0n1koKS4XXcZAb5+RZeBGA2akdCG029P8PL0OXH14X09MzUeWoOQO/qYobcWC3XuQNOKPthLU7t5mcuExZkjI5fIb5hJ7IcVdBccdr+HLPISOB4kuPVG37LldrXSQKzN8+Fn9nbg== 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: GDB uses /proc/PID/mem to access memory of the target process. GDB doesn't untag addresses manually, but relies on kernel to do the right thing. mem_rw() of procfs uses access_remote_vm() to get data from the target process. It worked fine until recent changes in __access_remote_vm() that now checks if there's VMA at target address using raw address. Untag the address before looking up the VMA. Signed-off-by: Kirill A. Shutemov Reported-by: Christina Schimpe Fixes: eee9c708cc89 ("gup: avoid stack expansion warning for known-good case") Cc: stable@vger.kernel.org --- mm/memory.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/memory.c b/mm/memory.c index 01f39e8144ef..3be9db30db32 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -5701,6 +5701,9 @@ int __access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf, if (mmap_read_lock_killable(mm)) return 0; + /* Untag the address before looking up the VMA */ + addr = untagged_addr_remote(mm, addr); + /* Avoid triggering the temporary warning in __get_user_pages */ if (!vma_lookup(mm, addr) && !expand_stack(mm, addr)) return 0;