From nobody Tue May 7 01:32:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1613558779; cv=none; d=zohomail.com; s=zohoarc; b=G2XRoN/ui1aJ/A4fwcaeIi2ah9T31jduz4/DV9WPO8W7xYf5CvlQ4Y0Zlv5+ZUeNQCR+gxGKSIDb0W71nz2rS6qbr1f3tlm55r+XnBglNzdj1jpHXzAjFNEour1WXA2iWNeNL+Ryo4cLwoU2vieIwMBPleq43u5hsyOQSE2NeWw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613558779; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EkWeEv6ILJ0/X/gZ638Qi3CNdeAfWvOX5jOISvz4cYE=; b=j33mbZ6KLiDlyjKSZkLvkZHsQ0hrvhHPaGS2gpquFKdK59zM28MxdZMaQXPiyFErognrkHT1jLPpPN3R0CBLhCRStRVMX0R6EjvmsalAa7S6G+467oJPHW4wNrKpWFGioFFnFJqoUA1v4PcKDUTU4tS+3wkMhCenMrm/k4NNPTI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 161355877925863.48733791155394; Wed, 17 Feb 2021 02:46:19 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.86201.161606 (Exim 4.92) (envelope-from ) id 1lCKLM-0000BB-7s; Wed, 17 Feb 2021 10:46:04 +0000 Received: by outflank-mailman (output) from mailman id 86201.161606; Wed, 17 Feb 2021 10:46:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lCKLM-0000B4-4M; Wed, 17 Feb 2021 10:46:04 +0000 Received: by outflank-mailman (input) for mailman id 86201; Wed, 17 Feb 2021 10:46:02 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lCKLK-0000Az-Gm for xen-devel@lists.xenproject.org; Wed, 17 Feb 2021 10:46:02 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 427a70d8-bde4-4401-b4b1-beb4744f5412; Wed, 17 Feb 2021 10:46:01 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id C2AE5B1AB; Wed, 17 Feb 2021 10:46:00 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 427a70d8-bde4-4401-b4b1-beb4744f5412 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1613558760; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EkWeEv6ILJ0/X/gZ638Qi3CNdeAfWvOX5jOISvz4cYE=; b=MTK3OG8cAjod+VeIaR/YSVwwkk9abgMZFwLVj7zB9qAvvFVyFeFi5dKkwx3zPNWIgzrjvG Bb85kiMDcrhMKE/1h+h6IatAZUDUFJE2qANorzarHHrV0Nom6IdDdKCiA6hesNmePN2EvF WgV7Ux7SR21+djg1OQiqOm+Cac3V0dU= Subject: [PATCH 1/3] gnttab: never permit mapping transitive grants From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <156559d5-853a-5bb9-942b-f623627e0907@suse.com> Message-ID: <3620b977-4182-db2c-e2f9-71e1c6c4e721@suse.com> Date: Wed, 17 Feb 2021 11:46:00 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <156559d5-853a-5bb9-942b-f623627e0907@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" Transitive grants allow an intermediate domain I to grant a target domain T access to a page which origin domain O did grant I access to. As an implementation restriction, T is not allowed to map such a grant. This restriction is currently tried to be enforced by marking active entries resulting from transitive grants as is-sub-page; sub-page grants for obvious reasons don't allow mapping. However, marking (and checking) only active entries is insufficient, as a map attempt may also occur on a grant not otherwise in use. When not presently in use (pin count zero) the grant type itself needs checking. Otherwise T may be able to map an unrelated page owned by I. This is because the "transitive" sub- structure of the v2 union would end up being interpreted as "full_page" sub-structure instead. The low 32 bits of the GFN used would match the grant reference specified in I's transitive grant entry, while the upper 32 bits could be random (depending on how exactly I sets up its grant table entries). Note that if one mapping already exists and the granting domain _then_ changes the grant to GTF_transitive (which the domain is not supposed to do), the changed type will only be honored after the pin count has gone back to zero. This is no different from e.g. GTF_readonly or GTF_sub_page becoming set when a grant is already in use. While adjusting the implementation, also adjust commentary in the public header to better reflect reality. Fixes: 3672ce675c93 ("Transitive grant support") Signed-off-by: Jan Beulich Acked-by: Julien Grall --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -851,9 +851,10 @@ static int _set_status_v2(const grant_en mask |=3D GTF_sub_page; =20 /* If not already pinned, check the grant domid and type. */ - if ( !act->pin && ((((scombo.flags & mask) !=3D GTF_permit_access) && - ((scombo.flags & mask) !=3D GTF_transitive)) || - (scombo.domid !=3D ldomid)) ) + if ( !act->pin && + ((((scombo.flags & mask) !=3D GTF_permit_access) && + (mapflag || ((scombo.flags & mask) !=3D GTF_transitive))) || + (scombo.domid !=3D ldomid)) ) PIN_FAIL(done, GNTST_general_error, "Bad flags (%x) or dom (%d); expected d%d, flags %x\n", scombo.flags, scombo.domid, ldomid, mask); @@ -879,7 +880,7 @@ static int _set_status_v2(const grant_en if ( !act->pin ) { if ( (((scombo.flags & mask) !=3D GTF_permit_access) && - ((scombo.flags & mask) !=3D GTF_transitive)) || + (mapflag || ((scombo.flags & mask) !=3D GTF_transitive))) || (scombo.domid !=3D ldomid) || (!readonly && (scombo.flags & GTF_readonly)) ) { --- a/xen/include/public/grant_table.h +++ b/xen/include/public/grant_table.h @@ -166,11 +166,13 @@ typedef struct grant_entry_v1 grant_entr #define GTF_type_mask (3U<<0) =20 /* - * Subflags for GTF_permit_access. + * Subflags for GTF_permit_access and GTF_transitive. * GTF_readonly: Restrict @domid to read-only mappings and accesses. [GST] * GTF_reading: Grant entry is currently mapped for reading by @domid. [X= EN] * GTF_writing: Grant entry is currently mapped for writing by @domid. [X= EN] - * GTF_PAT, GTF_PWT, GTF_PCD: (x86) cache attribute flags for the grant [= GST] + * Further subflags for GTF_permit_access only. + * GTF_PAT, GTF_PWT, GTF_PCD: (x86) cache attribute flags to be used for + * mappings of the grant [GST] * GTF_sub_page: Grant access to only a subrange of the page. @domid * will only be allowed to copy from the grant, and not * map it. [GST] From nobody Tue May 7 01:32:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1613558807; cv=none; d=zohomail.com; s=zohoarc; b=CELXeMv4wq61he48fHv/QqcbgVN89kF7ewkobdQUAXc1/DjM7834mvEw3t8x0+xz2s7JWJumqeMSuvYclubdpbGEwzWCReA8moWGf33Lfsgd8+6netubtE2nEjw/VEhAr98CH8ElCGiA7SwT7PPPQyRL4GyLLM2nkzpFwRYpiD0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613558807; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VudHzvHkbrWxXAQT3YkDMWmcJ5pINo+1wlM1FgK45WU=; b=HeX3wsZS2vlQs8W6Fc1fK3oOJ8xLRZOvW/V+QgEsd7V59yuk8CAyUHNCpIUPFq7+B9KVo73ROVEvF48+4sCbPSbNadR20i/BY/kvH+VXfK2r4M+zzc84HwaGolQINRfACka65pLfZmqIXnwMvZdZOJTB0R3UhRQcuw+YKU62gZo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1613558807250417.28496258817995; Wed, 17 Feb 2021 02:46:47 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.86204.161618 (Exim 4.92) (envelope-from ) id 1lCKLp-0000Is-GX; Wed, 17 Feb 2021 10:46:33 +0000 Received: by outflank-mailman (output) from mailman id 86204.161618; Wed, 17 Feb 2021 10:46:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lCKLp-0000Il-DX; Wed, 17 Feb 2021 10:46:33 +0000 Received: by outflank-mailman (input) for mailman id 86204; Wed, 17 Feb 2021 10:46:32 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lCKLn-0000Ie-UB for xen-devel@lists.xenproject.org; Wed, 17 Feb 2021 10:46:31 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 9d84df09-bc85-4edf-a52d-801e5272fe32; Wed, 17 Feb 2021 10:46:31 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 45E22B1AB; Wed, 17 Feb 2021 10:46:30 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 9d84df09-bc85-4edf-a52d-801e5272fe32 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1613558790; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VudHzvHkbrWxXAQT3YkDMWmcJ5pINo+1wlM1FgK45WU=; b=XFf2PzRUoaBtA3RmlfcRvSi0PQbmgi3lL7ZdHaV/xzen1zkf8LJh+ir+L4pcwjyNfisEBj hy+zaBbbBt+ZIxBst9hdcFFbRZgFnxiKYJ5Zu0eBueBlFGNY8jd0j6/+OdRAz++VBMi42u JjRzZKA+e8B4zFzVjp6hcenZyWZ+rkk= Subject: [PATCH 2/3] gnttab: bypass IOMMU (un)mapping when a domain is (un)mapping its own grant From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu , Rahul Singh References: <156559d5-853a-5bb9-942b-f623627e0907@suse.com> Message-ID: <5bb4fba7-a10b-90c4-82f7-8cde6e8cacfb@suse.com> Date: Wed, 17 Feb 2021 11:46:29 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <156559d5-853a-5bb9-942b-f623627e0907@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" Mappings for a domain's own pages should already be present in the IOMMU. While installing the same mapping again is merely redundant (and inefficient), removing the mapping when the grant mapping gets removed is outright wrong in this case: The mapping was there before the map, so should remain in place after unmapping. This affects - Arm Dom0 in the direct mapped case, - x86 PV Dom0 in the "iommu=3Ddom0-strict" / "dom0-iommu=3Dstrict" cases, - all x86 PV DomU-s, including driver domains. Reported-by: Rahul Singh Signed-off-by: Jan Beulich Reviewed-by: Julien Grall --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -1243,7 +1243,7 @@ map_grant_ref( goto undo_out; } =20 - need_iommu =3D gnttab_need_iommu_mapping(ld); + need_iommu =3D ld !=3D rd && gnttab_need_iommu_mapping(ld); if ( need_iommu ) { unsigned int kind; @@ -1493,7 +1493,7 @@ unmap_common( if ( put_handle ) put_maptrack_handle(lgt, op->handle); =20 - if ( rc =3D=3D GNTST_okay && gnttab_need_iommu_mapping(ld) ) + if ( rc =3D=3D GNTST_okay && ld !=3D rd && gnttab_need_iommu_mapping(l= d) ) { unsigned int kind; int err =3D 0; From nobody Tue May 7 01:32:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1613558834; cv=none; d=zohomail.com; s=zohoarc; b=PaMKxErVwCFjx6ZtBxkP9NQVm5irpU+yiMaHXAWS9rxGEifr+qNZUklOPPpbYCEC9jYt6Sxi5usIW/3epU9sz+YTXkLAhmkfBqqxa5fqMH9KcEshf/zAMADMs/nGJ6tQt5pyopccF2orVng7RoBnOK45YCuyWjjAorYYODMDnyA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613558834; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IJzykk1fycKpMnuMtQ/GtfxP7KxLImeCXhtduVS0e7A=; b=evI9lBOhLcEngdO43aHvCHuVqCH4aWop2OfvX5Yt0XYBdCV937Cl0SEWZo1kxGuEjkuJBgBQo8U98QylJk7AvPJNVz/TNvnN3Twqt/6n//OKHxFcmw5Aob/KZ5eBT0eSOIEZaYGwpsC1AJg9GmlDz8x9KvyWYj7hZFbBwp6KNX4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1613558834501643.7634564468848; Wed, 17 Feb 2021 02:47:14 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.86206.161629 (Exim 4.92) (envelope-from ) id 1lCKMF-0000PW-TK; Wed, 17 Feb 2021 10:46:59 +0000 Received: by outflank-mailman (output) from mailman id 86206.161629; Wed, 17 Feb 2021 10:46:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lCKMF-0000PP-QJ; Wed, 17 Feb 2021 10:46:59 +0000 Received: by outflank-mailman (input) for mailman id 86206; Wed, 17 Feb 2021 10:46:58 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lCKMD-0000PB-Ua for xen-devel@lists.xenproject.org; Wed, 17 Feb 2021 10:46:57 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f951a317-8485-4d2b-a593-4ce277995d9c; Wed, 17 Feb 2021 10:46:56 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 4855CB1AD; Wed, 17 Feb 2021 10:46:55 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f951a317-8485-4d2b-a593-4ce277995d9c X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1613558815; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IJzykk1fycKpMnuMtQ/GtfxP7KxLImeCXhtduVS0e7A=; b=pO4jeeQnzTStydoed62HEhA5D0tBkXOa4xYfhDPT9njPu/0Wn9V3MNtsC9KAp7agIBJT4t fVQpZLxB//2DS5cmvDXM4dRg1nPkQbE1HMU2PYlaVGiOfiiGM9cX0vq22dZM1UoZURHRwO Yiuym74dE3n/Hy9lpKEG/OQOpBpUXmo= Subject: [PATCH 3/3] gnttab: GTF_sub_page is a v2-only flag From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <156559d5-853a-5bb9-942b-f623627e0907@suse.com> Message-ID: <2bf46266-785d-0de3-5f61-48c3fd191a5c@suse.com> Date: Wed, 17 Feb 2021 11:46:54 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <156559d5-853a-5bb9-942b-f623627e0907@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" Prior to its introduction, v1 entries weren't checked for this flag, and the flag also has been meaningless for v1 entries. Therefore it also shouldn't be checked. (The only consistent alternative would be to also check for all currently undefined flags to be clear.) Fixes: b545941b6638 ("Implement sub-page grant support") Signed-off-by: Jan Beulich --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -762,13 +762,11 @@ static int _set_status_v1(const grant_en struct domain *rd, struct active_grant_entry *act, int readonly, - int mapflag, - domid_t ldomid) + domid_t ldomid) { int rc =3D GNTST_okay; uint32_t *raw_shah =3D (uint32_t *)shah; union grant_combo scombo; - uint16_t mask =3D GTF_type_mask; =20 /* * We bound the number of times we retry CMPXCHG on memory locations t= hat @@ -780,11 +778,6 @@ static int _set_status_v1(const grant_en */ int retries =3D 0; =20 - /* if this is a grant mapping operation we should ensure GTF_sub_page - is not set */ - if ( mapflag ) - mask |=3D GTF_sub_page; - scombo.raw =3D ACCESS_ONCE(*raw_shah); =20 /* @@ -798,8 +791,9 @@ static int _set_status_v1(const grant_en union grant_combo prev, new; =20 /* If not already pinned, check the grant domid and type. */ - if ( !act->pin && (((scombo.flags & mask) !=3D GTF_permit_access) = || - (scombo.domid !=3D ldomid)) ) + if ( !act->pin && + (((scombo.flags & GTF_type_mask) !=3D GTF_permit_access) || + (scombo.domid !=3D ldomid)) ) PIN_FAIL(done, GNTST_general_error, "Bad flags (%x) or dom (%d); expected d%d\n", scombo.flags, scombo.domid, ldomid); @@ -916,7 +910,7 @@ static int _set_status(const grant_entry { =20 if ( evaluate_nospec(rgt_version =3D=3D 1) ) - return _set_status_v1(shah, rd, act, readonly, mapflag, ldomid); + return _set_status_v1(shah, rd, act, readonly, ldomid); else return _set_status_v2(shah, status, rd, act, readonly, mapflag, ld= omid); } --- a/xen/include/public/grant_table.h +++ b/xen/include/public/grant_table.h @@ -175,7 +175,7 @@ typedef struct grant_entry_v1 grant_entr * mappings of the grant [GST] * GTF_sub_page: Grant access to only a subrange of the page. @domid * will only be allowed to copy from the grant, and not - * map it. [GST] + * map it. [GST, v2] */ #define _GTF_readonly (2) #define GTF_readonly (1U<<_GTF_readonly)