From patchwork Mon Apr 3 11:10:19 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: 13198056 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 8A8B5C76196 for ; Mon, 3 Apr 2023 11:10:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D38706B0072; Mon, 3 Apr 2023 07:10:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CE7B46B0074; Mon, 3 Apr 2023 07:10:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BAF3A6B0075; Mon, 3 Apr 2023 07:10:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A830C6B0072 for ; Mon, 3 Apr 2023 07:10:36 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6AEAE160A50 for ; Mon, 3 Apr 2023 11:10:36 +0000 (UTC) X-FDA: 80639811672.11.CB6FF7D Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by imf01.hostedemail.com (Postfix) with ESMTP id B279F4001C for ; Mon, 3 Apr 2023 11:10:33 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=dTTTGzJd; spf=none (imf01.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.20) 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=1680520234; 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:in-reply-to:references:references:dkim-signature; bh=RFF2DT7gPz9dkrT0bvcQuiTJ321nmdo8T596rPtuDBk=; b=uYaYrRdwbt1T0MYtJSobpYUuAlZzgtrW/NpotniRkhje+wWQGofYWikXlZjaymQaiX1DVY aEszwFWm3uSEBCeseiRvtK+Q9efw/aCl1QaDf0e/rDGD6wuSLcX8T1HHfE+J4XCfyLXA2B 6XiiV8v0cDXjWCMx9ZzVFpbqqvPVC88= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=dTTTGzJd; spf=none (imf01.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.20) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680520234; a=rsa-sha256; cv=none; b=czBlvLGqQI4Cjz75E56gPqAeLN1nwCy+MJRatDPQYvPgqrzJ9Xnq0ERq/UVsSnc7W2FTwm NR1c4MNb2DuZtcyZVeAujeqC0pxcPUJl/J+5n8z/PLzV/rce24lW+SLp4Q+0C9AWXxy3Az NwnzsgCcbsYef8j2vwYcFbLPNHU+KSQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680520234; x=1712056234; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=txlqjFMOsvS5xVXf0Recvi0uKBTdvCldZTwjgTHY5/8=; b=dTTTGzJdl7/m5aTCyvhdmE22pLA0BK00t/cORfxNlSB7IW0Ac0P7FbRu mToxey+Edf+DzGsB/amnpBx25YYoFr+BmEtJf9RSlmXkaaZn+/GqNKKKm EUOVh693uiCLymtdA4cFFhE2Mu/BDfVZTgXNcH3vbnX5M7Q2YOmkqt8aG Dgi7uOMmiIHadrjb3qKFggd8VIAooIRty24WgykfZQk6QJ4Kh9IbGNUcN tYYh4VTBPgInq4VnMwQmKEyXy5TguIeKfVxVYmzKesganv2mABNGcmApw Z3/on0cPmnT1BH1KGpqWLO2sk9hlcr/3YYKTWBHVGUZqrPSOv5RJXZ7Rj g==; X-IronPort-AV: E=McAfee;i="6600,9927,10668"; a="330440410" X-IronPort-AV: E=Sophos;i="5.98,314,1673942400"; d="scan'208";a="330440410" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2023 04:10:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10668"; a="860164460" X-IronPort-AV: E=Sophos;i="5.98,314,1673942400"; d="scan'208";a="860164460" Received: from amomin-mobl1.ger.corp.intel.com (HELO box.shutemov.name) ([10.251.210.227]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2023 04:10:26 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id E86BE10DFD1; Mon, 3 Apr 2023 14:10:23 +0300 (+03) From: "Kirill A. Shutemov" To: Dave Hansen , Andy Lutomirski , Peter Zijlstra Cc: x86@kernel.org, Kostya Serebryany , Andrey Ryabinin , Andrey Konovalov , Alexander Potapenko , Taras Madan , Dmitry Vyukov , "H . J . Lu" , Andi Kleen , Rick Edgecombe , Bharata B Rao , Jacob Pan , Ashok Raj , Linus Torvalds , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [PATCH 1/2] x86/mm/iommu/sva: Fix error code for LAM enabling failure due to SVA Date: Mon, 3 Apr 2023 14:10:19 +0300 Message-Id: <20230403111020.3136-2-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230403111020.3136-1-kirill.shutemov@linux.intel.com> References: <20230403111020.3136-1-kirill.shutemov@linux.intel.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: B279F4001C X-Stat-Signature: idk7oj6j33dmtoikk99sho5n8yw9dmyp X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1680520233-922195 X-HE-Meta: U2FsdGVkX19eDetekip0oUTf4rUOK4Cn2jt69WakWte1xAUl5LjCjC7wr3zrS8xcfWaBNFXpuY1xdui8juuHnW+8y5S+dLcm6KbjgMx1A6U6VOyuVlK7qjtECoM/LgOn4gfZEcMQIE/CoAzgLFep/7Wa7nuPikvhGdWbnaWDJweEQXuBWc3+SwN7N56EcVPunOwlPIjNZCKJxxPbc8ySy03y9U1cjIEnSYOCWNxjkIj6wAOxGWYrGPycx8u4HCYxnI94gE4d8dph17zNvmJk8/D5HYJxb2MSXE+1zClaw3QEiOGC+Km514uTTxa1mkfsKhATvkoExWrklZiCxO9zOiORxkic02XTXtjWLwp3tFJt0HmPREXYxMBUarf5SWWXUmEHDh0vCEeZKcwT0znpSZxIVLU+csk/xkgvt+WJIQGn+Co1Earyj+vgberzHIMHLJkiB0Zcg6ljrlc6l7YhfD+CODJThBNZviGHNZ7BwIbSnRh1GlCrMZyRkmsKxBlxTcxGkkZlxb6055CP7aCWPspVMiL9n7CLt1A7WXbMzfAPj6bu58Xy591QDLPqieI97XZ/G0hlzo5vyDF0qQX56hyuVLqah3QRDhGyAkRoMNexcPZkM+775wx+DAMkAK+hIR32bVob4dnWY2EjfXLzk7j2j2yIJGZ1obUYrqa8CSmJFuCLC+7uq/2RoqLQq0OaFy8L1k57xauk5DwNoOD0z2us2ASYnF2+WS46FwI7ZUdQLuGbGjN96LYm65K/yxvtjhYJvq+GYFEouvceN605Y9ok1pQZMeXfahi+odVuYBlzK1/XgVLLzJOYsb5OvRHrq5fcE+YeFiuxg+HguAXk+YLWzS3cX1i/6alWvdD+ocDW1p2KEQzV5jtrEmCwlVLDNbqeA6+QEcxtTVLK2BWelzSa01wowlXKm8Co4lwf0zcve+3xsI5hlVQKzxQ9NP5FEZYVrJEjMMAUNjX1GcZ PYGSPoEW A2jv6Nh3Uuyis6yskUEduxplPHgs/G23WR1B+TA59n0nR3jzcHgj5j9ZkUut4AAOLzM5th4/AkGSZeVehV/Eu3kdDmGv5KpmCABkfTrMeoLmuKs+fq8NiAjoMFyRels/xmoX6QKozpI/uL38wqxWey7bdOcyQhy12w9wAr9L2/vM4S8qKfz7WpmACx76PTW3LNJMXvGCDIj5RrqOYsyqdKmS83POr0mrOes8dFTlJPWwoBVVXcgbm3hxKZPFJ+8SM2MJb 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: Normally, LAM and SVA are mutually exclusive. LAM enabling will fail if SVA is already in use. Correct error code for the failure. EINTR is nonsensical there. Signed-off-by: Kirill A. Shutemov Fixes: 23e5d9ec2bab ("x86/mm/iommu/sva: Make LAM and SVA mutually exclusive") Reported-by: Dmitry Vyukov Reviewed-by: Dmitry Vyukov --- arch/x86/kernel/process_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 74c7e84a94d8..c7dfd727c9ec 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -760,7 +760,7 @@ static int prctl_enable_tagged_addr(struct mm_struct *mm, unsigned long nr_bits) if (mm_valid_pasid(mm) && !test_bit(MM_CONTEXT_FORCE_TAGGED_SVA, &mm->context.flags)) - return -EINTR; + return -EINVAL; if (mmap_write_lock_killable(mm)) return -EINTR; From patchwork Mon Apr 3 11:10:20 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: 13198058 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 39AAAC77B60 for ; Mon, 3 Apr 2023 11:10:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2FF266B0074; Mon, 3 Apr 2023 07:10:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2AF296B0075; Mon, 3 Apr 2023 07:10:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1502E6B0078; Mon, 3 Apr 2023 07:10:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E611D6B0075 for ; Mon, 3 Apr 2023 07:10:36 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8E67D160A98 for ; Mon, 3 Apr 2023 11:10:36 +0000 (UTC) X-FDA: 80639811672.13.22001F3 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by imf28.hostedemail.com (Postfix) with ESMTP id F30A1C0013 for ; Mon, 3 Apr 2023 11:10:33 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=m4jIoMnZ; spf=none (imf28.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=1680520234; 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:in-reply-to:references:references:dkim-signature; bh=2ZZPio4gxdEoamdf66m4ZkAgKXndyxzZY41yZ24m+DE=; b=uvEclUYSJvSTGDdymOTRQ3AUBvzqzA6PDzHfD5/I9JRxcGVekkwotNDYJTTD42Xom7Mwfv ROA7JxJVBVV0uZkg0IpfxCf+ZyZaocZad+6+qukUqzWBQsGeJhuEx5FbFIutMXYnkqE6Ve ZSv+M8a9aMWT53ewN6mlLAl7N2vuMh0= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=m4jIoMnZ; spf=none (imf28.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680520234; a=rsa-sha256; cv=none; b=GIKAN58gO+Rnp/xCqB2qWgJQjR3GBCI2VEHcMgbqtegEqu4m9sqLn8x5ocF6UvOYcm3/va 6Ej93n8yf7X8fnabsf7NqkwUJZ8LL7ngMe0blu4SlfRrAYN1xHwgh/Ctvwob4jsUz8xFeI CAZaR4ot4QOfqVBxzEn9Edw4CzhmUk0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680520234; x=1712056234; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=i6n3D4JZD6jPRhROHlLAaHVSb3yrYur06jnlZ91gKLc=; b=m4jIoMnZ74drVtWJsinMzG2ifwwT9js3SbF7iPIqBAfnXybpaFhvFhk5 rtUHmRae3QwAqM7u+F0x8pG+LmiKrdJAZU/PaW//bG9BeJRDFvLuFhvGk NpEN83l/3MAcKu2kVYw+WcAaaXNvrt3ULFP0xU5YbvCFzaZxO66dJL9WU OSPE9iQaEnot0C+lxHAwKQ0hRyYJx3ZgLGBmzMhSOEDtW5ImjYbhKKj35 ldwPgPH1Q3GLU59ahWojeo7szcpKyslW6blziCkE7zL6X2QugwzKU65Rf aYiA2yCgesATp9LUIXuk/EOF/rLOzLTcKk4JWhgdec+Eks0pddFtdo74/ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10668"; a="341895517" X-IronPort-AV: E=Sophos;i="5.98,314,1673942400"; d="scan'208";a="341895517" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2023 04:10:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10668"; a="663165543" X-IronPort-AV: E=Sophos;i="5.98,314,1673942400"; d="scan'208";a="663165543" Received: from amomin-mobl1.ger.corp.intel.com (HELO box.shutemov.name) ([10.251.210.227]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2023 04:10:27 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id F205610DFD3; Mon, 3 Apr 2023 14:10:23 +0300 (+03) From: "Kirill A. Shutemov" To: Dave Hansen , Andy Lutomirski , Peter Zijlstra Cc: x86@kernel.org, Kostya Serebryany , Andrey Ryabinin , Andrey Konovalov , Alexander Potapenko , Taras Madan , Dmitry Vyukov , "H . J . Lu" , Andi Kleen , Rick Edgecombe , Bharata B Rao , Jacob Pan , Ashok Raj , Linus Torvalds , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [PATCH 2/2] x86/mm/iommu/sva: Do not allow to set FORCE_TAGGED_SVA bit from outside Date: Mon, 3 Apr 2023 14:10:20 +0300 Message-Id: <20230403111020.3136-3-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230403111020.3136-1-kirill.shutemov@linux.intel.com> References: <20230403111020.3136-1-kirill.shutemov@linux.intel.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: F30A1C0013 X-Stat-Signature: kzaimbm3fawg99xb9s1tuz31ot1s3kno X-HE-Tag: 1680520233-467776 X-HE-Meta: U2FsdGVkX1/zR6up+3VT+6HvL1Tj6Wo5HiSjcUnMAD7Q74Azgwm9bfKdFbSvRNm+3/90/CVkkURwg85LWWRxkDuRfV+RqAHuBmNNojjB7GA7FlWaOPAUJBphNPBxaPeIw5PltMKGEiZdHpLgB4eosSDNQbQQJ8x9Ou1wpCiiUuwTOPPrLdQff95cYJz9ylDC/ocsLRLyvogZs7/r1iDA7n6N6vG9IUvBntqYwHUW14oieQrhJO8q2zwQOoqqE26QT5yewBbY5rb9c0ytDEX+iPV5ENfTmuacIDo1WExX2c64SvsB0WF618Gmu27T6MsjXMS2fZK/hll8oRQkVpzMOaMLurtI2ueoX2hiMdGOzZV9JHOi/A0c4s91vKTsIE+jVB9ixT9rvdNpMJZm5ZUg8RN7uFavjB8EPX7h2Fv1W7ZDaKOGCyqcV9Pd5GKzrHa9seMuNcOMl7AU0WE+t3nVenEkvpBy13BJICi9Z6IRtA4heXkHn0ZgCGkVweHbi3tvH2eqopQiSZmQM6PxSWTef7jcOlSdcUSshM6csGkf47v1b9WSqA8vs5N/64tbEiVkAiBD7dDGLgIAJtqmgOK533agrDr1RJ+WOqJkyPaPBDnG582OfCAzZ6XWaWJvSeHE/6LAWr38KM2RrOvpwHAmUjL+kt2P4o1b2QJsJbz1xECeAc1rVceSIoMe5z6lJesxkgCWxt1TO7pShpELcKMSwsK48gFMMELCd+AjfSgQavqOlBZWx1L4qaPvX2MH5l5NghB1TP0uHYuc6Gd8JWkIeIzmJlRCQHmUMvDjsfxVT9VwPmUlIZKQ2s6Je/0wljAIH5KbYXxK8qSx+8XDnqZNNWw+UW6RhHKCUbpDObwfqH7W6VCjKjlAyg+M/SJmgVude1rTEObJTFOFy1IolILCYVT7aFHlT+xmhS6JzhryzflW7b1SK4h+/BrSiMxkU7y1Q95zSkpjIgb2ghKBQnO Y13WrqcV 5iz4Ghm+m+7YtLOLGXrSet26m2da3cJdlSgWL4H9MSDQTeaTsUKGaWlrpvXfTAh966QaHfIDPzz/83lOd3lVPgjkiuVZB+C7W6kYtgLyhfZcDGU57Au+SwDvmb2Zfw4PDhJmkcBLXI/kLl/1UzTAe7+zW9+A1XQly/SG3PHpMb3l1/dYNUJ+ajgiW4lhg2R9f1RnbEL6wwivTc9C7BdINUKcaVRCixfN69sWAzqjBZW7oAfj7JTymvlRxouEEQ0VoIpciwGvPAkIPgLgcJ18UJY63t6CMjTws5THj6FzjFWT+68s= 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: arch_prctl(ARCH_FORCE_TAGGED_SVA) overrides the default and allows LAM and SVA to co-exist in the process. It is expected by called by the process when it knows what it is doing. arch_prctl() operates on the current process, but the same code is reachable from ptrace where it can be called on arbitrary task. Make it strict and only allow to set MM_CONTEXT_FORCE_TAGGED_SVA for the current process. Signed-off-by: Kirill A. Shutemov Fixes: 23e5d9ec2bab ("x86/mm/iommu/sva: Make LAM and SVA mutually exclusive") Suggested-by: Dmitry Vyukov Reviewed-by: Dmitry Vyukov --- arch/x86/kernel/process_64.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index c7dfd727c9ec..cefac2d3a9f6 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -885,6 +885,8 @@ long do_arch_prctl_64(struct task_struct *task, int option, unsigned long arg2) case ARCH_ENABLE_TAGGED_ADDR: return prctl_enable_tagged_addr(task->mm, arg2); case ARCH_FORCE_TAGGED_SVA: + if (current != task) + return -EINVAL; set_bit(MM_CONTEXT_FORCE_TAGGED_SVA, &task->mm->context.flags); return 0; case ARCH_GET_MAX_TAG_BITS: