From nobody Tue Jun 16 01:19:45 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011047.outbound.protection.outlook.com [52.101.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05CE330F95C; Tue, 14 Apr 2026 20:07:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197238; cv=fail; b=K747FNOTGhGmhLzwRbscjro63yfugOYCrkV/3ecKZvgHdIuJT9oLVN/6paxirungGtZBs4l2YN27GFYW6ujyjIXTvq734JbaVKFvGGhLdhSrM1MFT70gGE8Bil6HSKKK6a1elYTTuLhiFF6DX6zGg6T+D/ElSiMrBwHtt4WmRcA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197238; c=relaxed/simple; bh=ljpZU/CK9sboKlMlKGHF9AomEaRKft/mIS5wqbelFGM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KZvs8h56QlQ03iPSzMqSyCViQZ+0Ay+LRRqfDxOgwCAwV2h0/HX+RyaqELOqSeo07YziFJcAot3tfvDpZHZPFRTGjeHnjBPPTEEWiRqVLl/IZ3L44PJDlEEj/LvRqlHj1YMvr+ITvSyeHO1q8xwBu3POxjsrgJBKahyyASdHQBw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=liH+kxrb; arc=fail smtp.client-ip=52.101.57.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="liH+kxrb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VkgDla0HIW8zhcZKBFmWxXgkcivL1EG1BjLERMHvnxH+uBTVSChNmHk9KvsrFJHBxjduhoHU+uPielBYvnNyruqqvLWgE50HF7TWCO5BAy4MITrhIJ1rOEG2K6w7iNbtVN6kvbZLebHrValbwVsdkIrPPlgPGudHcXQ+pDUNkUAJUENnfNO64UipeAmlYYRx9g2w2AbBL0lD+sEQy5Vy3ZakqU8aY3K3jltMfaaX6/d8Z7eq+oKIftGU3ZdiRuG9HHNX24I0Uyq3l+I8nQIq8cX14b9WhTzc4YdR/GO12rISo5f4IQ5ttbRy8RAtqYihkRbovcD73GABoUK3iym2bA== 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=HyTJZIsKPO12rF4bk5+bPbV2jQwsUCZje4ri+d7wr8k=; b=QFVSzUjeHujq59fpRX5iWFrCZEobSEph+UO5pbLQXUTiCh9yLK+8xMFxeKhetROwQQtcqq19p/1hMdGeZIPLam55OfuJkjTob3xSlS9/YUKrFpP4jc/i+QvaP2XyCSSL+kkvdx6rlls9XE3uF4FH6cqrB4EybXmLJwu0SDphxu9gl/xOIwvsldq2pmfVkcXzTng5qeZGIjSec6lp9TUS4TU6HyUcN9c6nV5rfm3HrGA2Bi7Up2O3wYmBKeVT4ZIrSJBN7Y/exloozonLLFYKX8B5l1O/Jd7XKvRUBTwpKr53pRbZ1aNb5fSrwA8vWRgwt0jaZUX6oXBU6Fmn7Y05QA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=shazbot.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HyTJZIsKPO12rF4bk5+bPbV2jQwsUCZje4ri+d7wr8k=; b=liH+kxrbeb0DKFOYDvkSzY/IQ1v0wWAOUhk+IpDjgftVQ1Nz+0vkpaLxcYpBOSeWaP7qmgO44uzp0fxn2beh0U9rdS1HYxFvdTdV3lvN7EwkdwfiqFf73GfB1e1/3rVWuYQma2Kepjv4cTZXp2fIXohVv+m8SLTtxvgKns09TBR4AvoE2lWOaIJ5dyWt+aL+a5UdF8goXnZmcpBZjpGCTLOdZ+e7swhLj+ZTIVbhpfer2j7sjVfpGOSIU7XhCtLDUrg6NUZGE8GlhMyCrV3NJ/ln//xf6HexhgsKu11y72bOCG/lQZYO+wu7xQc3LHz8klswVD1LRfCDti6CY3tnaw== Received: from BLAPR03CA0003.namprd03.prod.outlook.com (2603:10b6:208:32b::8) by CH3PR12MB9730.namprd12.prod.outlook.com (2603:10b6:610:253::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.20; Tue, 14 Apr 2026 20:07:12 +0000 Received: from BL6PEPF0001AB59.namprd02.prod.outlook.com (2603:10b6:208:32b:cafe::8c) by BLAPR03CA0003.outlook.office365.com (2603:10b6:208:32b::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.49 via Frontend Transport; Tue, 14 Apr 2026 20:07:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL6PEPF0001AB59.mail.protection.outlook.com (10.167.241.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Tue, 14 Apr 2026 20:07:11 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:49 -0700 Received: from meforce.lab.shazbot.org (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:48 -0700 From: Alex Williamson To: CC: Alex Williamson , , , , , , Subject: [PATCH 1/4] vfio/virtio: Convert list_lock from spinlock to mutex Date: Tue, 14 Apr 2026 14:06:19 -0600 Message-ID: <20260414200625.3601509-2-alex.williamson@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260414200625.3601509-1-alex.williamson@nvidia.com> References: <20260414200625.3601509-1-alex.williamson@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB59:EE_|CH3PR12MB9730:EE_ X-MS-Office365-Filtering-Correlation-Id: 3408f2ba-227d-45e3-a803-08de9a616a64 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|13003099007|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: zKZD6t+Ktt+L3SpW4//t+A/aBKlCpqQcZmGS7VDNF42pC5f7Gn7bkqoRz9cEn/onRwZbDScT61ri7o5GG9IqrtfXFHjEwJM13qJN55mLInPQe+hg5CAffPGbrmV0kot2+wx/O69UBiojY1Bkf2fzshzh9DfLi4PswKXXRZDo4AE7f+In63DirqkaccASR0bxChyJwS0datg4zf6C/6dZepZlFifqzaOtqrSEjqpeZkW7H2go4D/wsusBn7Vvm2jg2be96IuJQWG/LwA4sYTNUoH3671+8246rQlJsxSZT2AoDP4c1LHDNrOT15w65ziKABm0bxVYkTNY4zOvjohUa2gUYjWwGiP1m+Ku+lsx/MtCldARaLcz9QsvFKtSdquHqu3QU4nVhsUixzozL4TLomFa1aB/5O0d2xM82QNo8xJb+MUUUKE92yHHCXDd9Uu5DFQSYuPmKKT32vWavZCgpjat0X6W175J9mop+En1z4bgBvGabMzbW1MN3FnidcFu7Crm72OXJr+NYmGbdDKI+7dxHK4fI0hbFTa30kiSZxm1nbHyI1QbmK/WZW+Rt+ZdpxaNWug066xFEPKjjaD/2VZz0p9+7yIury2NXxaP/nrzJc8heGUyC2jtkhwETTPkGdR/oQTiwIJhQQ+581aH9ExIhAQDI+8URqEF8YVNMPlv/tlL8pcrd/yfm4k6m7nfW3JsTfWXU2VldmUUDxdyocoJKlmMScZIUWlhTwHeXRs22UBGGWRcbhBB4IOsnLm39/Sn89vuNw5FF14DGuCTiA== X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700016)(1800799024)(13003099007)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PqJcILTR8/1kScY+W0fze3YGh1eac96EER0sNa/QfKdfGAU2fEW48uMI9gHdFcYrXzy3U0DGb8/Qp79C9kV53bAsI5ibBjXFKytf9sW9soPXLLL5WpBssqHxmPoYSMHkPrfpTVuNOl5voJDWSjrEjNfaorqa33QjxmkIYjiWpYWCG56HvN615a1nosbpAg9TM6XFAxRu3ISpGyden0LAGtXvPtV4zTQUG3u5E1IG3MrUBqryzH4y7lE48H0H/zR85v51Lf28y6gXzB0Ojh8wZmqhLzKIIvuSqMje/92m7MWwu6VMRjsQ3pJuvoBgAImNoCfV+S80kK1oVWOYbPNZXvIUslbGsVIMYqJC+jieQKxd7KXJhj8M5+2IUhxURiGdZsk9PammwP6nqMqwmdcR3kJ4WoFaztpatuJcxdT94UsG25bA8SCTyaX4wYVJz53Z X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2026 20:07:11.8790 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3408f2ba-227d-45e3-a803-08de9a616a64 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB59.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9730 Content-Type: text/plain; charset="utf-8" The list_lock spinlock with IRQ disabling was copied from the mlx5 vfio-pci variant driver, where it is justified by a hardirq async command completion callback that accesses the protected lists. The virtio driver has no such interrupt context usage; all list_lock acquisitions occur in process context via file read/write operations or state transitions under state_mutex. Convert list_lock to a mutex to be consistent with peer vfio-pci variant drivers (hisilicon, pds, qat, xe) which all use mutexes for equivalent migration data protection. This also fixes a mismatched spin_lock()/spin_unlock_irq() pair in virtiovf_read_device_context_chunk() that could incorrectly enable interrupts. Reported-by: Jinhui Guo Closes: https://lore.kernel.org/all/20260413073603.30538-1-guojinhui.liam@b= ytedance.com Fixes: 0bbc82e4ec79 ("vfio/virtio: Add support for the basic live migration= functionality") Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-4-6 Signed-off-by: Alex Williamson Reviewed-by: Yishai Hadas --- drivers/vfio/pci/virtio/common.h | 2 +- drivers/vfio/pci/virtio/migrate.c | 33 ++++++++++++++++--------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/vfio/pci/virtio/common.h b/drivers/vfio/pci/virtio/com= mon.h index cb3d5e57d3a3..3ccbd49e6abe 100644 --- a/drivers/vfio/pci/virtio/common.h +++ b/drivers/vfio/pci/virtio/common.h @@ -68,7 +68,7 @@ struct virtiovf_migration_file { enum virtiovf_migf_state state; enum virtiovf_load_state load_state; /* synchronize access to the lists */ - spinlock_t list_lock; + struct mutex list_lock; struct list_head buf_list; struct list_head avail_list; struct virtiovf_data_buffer *buf; diff --git a/drivers/vfio/pci/virtio/migrate.c b/drivers/vfio/pci/virtio/mi= grate.c index 35fa2d6ed611..15fcd936528b 100644 --- a/drivers/vfio/pci/virtio/migrate.c +++ b/drivers/vfio/pci/virtio/migrate.c @@ -142,9 +142,9 @@ virtiovf_alloc_data_buffer(struct virtiovf_migration_fi= le *migf, size_t length) =20 static void virtiovf_put_data_buffer(struct virtiovf_data_buffer *buf) { - spin_lock_irq(&buf->migf->list_lock); + mutex_lock(&buf->migf->list_lock); list_add_tail(&buf->buf_elm, &buf->migf->avail_list); - spin_unlock_irq(&buf->migf->list_lock); + mutex_unlock(&buf->migf->list_lock); } =20 static int @@ -170,21 +170,21 @@ virtiovf_get_data_buffer(struct virtiovf_migration_fi= le *migf, size_t length) =20 INIT_LIST_HEAD(&free_list); =20 - spin_lock_irq(&migf->list_lock); + mutex_lock(&migf->list_lock); list_for_each_entry_safe(buf, temp_buf, &migf->avail_list, buf_elm) { list_del_init(&buf->buf_elm); if (buf->allocated_length >=3D length) { - spin_unlock_irq(&migf->list_lock); + mutex_unlock(&migf->list_lock); goto found; } /* * Prevent holding redundant buffers. Put in a free - * list and call at the end not under the spin lock + * list and call at the end not under the mutex * (&migf->list_lock) to minimize its scope usage. */ list_add(&buf->buf_elm, &free_list); } - spin_unlock_irq(&migf->list_lock); + mutex_unlock(&migf->list_lock); buf =3D virtiovf_alloc_data_buffer(migf, length); =20 found: @@ -295,6 +295,7 @@ static int virtiovf_release_file(struct inode *inode, s= truct file *filp) struct virtiovf_migration_file *migf =3D filp->private_data; =20 virtiovf_disable_fd(migf); + mutex_destroy(&migf->list_lock); mutex_destroy(&migf->lock); kfree(migf); return 0; @@ -308,7 +309,7 @@ virtiovf_get_data_buff_from_pos(struct virtiovf_migrati= on_file *migf, bool found =3D false; =20 *end_of_data =3D false; - spin_lock_irq(&migf->list_lock); + mutex_lock(&migf->list_lock); if (list_empty(&migf->buf_list)) { *end_of_data =3D true; goto end; @@ -329,7 +330,7 @@ virtiovf_get_data_buff_from_pos(struct virtiovf_migrati= on_file *migf, migf->state =3D VIRTIOVF_MIGF_STATE_ERROR; =20 end: - spin_unlock_irq(&migf->list_lock); + mutex_unlock(&migf->list_lock); return found ? buf : NULL; } =20 @@ -369,10 +370,10 @@ static ssize_t virtiovf_buf_read(struct virtiovf_data= _buffer *vhca_buf, } =20 if (*pos >=3D vhca_buf->start_pos + vhca_buf->length) { - spin_lock_irq(&vhca_buf->migf->list_lock); + mutex_lock(&vhca_buf->migf->list_lock); list_del_init(&vhca_buf->buf_elm); list_add_tail(&vhca_buf->buf_elm, &vhca_buf->migf->avail_list); - spin_unlock_irq(&vhca_buf->migf->list_lock); + mutex_unlock(&vhca_buf->migf->list_lock); } =20 return done; @@ -554,9 +555,9 @@ virtiovf_add_buf_header(struct virtiovf_data_buffer *he= ader_buf, header_buf->length =3D sizeof(header); header_buf->start_pos =3D header_buf->migf->max_pos; migf->max_pos +=3D header_buf->length; - spin_lock_irq(&migf->list_lock); + mutex_lock(&migf->list_lock); list_add_tail(&header_buf->buf_elm, &migf->buf_list); - spin_unlock_irq(&migf->list_lock); + mutex_unlock(&migf->list_lock); return 0; } =20 @@ -621,9 +622,9 @@ virtiovf_read_device_context_chunk(struct virtiovf_migr= ation_file *migf, =20 buf->start_pos =3D buf->migf->max_pos; migf->max_pos +=3D buf->length; - spin_lock(&migf->list_lock); + mutex_lock(&migf->list_lock); list_add_tail(&buf->buf_elm, &migf->buf_list); - spin_unlock_irq(&migf->list_lock); + mutex_unlock(&migf->list_lock); return 0; =20 out_header: @@ -692,7 +693,7 @@ virtiovf_pci_save_device_data(struct virtiovf_pci_core_= device *virtvdev, mutex_init(&migf->lock); INIT_LIST_HEAD(&migf->buf_list); INIT_LIST_HEAD(&migf->avail_list); - spin_lock_init(&migf->list_lock); + mutex_init(&migf->list_lock); migf->virtvdev =3D virtvdev; =20 lockdep_assert_held(&virtvdev->state_mutex); @@ -1082,7 +1083,7 @@ virtiovf_pci_resume_device_data(struct virtiovf_pci_c= ore_device *virtvdev) mutex_init(&migf->lock); INIT_LIST_HEAD(&migf->buf_list); INIT_LIST_HEAD(&migf->avail_list); - spin_lock_init(&migf->list_lock); + mutex_init(&migf->list_lock); =20 buf =3D virtiovf_alloc_data_buffer(migf, VIRTIOVF_TARGET_INITIAL_BUF_SIZE= ); if (IS_ERR(buf)) { --=20 2.51.0 From nobody Tue Jun 16 01:19:45 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013012.outbound.protection.outlook.com [40.93.196.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FFAD3264C8; Tue, 14 Apr 2026 20:07:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197242; cv=fail; b=bBceimzDXPF5NrM9JnhJ+VrBPjvmani8ADX6q6p/W5z+h9JcUvjNrWhJzWNCxKjg8VCopW+Y6DdtMhf+ep9Y6z1MydUpmmYbRSNr9QRSGK3m7Gdv/5zDipFWdkmql0ULxR8OCC02lgVDNxjlGMuwpdw+H5rmMo7gHHdgg3xm6eo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197242; c=relaxed/simple; bh=USMfXx7Cx5T3ciUTx0Oxe6IgxgKNfjAeKZ4i8YY+GgY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RijlfStMG7O+BYNFeIjWeTzG+eyeNrsb8JvnK6ZDmMOzpD3Po378CPpspqjXJB+S6mZD25hMgqzMFS3uoMKl4f4R8lr7SnpZFpS5e+0GgwHyc71Rux7POePY6A1SmINaccBKLwK947qJjuSkj8u52bagRjoRPEMZI1xSWuskW/o= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=uFDkvYad; arc=fail smtp.client-ip=40.93.196.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="uFDkvYad" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kZZuevFBbclYIZurKbGrC+nXzu+Y4O189UZz8I2Y2IuC7T1CbPumglKzYSrf2Q91ixtcxcRk5K3c3LlMTEek+gqhtLhoywnUmTjMnL7jCAYXCtucC++dkU00wLHYJPpQIFqaLfLUQ6dD4tVq1Vmo4g236TixslmcCgDSYUsHoN5MPiTHvLGRpEkYyfCgOxdSBvfWTyNxrhfNXRDnDyDxaD99MIsg6PxADGD1jVEvFJpeJcLQys029EbEynK294KZISGBWSDeh1vL2sCiRqV787SnPFcPMsbajpoJ3RI1s+j+nJaV0IjXsu0S//vckPGdfqmfeXxJGkleXijK/sHahA== 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=3aiU7l1p7UPNfNz+gSmxFM5wxtXft9Y9MlvgRV/2NmA=; b=zUybK+Om3ht3742tHYqgLuXp/Of5emMdITrl40bxe15fDwSWXCgxIGKirPAURdsvgHlSj2cv9r+nm6Gc4D8VD1ZFqjYnKa/9fueD10xIoEx5VMNwAM6ES8nX4G0Q60k0awfeLEniBB2N44K185GXORLyM4ErZHBsDLWkp0tVqw//0WoMZjZP7PNxQn5yCG4odzGEdn8pACSfsLalZwUZdj8D61CQjDa1bZg34FghwgIZgSem7PJs/Itnxf9esRvhfNDXjuqyVIJP6c5tkqyGakNU2LmpMy9JG5cr0D/CV7Cgim4Ha6BVrqSdoGoDikkLGZAKoPgItnD0muJh8l/laA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=shazbot.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3aiU7l1p7UPNfNz+gSmxFM5wxtXft9Y9MlvgRV/2NmA=; b=uFDkvYadpTUzKscv5kflS+tRJ5UY6ZXkzIddeD3b31UfMcV6nLlJERwrbdUEsA7vfiCQ0MxkUUrxHEBW8+6hW3PFAzuUZ3isw9S/K7/jVOqIH+RJo0Bw2KSovB9y25q9hrqtFZHou9sVI+vwwqFxbQynqWxxAtl1sRjLLE0VGMvY5em1Gfg1RloneMrojZdqvpr/Uutl5a+rxsKQnrzbznFCN4DUOSmn0nHbuxdgjAwdN7ydGVFTjt5TZvyM4TjZueH/aqgjXKA1GhmTG4FTrAZY5Ck1lCuVJQR/yZaBwOg6xoxU9svNrkaBqegfz7Omvlw908g4vYar2rdwvPy0xQ== Received: from MN0P222CA0022.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:531::29) by DS7PR12MB5886.namprd12.prod.outlook.com (2603:10b6:8:79::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9791.35; Tue, 14 Apr 2026 20:07:16 +0000 Received: from BL6PEPF0001AB54.namprd02.prod.outlook.com (2603:10b6:208:531:cafe::6e) by MN0P222CA0022.outlook.office365.com (2603:10b6:208:531::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.50 via Frontend Transport; Tue, 14 Apr 2026 20:07:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL6PEPF0001AB54.mail.protection.outlook.com (10.167.241.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Tue, 14 Apr 2026 20:07:13 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:50 -0700 Received: from meforce.lab.shazbot.org (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:49 -0700 From: Alex Williamson To: CC: Alex Williamson , , , , , Subject: [PATCH 2/4] vfio/virtio: Use guard() for list_lock where applicable Date: Tue, 14 Apr 2026 14:06:20 -0600 Message-ID: <20260414200625.3601509-3-alex.williamson@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260414200625.3601509-1-alex.williamson@nvidia.com> References: <20260414200625.3601509-1-alex.williamson@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB54:EE_|DS7PR12MB5886:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b4ff3c6-f5cb-4002-d44e-08de9a616b81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: HZEamY7jTRcdjdDGtm0F7IW7EduF/D5DzdQiTzM4yruR173+4jgxHKHe/dbPcswO++iboub9UqewJ+3RW48HLdK6ZO4DQBXspWfPHdMJZPr1lxVkMbJWogaX+eECZct03ZWa8ulp0BQfBotqoH+drSvAauxYsph5xM/IjxvHdRF8e7sHlduDfQV9Sm007jAXlP1MGMtviNhvKs2rorl4vgGv6+RK/e6o1PlmZb7uYQA8M02GTeWJMMTH305zIRTBVPCmpq1u7+TsoJzdHbrRPirEU7GUbvTycVk2Ko96AFxBXX3kpkqTso3FOO3gLJ48wlpOmVnIoCOm4xHxI1Y4waEKdmkwrYQ7++VUO44rradv4M5nwrMemBx4+HxS5gWJK2OW2TzUzZzlPA8Ow/gpoYT+7KiA2H930AXIPegc2xVLEM5pYxGm4F8T4kwNjwpQnSRyzmpOzfs/hf3IGTtXDzuag6ZRzdNZZ4SgCAy4Q6z4sd3ELAt6jfFGjoJrkpzisGAlW9BOPfk+EuZLZ2Z3osT1zGK1rxjnRhoVzTgqXIYRtRp2Mxt5a2NUTSz7GuGZBCTMSB+GGldnhwsuLO3WfTAJQKTEhx3M7nxK594mAGx33qFpADpuM3HdEAPCg1HNzai9/8zt+pvnvXs01WLDlqm0e3tEhmUipWFdWanYhvcN6fkWHkNVp0+bcjgQ9SJuIm+NEVU2VtQa1MPGckugyeDLeUuopPhTPHUpao1EAbJREih/gpgVj1JhKRnyGzwzv+/RKJOYQFkUA5kRUidnjQ== X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: eCyEDX7szvJO5oghhMn2tk5KFebFyyVWebg7/HEvaVOQj8eYzTD0Sf4KAlDBwDSpK7Ums9HZ+C/U1lxZJV5eLXOjBhDACwt/g4Vch56ZdiYNvWhP4jnMgiVHGGVVvy7ZUG2lkEHa4SSu0vDglKJstnLsG101rAxXQOzB5y4IQLwexqVQxCbVR1TTQj/ztmBeOKSEuywzMddgVXzaMhzzIZXYYyMQNRIQuPHZa868JxXLhSmoqX+XysKl5hx4KYnAT8XWzHf27NepX2pHyR8o4btE13u47pwCOZ+UCK849JL/BOArNZ9z4zk+2R0Co25rIMWX3j3kDFq6lvvf7bvVEWE9IVH+O9VQR6YP6qXJzyU488ncaLKyXVNfr2Q0SzuyEQciMzJ8rpJVspgRMU14dFwGQ8jxcf2TRt+p/2XI83lfXKEteSHmvgHa1dEbHJyJ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2026 20:07:13.7565 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4b4ff3c6-f5cb-4002-d44e-08de9a616b81 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB54.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5886 Content-Type: text/plain; charset="utf-8" Convert list_lock mutex acquisitions to use guard() and scoped_guard() where the lock scope aligns with the function or block scope. This simplifies virtiovf_get_data_buff_from_pos() by replacing goto-based unwinding with direct returns. Assisted-by: Claude:claude-opus-4-6 Signed-off-by: Alex Williamson Reviewed-by: Yishai Hadas --- drivers/vfio/pci/virtio/migrate.c | 37 +++++++++++++------------------ 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/drivers/vfio/pci/virtio/migrate.c b/drivers/vfio/pci/virtio/mi= grate.c index 15fcd936528b..058d359c9b5a 100644 --- a/drivers/vfio/pci/virtio/migrate.c +++ b/drivers/vfio/pci/virtio/migrate.c @@ -142,9 +142,8 @@ virtiovf_alloc_data_buffer(struct virtiovf_migration_fi= le *migf, size_t length) =20 static void virtiovf_put_data_buffer(struct virtiovf_data_buffer *buf) { - mutex_lock(&buf->migf->list_lock); + guard(mutex)(&buf->migf->list_lock); list_add_tail(&buf->buf_elm, &buf->migf->avail_list); - mutex_unlock(&buf->migf->list_lock); } =20 static int @@ -306,32 +305,27 @@ virtiovf_get_data_buff_from_pos(struct virtiovf_migra= tion_file *migf, loff_t pos, bool *end_of_data) { struct virtiovf_data_buffer *buf; - bool found =3D false; =20 *end_of_data =3D false; - mutex_lock(&migf->list_lock); + guard(mutex)(&migf->list_lock); + if (list_empty(&migf->buf_list)) { *end_of_data =3D true; - goto end; + return NULL; } =20 buf =3D list_first_entry(&migf->buf_list, struct virtiovf_data_buffer, buf_elm); if (pos >=3D buf->start_pos && - pos < buf->start_pos + buf->length) { - found =3D true; - goto end; - } + pos < buf->start_pos + buf->length) + return buf; =20 /* * As we use a stream based FD we may expect having the data always * on first chunk */ migf->state =3D VIRTIOVF_MIGF_STATE_ERROR; - -end: - mutex_unlock(&migf->list_lock); - return found ? buf : NULL; + return NULL; } =20 static ssize_t virtiovf_buf_read(struct virtiovf_data_buffer *vhca_buf, @@ -370,10 +364,9 @@ static ssize_t virtiovf_buf_read(struct virtiovf_data_= buffer *vhca_buf, } =20 if (*pos >=3D vhca_buf->start_pos + vhca_buf->length) { - mutex_lock(&vhca_buf->migf->list_lock); + guard(mutex)(&vhca_buf->migf->list_lock); list_del_init(&vhca_buf->buf_elm); list_add_tail(&vhca_buf->buf_elm, &vhca_buf->migf->avail_list); - mutex_unlock(&vhca_buf->migf->list_lock); } =20 return done; @@ -555,9 +548,10 @@ virtiovf_add_buf_header(struct virtiovf_data_buffer *h= eader_buf, header_buf->length =3D sizeof(header); header_buf->start_pos =3D header_buf->migf->max_pos; migf->max_pos +=3D header_buf->length; - mutex_lock(&migf->list_lock); - list_add_tail(&header_buf->buf_elm, &migf->buf_list); - mutex_unlock(&migf->list_lock); + + scoped_guard(mutex, &migf->list_lock) + list_add_tail(&header_buf->buf_elm, &migf->buf_list); + return 0; } =20 @@ -622,9 +616,10 @@ virtiovf_read_device_context_chunk(struct virtiovf_mig= ration_file *migf, =20 buf->start_pos =3D buf->migf->max_pos; migf->max_pos +=3D buf->length; - mutex_lock(&migf->list_lock); - list_add_tail(&buf->buf_elm, &migf->buf_list); - mutex_unlock(&migf->list_lock); + + scoped_guard(mutex, &migf->list_lock) + list_add_tail(&buf->buf_elm, &migf->buf_list); + return 0; =20 out_header: --=20 2.51.0 From nobody Tue Jun 16 01:19:45 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010066.outbound.protection.outlook.com [52.101.193.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E5F0324B22; Tue, 14 Apr 2026 20:07:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197241; cv=fail; b=LFSwcVvUzvyLoyyaYsxTti9K29+dONrZwGI5Hxh5TvmXSX2YdB0TirAOERuUiv64QeEp+6mAXaQp4pdy29bctFTjK0C8u21Vky34t79MJ6NaMC23JeCai+ALtT1jKzpXbELaKRkuY2JOglkqE1a6gUtFsoS/I8YggC1EewSSfPo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197241; c=relaxed/simple; bh=wnS9zkibxFXdPQZ4EXhXd9Kd4dYryCn1VpwuK5NltP0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=so6woxYQVYg0rKVbEA3yyA2zlBXqflz/PiodLvIpUrSKZw5JzIc0hSqIYVbX389Cl7pgO20MpWE8EjZLd0gsKgo1NnKf2+tO+HhetxuVUUQpmK1OmyZ9hTE5QAw3NF4Rp8WD+msk5LZKBy2Ximq/AAPLb21j8IF/avZqDp3htTE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Opl2503B; arc=fail smtp.client-ip=52.101.193.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Opl2503B" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ctuNB3n987gIpnKK4Khl91tI0+kpvpf2Pkj/a2lF6GFWOdKh5wmbEwkHjpAAKCjz/mUHTInRV8Y/wgO/gUHQbdhgSPrtAz1nZxVFYOsTbRE7D5sHpYcQb0RIeCjR+RUFhglvh7rVcBAyEjnaPoJIZoqafAEhnYtPGS7EGQfCM7x21yq6DeOBEfNUWRT0GSQEzK1Fwz6NbKQk1weSlQMmRahHUC0sbFKz1KpP+BWChL3VI4Ic2nGhu34LRSexwlDke6V38wrskQBNR0I/d6CESuPlenp899117TddOVRTbhxeg48U0+gUKqRk6wGw04KYiEDTRqmiZjNd6uwJc8m6Rg== 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=Xp/OXiZS6acLWIwhxMq7w8ztwgfy+DD+rF8EdXrCjX4=; b=UZVu8+8gymwR0UrIsVeDqAPw4/0TrhvPkCbFcb92RrvzctGLkrcWEeiaJlXaBs/TS5jKxbw0LAbv1974I5/WE1GldYiqVTdKWd7LhKrM+TPRDuNy3/S+ViE/vKvcFR5x9H+vm51cjuAVSfXpPYa6tpovcmiWxSHopGoRECDMswvrIGo0T9/fBVrzI0H8uC0tRYlxILMGPNF23TRUziC3HNUeG11rgpilqMGXtYuN+OTczJ0q/NLo1nd3WryHtL65Kcv5WtRly3PKkBlQVUZB/WCPlImAZQenTMKGV63tTWNgE/LszJ642yI5F0NiPv36ijiayXnVsUUUrHq0UzSRSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=shazbot.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xp/OXiZS6acLWIwhxMq7w8ztwgfy+DD+rF8EdXrCjX4=; b=Opl2503B6X2d8/8F355NbU8CrmhbSOx+hP0V6DE5KmDfmszXlOrxc5kpkio+BOXLeb5Jyh1Zxu0/l8ie6DKhu7ZtLec77SRt6nUAWN0+ydJiNG0LFjCXUG9V+mSxFU6Eluj3RIl71zhbnEHtt86rhEdpezAPwfVKUi0ngxm1a7p/IqO4+Q+ygBp3+LBdTqFbV2zXHk+1T0DH3Rpu5TR32vqPbs+YFC4XbSScAZ49fcW63082oXtIT+lpvJtEkv+m/gbXdyBUgVH2v8jJAx035J+0IDf7RDIsWmEsPgNnqPkKwaRTUrKjszg9C8spmKcYvystfnCdKbmLtDtF49+bng== Received: from MN2PR11CA0012.namprd11.prod.outlook.com (2603:10b6:208:23b::17) by SN7PR12MB7273.namprd12.prod.outlook.com (2603:10b6:806:2ac::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9791.35; Tue, 14 Apr 2026 20:07:15 +0000 Received: from BL6PEPF0001AB57.namprd02.prod.outlook.com (2603:10b6:208:23b:cafe::99) by MN2PR11CA0012.outlook.office365.com (2603:10b6:208:23b::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.49 via Frontend Transport; Tue, 14 Apr 2026 20:07:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL6PEPF0001AB57.mail.protection.outlook.com (10.167.241.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Tue, 14 Apr 2026 20:07:15 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:52 -0700 Received: from meforce.lab.shazbot.org (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:50 -0700 From: Alex Williamson To: CC: Alex Williamson , , , , , Subject: [PATCH 3/4] vfio/virtio: Use guard() for migf->lock where applicable Date: Tue, 14 Apr 2026 14:06:21 -0600 Message-ID: <20260414200625.3601509-4-alex.williamson@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260414200625.3601509-1-alex.williamson@nvidia.com> References: <20260414200625.3601509-1-alex.williamson@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB57:EE_|SN7PR12MB7273:EE_ X-MS-Office365-Filtering-Correlation-Id: 34ae34b0-1532-4eec-2e90-08de9a616c64 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: mOATR5k9dYlKGgal9ucPAb2ft0yjRXARVDZ/5gjHlYCU0YFkmFMzVprpuUXDWwclXhYo/234m321LX9HSQzsq0hmSfOkNwyrw87qDKu0YFQlFwft7UcnR0YqxRsm+8wz3m+r605fEuqr1yPX3ddUdOEpZb0HrdUI0bpN2L6a0O/DIKSgA3fmE79Wffv26uAcuTQEYXrKf2FJCpGDwdyaoP6ZzDJtxEeSRKApbBoSQ/kCU1qVa8ju7lBuXdjrkx5SPKn6bM2utLXAW3Nvredm3K/VG0UDvLo8zJUTJoxb5hNJWnWifmW4nFcL+6sfX+zW+v09M+6OlUfNcSFQQQEMsIIs3KAdpsvAoE1kOUdaycokXxBbzNXA9y3pkmuV999BKpWdVSRQ0L2WwkwwtHHmV/MS7Ea6+FZAZ6PdmZGGYKq/Ze+Bbo4BWTmRSGQ4ad0zJp0xo9+EK7taCVGUEx1zqffqa2uxH2j1JxzNcgrrCKNtFRyz6eMO3bkJwLYwPfWnL1X6/92tm/lTouO7g8wQvwV3IJBJEPaX3VmHkU8POkBHWiehbdXp1kfxg19R6SqtAoFUL5Wdw6bL1B96ds8grhE4KK7zpj/D85rvL9skvLLbROgr4erYN/FDKR5J0GcoFVruXzGoae9iSRawYBOWSsABouaitPo18kU0MKQigCxTw5emrd2mq2myKNZYLmYPzB5pRt9cNI7fu/23XVLv2rhhJfXwwxJX10/UfeQePRBqzqsG5OAs96HnWW2iZXSnTWjBboVM/DHkliiuoSKU3Q== X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HATuTWSKvNtf3HT/u2CzDLSBlP+Ci+4vJgokdKXE+46rTHHCQKITyX7F6y51O8sPzxAxgqXMvtis7RjPoUI3vYPIVEIuqbFlWRM5E1QYJVTt3fIbMH8dS83PflaJz6qtqAi5lpibLclgK81jsT3uzSqsRxGhlzhzjnYXsuauOWhFSeLXdBWluq8yn3mrbgdAwstJqOqhTXhTJG//T5tQPuF3odVtcgvk+hL8BO4N6yKuQtNKKjWja5RClcZbJHgKgadvvMUpyJywFuO4RccQDeTDjdpeom6Lh/7ekRujKoklKAcrFPIloO0ZTz6+KU/3VIlbI0LoaqdxsU5hNHiX97Dv1DvxYjwwX1eiSAFXwyedhJHO6XL0CG+iBSrz9gghCy/zGHRKWmkv8g9WR2HeeRfm6EipGI5guYL0mUei2pLPWjIPqfaNL3EX9xgrXpOZ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2026 20:07:15.2312 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 34ae34b0-1532-4eec-2e90-08de9a616c64 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB57.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7273 Content-Type: text/plain; charset="utf-8" Convert migf->lock acquisitions in virtiovf_disable_fd() and virtiovf_save_read() to use guard(). In virtiovf_save_read() this eliminates the out_unlock label and multiple goto paths by allowing direct returns, and removes the need for the done variable to double as an error carrier. Assisted-by: Claude:claude-opus-4-6 Signed-off-by: Alex Williamson Reviewed-by: Yishai Hadas --- drivers/vfio/pci/virtio/migrate.c | 40 +++++++++++-------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/drivers/vfio/pci/virtio/migrate.c b/drivers/vfio/pci/virtio/mi= grate.c index 058d359c9b5a..80ca8a1b625a 100644 --- a/drivers/vfio/pci/virtio/migrate.c +++ b/drivers/vfio/pci/virtio/migrate.c @@ -224,10 +224,9 @@ static void virtiovf_clean_migf_resources(struct virti= ovf_migration_file *migf) =20 static void virtiovf_disable_fd(struct virtiovf_migration_file *migf) { - mutex_lock(&migf->lock); + guard(mutex)(&migf->lock); migf->state =3D VIRTIOVF_MIGF_STATE_ERROR; migf->filp->f_pos =3D 0; - mutex_unlock(&migf->lock); } =20 static void virtiovf_disable_fds(struct virtiovf_pci_core_device *virtvdev) @@ -385,11 +384,10 @@ static ssize_t virtiovf_save_read(struct file *filp, = char __user *buf, size_t le return -ESPIPE; pos =3D &filp->f_pos; =20 - mutex_lock(&migf->lock); - if (migf->state =3D=3D VIRTIOVF_MIGF_STATE_ERROR) { - done =3D -ENODEV; - goto out_unlock; - } + guard(mutex)(&migf->lock); + + if (migf->state =3D=3D VIRTIOVF_MIGF_STATE_ERROR) + return -ENODEV; =20 while (len) { ssize_t count; @@ -398,34 +396,24 @@ static ssize_t virtiovf_save_read(struct file *filp, = char __user *buf, size_t le if (first_loop_call) { first_loop_call =3D false; /* Temporary end of file as part of PRE_COPY */ - if (end_of_data && migf->state =3D=3D VIRTIOVF_MIGF_STATE_PRECOPY) { - done =3D -ENOMSG; - goto out_unlock; - } - if (end_of_data && migf->state !=3D VIRTIOVF_MIGF_STATE_COMPLETE) { - done =3D -EINVAL; - goto out_unlock; - } + if (end_of_data && migf->state =3D=3D VIRTIOVF_MIGF_STATE_PRECOPY) + return -ENOMSG; + if (end_of_data && migf->state !=3D VIRTIOVF_MIGF_STATE_COMPLETE) + return -EINVAL; } =20 if (end_of_data) - goto out_unlock; + return done; =20 - if (!vhca_buf) { - done =3D -EINVAL; - goto out_unlock; - } + if (!vhca_buf) + return -EINVAL; =20 count =3D virtiovf_buf_read(vhca_buf, &buf, &len, pos); - if (count < 0) { - done =3D count; - goto out_unlock; - } + if (count < 0) + return count; done +=3D count; } =20 -out_unlock: - mutex_unlock(&migf->lock); return done; } =20 --=20 2.51.0 From nobody Tue Jun 16 01:19:45 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012030.outbound.protection.outlook.com [40.107.200.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 18A4F2773CA; Tue, 14 Apr 2026 20:07:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197241; cv=fail; b=khwh8F0BkcdaBGYaJUk+AE5P5Wsr1XeZsw86I1nDk9xwZvcQZnRvho6BrZLQC9U5iL+eeviDszltUN5WInqvM0lujD5jjOS3HrxgYn6rVN6flVa/8siy5XYBmqgO8j1yqUrCSk7rTThzUINxbrrooexB78Cwk5oMYksHUzGXQWM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776197241; c=relaxed/simple; bh=yiLYjJGGx4Oh5m76WKb7kjtxBveXVp2AczxOGmxVm1Q=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ccDWAfFvnHkTvkTKgTfLoIr+ulwrrjWlXW7xxjIalVJcvDasUXYkH4Lea7WbfOyVossiXcyV6wBRTPfHb1bbkNYGT8s9jL1ALsrF7jTCga2z0m5ZLIRR8GPZJ2A3UtqwZ2aLWUUYGARIagmaZ0Jd/VpnBvTFrgHkk8t7KoGnV7s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=WbyfPXLx; arc=fail smtp.client-ip=40.107.200.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="WbyfPXLx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ujHZqJEOhMSz5YffrNrZaLirUTMzKx3wJNy/jj7G6ZG6MXENFj7UV3zD7jsQmiQwmHcD+fqT4bqr5ymEZdyttxc/tLDWzZEwGTWHP3V72voLrfNy0uZZ1AblWULzFhPfOpGoWhBATAbBL6IQro/7k45jBOQOks7Juub3LOv8euQ5h5z9xAf5yEIsdX7BUWkoFrSlE7EOKbfXW7vPladP+TCP7sE1TvTkyM+2mFc73Sv0Yh557IcHQN0uGJXeIibPgegGWE5HbWmAeUL1Vhosb6tL48/XgRX6vslImseP+n7iJNsvuDQ7rDvoXrzFZton6Rd63mHViTZVLRUhIpBAVA== 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=dS2Vhkw1bzRC9x1t98suHYAd8cW7MkqF54W0wuDX+F0=; b=CEnjH8t+c7Y4Ulfj2M2QJJgE2rN4Ui21yiuuDenI89E7T4sNM6mnDubHfFV3I31iXhR1YBQ81qk5NTUNpnFRc6qRkmqg303tNyEJfS6I1LYzM9Id0trM6hMpVVoql3YkCzgZ8NE9mEvljRVwpDVCDxmVJ6vO1fOaDic3xvcaL+chUaEtMJBd1GV/75sB/sBSUrnE9YhyWt/t1a70/uaLMnoc4B6qUL7ySiJ4DMYRt5C+teagfJo2bjw/FaDPV2aXN7nbtVmAFN796cgX4VE4Qh9uAlzA/uslGBwKCadE2pymS03JJghX2zfGn+6oS1EQvMA0A8DZkCW/1v1VsF60Gw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=shazbot.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dS2Vhkw1bzRC9x1t98suHYAd8cW7MkqF54W0wuDX+F0=; b=WbyfPXLx6SRPW6HNkgvJIgnXyGyQz94VUi5k8Cf+P+dger1nFHUr5CB7sJGDgAvt0me1J2HyEoopjA4y270wZ3fkZvGVmYnRSJ1fpWtLEw/SU/LoP/Y3E+rus/S5hx3h3O1wh++Hr9tbZN7Ad4Wsr+jH9t3A6T5y8C6bFAlcBpgTp4sbGwsPsA1iok3vp+gJW/pE/8X5qj4u/dNkCTN6O6IeKN+o0fVEaFYbezAiFI+jkd4/v36G50s1ibSCYBNttL4Kmjoy/FbYFTeK3Oy8r4xgSxgOqog5PhrMIICvNabaKIZiNfMcvibeZ9ODWivcyFs35nzHiR6vFzjYXU1cMg== Received: from MN2PR11CA0028.namprd11.prod.outlook.com (2603:10b6:208:23b::33) by PH7PR12MB8794.namprd12.prod.outlook.com (2603:10b6:510:27d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.20; Tue, 14 Apr 2026 20:07:16 +0000 Received: from BL6PEPF0001AB57.namprd02.prod.outlook.com (2603:10b6:208:23b:cafe::4) by MN2PR11CA0028.outlook.office365.com (2603:10b6:208:23b::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Tue, 14 Apr 2026 20:07:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL6PEPF0001AB57.mail.protection.outlook.com (10.167.241.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Tue, 14 Apr 2026 20:07:16 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:53 -0700 Received: from meforce.lab.shazbot.org (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 14 Apr 2026 13:06:52 -0700 From: Alex Williamson To: CC: Alex Williamson , , , , , Subject: [PATCH 4/4] vfio/virtio: Use guard() for bar_mutex in legacy I/O Date: Tue, 14 Apr 2026 14:06:22 -0600 Message-ID: <20260414200625.3601509-5-alex.williamson@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260414200625.3601509-1-alex.williamson@nvidia.com> References: <20260414200625.3601509-1-alex.williamson@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB57:EE_|PH7PR12MB8794:EE_ X-MS-Office365-Filtering-Correlation-Id: 70865582-ef87-4f95-9b91-08de9a616d36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: +asB8Ma3M4tIkB5z01mkERlDgi00dDkP+ieQn01yy2Dd4cqzCEbFOLjDIn2mH9cAtZTVLeAZSPa4A34XBHafL298Q0QbPYNl3J5XVoCixkRFmOYJZU3MBAnJuvdvdwp1/cM8Tl31eNfOAp0ReFm816EtnSGSW+lmy4qWB0YKoeZotkIRLjrRGITCiGhVIEsHfqOZoNyOKVd/nKYI/aS8JeqnHRCp3eCWJfnHI95Y0AR9N2Yg3Yqilr8oBxW55jRf91M29QcecJiP7M2O8aIrbfuHR+ROt4Vpj1DoMNYMbKnwd4CGTMgYHQjlfEREnYikBMWAXms88zYOPS61cn/Y4fLFZ6XQWmrI0X3e30OBbNoePVCnTWEVuTW5tpClugeMW19uzdUdRddmBTq6ISdmRAdrEPKTtalrlHq5NIE3+ZTDsIV+0dz5Jpel7VHdODtxJeDp6WKZ4kUON8oqkIuWd8X5opecWb2W5eA62k/uc5TU4YtHqwBuh68sit3qnLg/KMV2JYhJI7K41vIOP5D8aX1afb5wzcstflxacwCNeEyiW7aYrcR5/y3v/PtX5oS/4b5/lyEtxDu+9b5gLY9JKt/zW5zpH6VC3AwGdE7Pb7R9w4b7e4e/hnGDf6XacnQKiEcs8A9V0BJ1K4wT9LbxO1OlE9PYEfvId0pykEoJD5yuv5vsieuZudl2kNzAQbxthRP/Z3l2nC2axffGZVwQtbs4WWmQTL5QfYuf61dbns8Ca78BrrQfcJwQ39ucPToVt495xffEILE6IMIJMpcYpA== X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xhyL6soeXUxJf5gFS6/I/lGHPuTFhpcEJnvkFh3GQynE9OPFzZkGP/tiFvlswthFYHS6Uj3CLeuXbJQlyfr7TLS4nICdAb6bix3iLOnen2aTIReVvoVQWjoqTbXHrkmKRxAPZRDtvMX4YjgWDZwyswLpxztbJx1cUVVIYb69nPJergRmkXZqQSTp6uC53pOqoiP/6OsEubFOaEPZ4LxhNIrVaA1IhYz4cpiqJuEd8CZ3NPk4ezJQjg2Kex7F59ZeCRHuGmdU95Y1KBFs+xQ6dv1GtRT1iOXBG+dmmK1UdKBoTWrceG+8x45ZqdiJT0i9TR0g6jZmpreJvFg6fYrvfH/NW3R+nJFCV409sI/k2ZeUuexTseEBwmhn8Iwecbf4BDoJHHhRBa3X6JezgFqbyxvqnnskHsbAix/qplkVW+7mS9HK8TOSbrk0rhyJmhxa X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2026 20:07:16.6133 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 70865582-ef87-4f95-9b91-08de9a616d36 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB57.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8794 Content-Type: text/plain; charset="utf-8" Convert the bar_mutex acquisition in virtiovf_issue_legacy_rw_cmd() to use guard(), eliminating the out label and goto-based error paths in favor of direct returns. Assisted-by: Claude:claude-opus-4-6 Signed-off-by: Alex Williamson Reviewed-by: Yishai Hadas --- drivers/vfio/pci/virtio/legacy_io.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/vfio/pci/virtio/legacy_io.c b/drivers/vfio/pci/virtio/= legacy_io.c index 1ed349a55629..f022301e60d6 100644 --- a/drivers/vfio/pci/virtio/legacy_io.c +++ b/drivers/vfio/pci/virtio/legacy_io.c @@ -34,7 +34,9 @@ virtiovf_issue_legacy_rw_cmd(struct virtiovf_pci_core_dev= ice *virtvdev, common =3D pos < VIRTIO_PCI_CONFIG_OFF(msix_enabled); /* offset within the relevant configuration area */ offset =3D common ? pos : pos - VIRTIO_PCI_CONFIG_OFF(msix_enabled); - mutex_lock(&virtvdev->bar_mutex); + + guard(mutex)(&virtvdev->bar_mutex); + if (read) { if (common) ret =3D virtio_pci_admin_legacy_common_io_read(pdev, offset, @@ -43,14 +45,12 @@ virtiovf_issue_legacy_rw_cmd(struct virtiovf_pci_core_d= evice *virtvdev, ret =3D virtio_pci_admin_legacy_device_io_read(pdev, offset, count, bar0_buf + pos); if (ret) - goto out; + return ret; if (copy_to_user(buf, bar0_buf + pos, count)) - ret =3D -EFAULT; + return -EFAULT; } else { - if (copy_from_user(bar0_buf + pos, buf, count)) { - ret =3D -EFAULT; - goto out; - } + if (copy_from_user(bar0_buf + pos, buf, count)) + return -EFAULT; =20 if (common) ret =3D virtio_pci_admin_legacy_common_io_write(pdev, offset, @@ -59,8 +59,7 @@ virtiovf_issue_legacy_rw_cmd(struct virtiovf_pci_core_dev= ice *virtvdev, ret =3D virtio_pci_admin_legacy_device_io_write(pdev, offset, count, bar0_buf + pos); } -out: - mutex_unlock(&virtvdev->bar_mutex); + return ret; } =20 --=20 2.51.0