From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 8D64B80C1B for ; Fri, 23 Oct 2026 16:55:49 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69NGscTA026413; Fri, 23 Oct 2026 19:54:39 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69NGscTA026413 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="HTueYVZK" Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69NGsWRw026386 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Fri, 23 Oct 2026 19:54:33 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69NGsWRw026386 Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-86c3a053d9bso16926907b3.0 for ; Fri, 23 Oct 2026 09:54:33 -0700 (PDT) X-Gm-Message-State: AFq9FYJqvJ87gwYYn6ZkTJZeoxYZ/FlZ50qBx6EKDUWQJKQ9dskveJJZ aduLYIiSGrcQwYhLJW06CLc7EjQR++f3edi77/czUEclwpHacOP55E6ATeAIgHih8ceXnEHtrtY +ZHwCiAXZJ0eEXl0rjS3hXW2qW3n+RTnoYJ9Pw69lKnWH7Tc/0VDu9A== X-Gm-Gg: AYBFou3ljYBUbU3G2pfey57CelyXZyWk+/DDr8dj+hiXL3tnYwIIZoEQQgi6N2CIpzt zmnluKYgpUQVSz9XVZlfYezYHWE8jdkR7C9EEslsjtLcNg8fZeh1hHOR2dP3/IrqZr7VqN+3ZxV 4rQGrdhzhCY5IpB30E9rRopq/41MhU24xoRTBJVt8Jjh1U83XJeth46W4hmfCRyWDuISH3K1WKa 2pjHlnDWyOAssEngV2D77JnU8SebspTJ3H6qXO5nF3XBKSK2+iSuZYazPTWXxhpT8Kue98qjD6s JwhHUw9gu6ox4uBt/oNuRO3rbE9CPLe6NeFUfjGEX29KSScUWp/2ddGBsYNGCwR4om+ycYiVO1X PfYQAIR9TNsjr4NhMtoRWu8Czgoxj79AfwKY3KIJs2+VLOWUBpNCKoSyQa0+vLIPW87dtkQWOQv F5nf77twsO6Zieuw2XG4cH7xpkQpDDqp4= X-Received: by 2002:a05:690c:e0c6:20b0:8ab:4c8f:2844 with SMTP id 00721157ae682-8b157e3429bmr18263117b3.39.1792774472226; Fri, 23 Oct 2026 09:54:32 -0700 (PDT) X-Received: by 2002:a05:690c:e0c6:20b0:8ab:4c8f:2844 with SMTP id 00721157ae682-8b157e3429bmr18262957b3.39.1792774471566; Fri, 23 Oct 2026 09:54:31 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1792774471; cv=pass; d=google.com; s=arc-20260327; b=ajd41YI7PtJAvkQdCCv006gsDCc5j3ODZ4DeblRNzZp4HzSSx83xW51ttBYIeGEUCk kgGQfVNpIsuNKszIbGi1MJuOf5WPz7GbY10RWRz+Mg/cKMNny3EJHuA3b0gVQdpPHFBA F4gR/7wrQVUm/jxy2IkLfqd5eupEBCKFBked+Ep7osbijjv7UwDzhU0Wj8U2ixIaKFAB owiKC5esYv787HnkNWHrquvQyofyTCKmQY5zWNe1sf847jhvSP2cSH7Fq2RkXXc7SsoA r4NntTwjZvo6tjkUDEgF2fR11pguZeKKF+5R9OfO/QJuWLsJATEORb8lpbEiGCT4KCqJ mVNA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=uzzDW153XWuW1ardjMV9zeGZOVpXzmIOyx9Hfvg6Pok=; fh=8YdFO6zjR+eqfzMi0DqCspkZA88UebC3pETRRIIt+go=; b=eXbtt3vs7zNQi8TY7q6OupZ2k5jolWRIbONZC7rkJKeizX+IOCdjDmIR/MlhRdGJK4 DlcsE4N0avPDvHn5NoFkouzFW+eI5i0QcXiREauPZTUGDXsoKWB0N/Nk5k5H/wno6/Kh ci5Q+uQvR+qhdMoz0Gyo4Dn2TAOOsCGS9R4uJxg16lo+dbD4PkELBCeKpZuPYc502jho ACBdvfd9L02+oG4ePrr1G9YRpCcn3QI11P4LcJsT9eJkDkZRJcpF8dIcCcL4EvSoEM+U +cX/XcfsZH6hsXSwg/LubcRAk7jMYaY6XSvPbNvsjN1VfdO/4OnWWlPuftxH1wA+2LoW qwYA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=HTueYVZK; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of andrey.drobyshev@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=andrey.drobyshev@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c200::3]) by mx.google.com with ESMTPS id 00721157ae682-8b163f3c13esi2941927b3.204.2026.10.23.09.54.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Oct 2026 09:54:31 -0700 (PDT) Received-SPF: pass (google.com: domain of andrey.drobyshev@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) client-ip=2a01:111:f403:c200::3; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=HTueYVZK; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of andrey.drobyshev@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=andrey.drobyshev@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bdoRZMebJYmq/WiqKHecB381HMFIWRon72yxEMy79AikbfeOAy58t6cknB4MztZDhQjy4Riy8nJYH+oPaTc1xN7/gYaFSOXDAUeF7gnbaLf9IdRG36FWret1Jgly9g2rRb9HXxGq9db+/4bM0qMqtWepr9NPSb82pG4QucMEuwUXNocTvf4OzeijQM3PEmvJt3Otzs0WOfvTzKYb7dB7fN00z2FKgncqw2TWN1MQUbNVGe1N6WejQcE3Vjz8KMszQuiO6so4vRWuoZanXkuKicdLP4BUHpXQBtnsamjOeHslkc3CNnhlvJAm0S5JUi/PKrmxSaa1dvcZljJWVT2TBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uzzDW153XWuW1ardjMV9zeGZOVpXzmIOyx9Hfvg6Pok=; b=TrKR6Z+NbryW3FqXPTOz0l46cifGyl5KcexfoIYN6A68U5n7VSQ4TKM3Xv40ezkBZ5+EFfqnNhuc4d93U4fcD4EQJLWx+FLEdbesOGE6ucxcusUotKzQdyvrSy0D205VX0eh+a7BQ0nSSJ1S2DaDP88BLI2YXZzC4DROgPgzKf9QTRnNVZwzCb7Es59S4sGLEFncY04UBprFMuYiHPuA8iUyvI8w2NkRs3mmFIACaldxjglfC5Xp/v+d2UqC2ckvFeXKduAzNxn5arzhoxwcSi0sGsz1il4WBlvtKIigy7KUwLOF8UDGjmeVUD316+pT4qwksczkml1EzIuUjOQ+ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uzzDW153XWuW1ardjMV9zeGZOVpXzmIOyx9Hfvg6Pok=; b=HTueYVZKjxi59ANhsj3pU4ZxEB1KXf9xNEQ4LCXba5YYjUbaQxL/GiXwtWDEol07f4P1IM8fMgHl4Rg10qdsWborXniW2huHf2EaUVdZYbltpetLJ1Jh/1GQKG1VuTUo04Qw/fQgF39SbCd8M8HFke06LqzKnzI5bX7G8ndQC00Ixc6RZjYTh8YN3t6ETb+3x4FwDDsaKBBpc2C1o576kcCOFsvCYznol+Qu0gnN2engwT2z2T9FwGXNVMPSPakxg0lye812Y3g30Hhp96iQ9nwQRkYqrRqNGk2m3kk066YGFlKQs7yR0zaSxO4Z57J3szb9nuUSgv3CXYbRkCYJ4Q== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by AS2PR08MB8671.eurprd08.prod.outlook.com (2603:10a6:20b:55e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.19; Fri, 23 Oct 2026 16:54:28 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0546.017; Fri, 23 Oct 2026 16:54:28 +0000 From: Andrey Drobyshev To: devel@openvz.org Date: Fri, 23 Oct 2026 19:53:42 +0300 Message-ID: <20261023165343.503945-5-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20261023165343.503945-1-andrey.drobyshev@virtuozzo.com> References: <20261023165343.503945-1-andrey.drobyshev@virtuozzo.com> X-ClientProxiedBy: VI1PR04CA0082.eurprd04.prod.outlook.com (2603:10a6:803:64::17) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|AS2PR08MB8671:EE_ X-MS-Office365-Filtering-Correlation-Id: b8ace501-1ec9-4a20-8479-08df312646b9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|23010399003|376014|52116014|1800799024|10067099003|22082099003|18002099003|38350700014|261009223027099003|261022105027099003|261022075727099003|261021121427099003|261021123027099003|56012099006; X-Microsoft-Antispam-Message-Info: ipUiSf6vIM+SbX6dOaIUYWdn6wAY9qd3+wr5xs9Hln8JhHAPSpreNb2GgSZlQwGWE68HqNtfJa1gzRA/5U9Mu99cQJ5KkfjRCeuC2lpYdV9jO3rH5/swuISoI8SchwD0X+dflzbjIo5bDiQBMdXTOxh4h3k6fr171DtkZJ4DPSDr1C33P7rvrybQdhzfhwmUiZNjvCXJmQi8DcRljr1hUWHL3dqbKNm4MlJ5RHByxZNXIuMnqdLmS46XJBT01XfV96JUbsGYjDEG38B+UD6u2xlU0sfUa4SlYZTsWlWu4VrUduHySlaUKUKSpZ2rhLsmto2cUf6SC9/Sf//i1yOGGtqSKwNLKkjMd9Nh4gNNfPZTKlTdJMaWIEVKQTs76GQMO7/iFy9v9rsuwmcvgAD74QRJelVXD9DMAmUJoDvqXMkbJB6xzcaYPVJo9Xwo7kGexXUTfm7h4v+KOf4z3t1Ug1lTgd6gQPUoEMo8z4lBopsKgqzZnePAMscuUlnqSXVWABjpE89hpUcUMgGgF8J8EaaOjD5L0UrjfZjnrT9CjnIxjVImdU6tFQBsjb8TM5y6jYkN4EbWq3h0A+jLxc1lFFd9l5M6SmygxOJcOxf64kfRxp8dDV1cCktam2NCrRVg4rFFToYJrCe1MR3zCu98dRwTMNGV+TmaKQy/NCq46SM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI0PR08MB10656.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(23010399003)(376014)(52116014)(1800799024)(10067099003)(22082099003)(18002099003)(38350700014)(261009223027099003)(261022105027099003)(261022075727099003)(261021121427099003)(261021123027099003)(56012099006); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dH1p0jjKMyovin+iexMntTEvZ+yLeNS4je6j4+y4UTfi0+Nyl9H/Wwj2q2rj?= =?us-ascii?Q?SXWeSsmwQZptiLk0RO4ZNLCm/lXTYzcyqXCMhRvnrGvE1e7SeyFqKOBmTHMy?= =?us-ascii?Q?2O2Zg8ZKb9mSd8bWbGItx5Gd5PQSDkz9iFeb9hX7QYQTbJVMh3oF+3eKWNwL?= =?us-ascii?Q?8UsPDi6NkS3kIy7O0Gy6qAUOkNl+RIjeyyWCkxwhkvqb4rboLxDC0CimZ1Ns?= =?us-ascii?Q?uc0VDy9Bpz39bPuBhfZ6S36iy1TBxrgs17/4rRcckh9VY0YlZKi6y4hitEQW?= =?us-ascii?Q?ojSSnosDHxtxuvaWyHuCIKX3fGSps3+BGdXL7IfeN1F3pYDFdXX0QcTsyv8N?= =?us-ascii?Q?qRZ5fLZ8al+ISYy9aHaEcCP3ZjZSXwephRyZlJ1ixG7o7no7MpzlTeb7q4lL?= =?us-ascii?Q?TtQdYth07OouipLz2TY64/+2UNisCLau3tSY4qCUmIlU6EXM35VTEGUS5ruc?= =?us-ascii?Q?URcxIhUWUyg/aS5JNpT8r+3JsPbURLgqAScz84EAvOzOmK2KtaCZLP4M7J/0?= =?us-ascii?Q?Fo6LzrXvZX6+QMzMn4OLBmnlw55idMSXUH0f5d9nAse8UmbGDNqJ1UBF7ZnD?= =?us-ascii?Q?TehjLGJC0N/oyp1TcAPadBTKpxlfBL1pnAzEXhHBfwPfOQbNOCgEGf1T2m1V?= =?us-ascii?Q?vfla2qNhN9GkkEQifCeSkqa2tFyTWrzao9cj6ztukVUGdLG4x2F8rvoX8Ypi?= =?us-ascii?Q?S8aF+sLwTEriRzmutZCMz0t/5I/JcjSM8+kFMClC3pim9bxI/IJMhzqd0V+N?= =?us-ascii?Q?y0sjzd2sQ03wfJ+8Yfqb4OdooxicrhM0mXgIP8qAZkSvPyKOmy9rKtAqa6A8?= =?us-ascii?Q?BTUOb56GEcajwpM//K/BgDtfdHfs2hVfeCssEJDGJ98JRQoKIrSoH9JtKeht?= =?us-ascii?Q?phyXdf65Hs6R0/9ZF0FbVggUaVzcDE+F3YnzHcSc9YlWfWO7dyEqJZbsMRY0?= =?us-ascii?Q?XklNEYiaP4sw4XIDVq36Vh9jDqPJAcNsaILtrejeSyhrV72v+Tc8FjQ943Ex?= =?us-ascii?Q?JpsWRl94Pn3AjG1LOMW1j4NFZYjAdoCm4N7Hl2jcRx43vC+1TWjubOfZ8y3O?= =?us-ascii?Q?5ke0BBNCNzbpLv2gPpiqDeDIVeF2DXYip0R/frvNv8xk9BPckKCmQKSNN0Hr?= =?us-ascii?Q?ThYtUjD/owbNc4T9eSyMku61gWK+PGX5/12JXYaN9VzRaUs4PdTk+ahqU+XJ?= =?us-ascii?Q?wuCDfShnxLSg4cWCbNVLbAUcj8dtyOYtU2q7uJ4zkGXktPfs37ORjjsQFKQ7?= =?us-ascii?Q?YypPUudEYBEyldp++ki/HHZZmrtzo1LV62uNlpKHCkFbdOVkBzrDCFzH2D0O?= =?us-ascii?Q?K7n15H+OELzN/9Z9V255OhKmUUmHdhUX2i9uLqSsOCHuBhZeAbhJfIJRoXat?= =?us-ascii?Q?JToFhHvHvrtMeLqDmD7ecQX1T76bSEPnxhvTMEuaIJjVbEPXuQ6LQ8mrruWo?= =?us-ascii?Q?kK+ct/ZhhD5l8239WaPraLFfrUDyiycLVwKVxvwgo/ImaNKiRQuhYwwD6/2O?= =?us-ascii?Q?21EB0PwE7Zc2NO1xHP92j0V9/aI1EP7Pj6+epSB7TXleZIpIvmE+q/p1fjYc?= =?us-ascii?Q?twf8a2Fsyxf1ORkc7UpuXynYmNpYoXCy3U1bU35gpWrhE+C8q9dcla7E2X3o?= =?us-ascii?Q?beMNlAphYpkeXJ5WekENCXSDhE2yKzC1MN8beNwwv5+4exOehSykdtwdoMcE?= =?us-ascii?Q?PyXusbW1oICcmANyAyP7So52KIj1Oi60JnCL0bcE9L5AUQFMC/LeqswCDlcn?= =?us-ascii?Q?USrIsDqzJaURj++BiWh+J/tHtVo33bg=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8ace501-1ec9-4a20-8479-08df312646b9 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2026 16:54:17.6810 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2jWvqj0rLxWycEmBI3FxuMzF+BJELJbcYTXXGUtHb88gp9rfoqymOERCv9jOJqQkupZBh6h4kgwIqBHs0kd4eAsRIl2gbqB1Ck68Ie4uOeo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8671 X-OZ-Fwd: true Subject: [Devel] [PATCH hci-8.1 4/5] Revert "vfio/type1: exclude mdevs from VFIO_UPDATE_VADDR" X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org From: Anthony Yznaga This reverts commit ef3a3f6a294ba65fd906a291553935881796f8a5. This re-enables support for using VFIO_UPDATE_VADDR with vfio mediated devices which is needed to fully support Live Update. Orabug: 35370252 Signed-off-by: Anthony Yznaga Reviewed-by: Steve Sistare https://virtuozzo.atlassian.net/browse/VSTOR-150595 (cherry picked from commit 24e5a96e6a4ac34b09d45687c38e9d2aa8cea4ac) --- drivers/vfio/vfio_iommu_type1.c | 44 ++------------------------------- include/uapi/linux/vfio.h | 15 +++++------ 2 files changed, 8 insertions(+), 51 deletions(-) diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 6193ff966667..89132d3c037e 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -979,12 +979,6 @@ static int vfio_iommu_type1_pin_pages(void *iommu_data, mutex_lock(&iommu->lock); - if (WARN_ONCE(iommu->vaddr_invalid_count, - "vfio_pin_pages not allowed with VFIO_UPDATE_VADDR\n")) { - ret = -EBUSY; - goto pin_done; - } - /* * Wait for all necessary vaddr's to be valid so they can be used in * the main loop without dropping the lock, to avoid racing vs unmap. @@ -1483,12 +1477,6 @@ static int vfio_dma_do_unmap(struct vfio_iommu *iommu, mutex_lock(&iommu->lock); - /* Cannot update vaddr if mdev is present. */ - if (invalidate_vaddr && !list_empty(&iommu->emulated_iommu_groups)) { - ret = -EBUSY; - goto unlock; - } - if (iova != unmap->iova || size != unmap->size) { ret = -EOVERFLOW; goto unlock; @@ -2327,16 +2315,11 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, struct iommu_domain_geometry *geo; LIST_HEAD(iova_copy); LIST_HEAD(group_resv_regions); - int ret = -EBUSY; + int ret = -EINVAL; mutex_lock(&iommu->lock); - /* Attach could require pinning, so disallow while vaddr is invalid. */ - if (iommu->vaddr_invalid_count) - goto out_unlock; - /* Check for duplicates */ - ret = -EINVAL; if (vfio_iommu_find_iommu_group(iommu, iommu_group)) goto out_unlock; @@ -2795,16 +2778,6 @@ static int vfio_domains_have_enforce_cache_coherency(struct vfio_iommu *iommu) return ret; } -static bool vfio_iommu_has_emulated(struct vfio_iommu *iommu) -{ - bool ret; - - mutex_lock(&iommu->lock); - ret = !list_empty(&iommu->emulated_iommu_groups); - mutex_unlock(&iommu->lock); - return ret; -} - static int vfio_iommu_type1_check_extension(struct vfio_iommu *iommu, unsigned long arg) { @@ -2812,13 +2785,8 @@ static int vfio_iommu_type1_check_extension(struct vfio_iommu *iommu, case VFIO_TYPE1_IOMMU: case VFIO_TYPE1v2_IOMMU: case VFIO_UNMAP_ALL: - return 1; case VFIO_UPDATE_VADDR: - /* - * Disable this feature if mdevs are present. They cannot - * safely pin/unpin/rw while vaddrs are being updated. - */ - return iommu && !vfio_iommu_has_emulated(iommu); + return 1; case VFIO_DMA_CC_IOMMU: if (!iommu) return 0; @@ -3289,13 +3257,6 @@ static int vfio_iommu_type1_dma_rw(void *iommu_data, dma_addr_t user_iova, size_t done; mutex_lock(&iommu->lock); - - if (WARN_ONCE(iommu->vaddr_invalid_count, - "vfio_dma_rw not allowed with VFIO_UPDATE_VADDR\n")) { - ret = -EBUSY; - goto out; - } - while (count > 0) { ret = vfio_iommu_type1_dma_rw_chunk(iommu, user_iova, data, count, write, &done); @@ -3307,7 +3268,6 @@ static int vfio_iommu_type1_dma_rw(void *iommu_data, dma_addr_t user_iova, user_iova += done; } -out: mutex_unlock(&iommu->lock); return ret; } diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index ac2329f24141..de95371c179a 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -50,11 +50,7 @@ /* Supports VFIO_DMA_UNMAP_FLAG_ALL */ #define VFIO_UNMAP_ALL 9 -/* - * Supports the vaddr flag for DMA map and unmap. Not supported for mediated - * devices, so this capability is subject to change as groups are added or - * removed. - */ +/* Supports the vaddr flag for DMA map and unmap */ #define VFIO_UPDATE_VADDR 10 /* @@ -1594,7 +1590,8 @@ struct vfio_iommu_type1_info_dma_avail { * Map process virtual addresses to IO virtual addresses using the * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required. * - * If flags & VFIO_DMA_MAP_FLAG_VADDR, update the base vaddr for iova. The vaddr + * If flags & VFIO_DMA_MAP_FLAG_VADDR, update the base vaddr for iova, and + * unblock translation of host virtual addresses in the iova range. The vaddr * must have previously been invalidated with VFIO_DMA_UNMAP_FLAG_VADDR. To * maintain memory consistency within the user application, the updated vaddr * must address the same memory object as originally mapped. Failure to do so @@ -1645,9 +1642,9 @@ struct vfio_bitmap { * must be 0. This cannot be combined with the get-dirty-bitmap flag. * * If flags & VFIO_DMA_UNMAP_FLAG_VADDR, do not unmap, but invalidate host - * virtual addresses in the iova range. DMA to already-mapped pages continues. - * Groups may not be added to the container while any addresses are invalid. - * This cannot be combined with the get-dirty-bitmap flag. + * virtual addresses in the iova range. Tasks that attempt to translate an + * iova's vaddr will block. DMA to already-mapped pages continues. This + * cannot be combined with the get-dirty-bitmap flag. */ struct vfio_iommu_type1_dma_unmap { __u32 argsz; -- 2.47.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel