From nobody Tue Oct 28 17:45:02 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1759764109; cv=pass; d=zohomail.com; s=zohoarc; b=nlKag5xPCL7LJ8C8aaYC7oNw+aqYGm74zXm1U7NAqA+QDv9NiWlvwt7m2jTaBLRG+ECKdA8Uscr2c4lr3ZeKMt1m0dGhQuDgabI2WVVBU64US1fWNLJVRU/21/iN5gq8+/J1seBFznnkBULJsY1NzCUBzNgtg71zh2gUjxV25bI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759764109; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=lZRiAGFLHUqEBf/cdPuYlU5BA9QX+wmjig+540lNNEQ=; b=NHni9Ws/GWXLlh+TdLcHaUsc6kMzeLBtSWLrtezgqbN8syQH1N/KTlrp8H3seLYux4N4AfQckxicDktzURh1/mgn8f1mE6vVW6RCD2W6q60n6tabkxSWlFd427FHBT0a79V1icJkJ3EskArUxjWuur6BiEHWbbtrWy5WdVZWAQg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1759764109356430.0271179622089; Mon, 6 Oct 2025 08:21:49 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 0DD5744361; Mon, 6 Oct 2025 11:21:30 -0400 (EDT) Received: from [172.19.199.17] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 443934436B; Mon, 6 Oct 2025 11:19:19 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 609CF41CA5; Mon, 6 Oct 2025 11:18:23 -0400 (EDT) Received: from FR6P281CU001.outbound.protection.outlook.com (mail-germanywestcentralazon11020106.outbound.protection.outlook.com [52.101.171.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3AF74441BC for ; Mon, 6 Oct 2025 11:18:22 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEZP281MB2008.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:55::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9182.20; Mon, 6 Oct 2025 15:18:19 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9182.017; Mon, 6 Oct 2025 15:18:19 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hW/2VtXX3kLf2ZdGCR4YxbYfV+yI1c8M0+ruzDgdMwNU3hTf3d8pgZTrZW7L/UZD8b+cr9rq675aIOHztO9j1s5BmIVcGARF7YL+wkbkrbn2Lh7K1UeDUNW77fcAtrG8JEBd0yC9Ja5J80GBx0G1DDXZRgQD7QlNkxoTNqE794V+kIFngsbmduy7GmgLKrl+sa33XOe/D6Y7mu0aGkU4qtAeRbYqWxwMYLK8mR+SSPEtKmbhJNaVdAoaS0LKAfHB9tzyaF9H1ANb+ovPbI1dZfGAPwTmTAWjYt0x4kZCdZ19nSF4FKtZmxtcTdWNhE2MXiZZ26+gbPtRep0jtN6mdw== 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=lZRiAGFLHUqEBf/cdPuYlU5BA9QX+wmjig+540lNNEQ=; b=T2KigE95E6kzg6pYso+Gk05H1CoszaxuLWmXFxyidXxMxkQCoumTjeRPO4JS4pZRwHrj5mdWUEjeVnr5CWNzpPYb1NdYDIzPANNyyB/CGXZhVF7TGekXtublb43j1sk6GjsxnFboO2oS+6kwUJ5NMzLSE2khn/hHveY4DiNV5iR2emUsGkqEVuiPdnXO+p+EdsbSM5QV6sm6y4kFo/vyZT8TFS65C7FKBX7+BqK6WypEQoAPioWFJuI+uUuepPbg9bTWG8ZXDsYAyLvgPF+LKkkDYXnI2KrN7LN6YWP1LCbqD6vVYK3LLsyW58gtAUCVLsiWSKb/zdyKHvroYuXgWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lZRiAGFLHUqEBf/cdPuYlU5BA9QX+wmjig+540lNNEQ=; b=erspAi2PkuFVk2vn5cfH009G+iH0Z6ayW6QzvvdCwDPuENxVGu8NAvVl/SrTEcOuu40m4ij9MIsD9QubueR7uvnii2p3lfQoJEQgZ8Lh463w78JhN3fBuMI8KwaHhDytljZR7IcneXwvMPkgxAnFbdfWxBdC7pikNDOOzCk1Uk0Qw02RkhEmeHPQwL6TMeb4n5LwoVKTZYt8XD7/NxDvu0WBzEcux4t0JRWXAIScKBJN2vVE4BLI+K/FE296htvmgWqFIWY/DlNhcfgARDoWR9CrYpaNtyheKu6B3JZYL2L4rmRHAL9JjEd6kk9cus23O844kZaEI9pI4nLhzywdrA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH 4/5] ch: implement network device hot detach Date: Mon, 6 Oct 2025 17:18:10 +0200 Message-ID: <20251006151811.244611-5-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> References: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::12) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEZP281MB2008:EE_ X-MS-Office365-Filtering-Correlation-Id: f35dc274-e9e8-499e-08fd-08de04eb9485 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qr5XPmpZve92ExIGprcEyU3Ur++SoHC/JPvVwRSK1xH/bxvrW/1nyGETW4Hl?= =?us-ascii?Q?a6lY2kivsDU/iQNzphQeXOSsllxyDK/Pl3511ZMkiJJatsIMa5+T/HYthZjT?= =?us-ascii?Q?NDSw8MoKl9RnQ1elNDvI8adeH+mkQFQerarnjj63YOvZtGAVC9zTWB36Tm7r?= =?us-ascii?Q?sqXSc5pkgo6inNPORcuakL9c2cEKigwi/ehvSpMPRia2yR5IWw0aGzNAoZu2?= =?us-ascii?Q?u8FBCmUkVvUJWPJaUhe8GF3wG+qvm3jNJprIgYJLsRqLWzqdxetajfwL7m5z?= =?us-ascii?Q?DtJPpZxvpmQynsqBl4UdrQ/5Rtz9HrDg17M0gT0zbzp8y5orF0SM30x/SRRk?= =?us-ascii?Q?yVWcP3Ykm7FbsiFKXK3O1cFyouiL0636Nm+L47v20y1d695paSFWoabNzQR3?= =?us-ascii?Q?v2x8n4JTM2VxlL5SsP86aGjM48kpQmp7iX/il7SxWCG02bMxO4ctOuXXKVy6?= =?us-ascii?Q?oGrqau7S+fqMtC+CiuWGAivSEdfmnDuW0sCIGrrea8H0N2qKQnLfATOWJMJM?= =?us-ascii?Q?Rbmi816OTzn3utOKHAWzXphpD+nBkOvvKr/8f6QNacDIMYWq4wbL1CkldkkX?= =?us-ascii?Q?jsGwT6/U9C7tKbCA7XgUaQ9YvPGrbt8xy27u9EiTBSRvCUVQostdTs5zTRvr?= =?us-ascii?Q?VbSoahGY97ZCz9K4TaCg8Ey3ydXHlGaavNtkI9LQiGnI+LLsjAD0gcQsE0ec?= =?us-ascii?Q?nyhl3RumaMVLbWSI0mZVRoEvn/B0l5Tk5SexWw1p7QQJf9QakRs/mkllk4Nq?= =?us-ascii?Q?p24cKBBPKj+I7fcV2oPi9PK7+ZVPo1cyghVSAb0Px+SLOBze7K50FqzCXLop?= =?us-ascii?Q?xhBozvcPlXU1MYWSQU4513kM2RtNBs3anq77B9j/gwURxzjuUCA9WDUq89xE?= =?us-ascii?Q?H1Ne6cpdUc71C9KUIIwUQjvdaw1KU+USSIaNxxYXzJRKt5CTwLJkpa/3TsXK?= =?us-ascii?Q?LH9n52ZrqpzJlr5OmP0J4V7G5+mEsLpxAgTtlRJOH5PtxBkL8mUNWnG1tH8x?= =?us-ascii?Q?VsOcb/jog+Kx1nk5NV5mHJR5daGYZB+UffM64rBCabV5+DOCN4nZVbVAs26e?= =?us-ascii?Q?1JgGhMDrKJLiEXz5YX4IfrSy+HJYdrn7h4szanwBB2uRkoU43b/zQcjlY/97?= =?us-ascii?Q?gIOVEWaGLXg/CcRUxPkidKju0GMqi+2OtU46HyR6gDlg7iaxP/5nn+BTnAPy?= =?us-ascii?Q?T2zjZwNCZ2mVoJA3RQPB0EDBDb4cQ059mZ+O/pN4VOBEYuHo1rZA18toh5p+?= =?us-ascii?Q?JrLBRYOhmT8cnBrAYtC5lphcsZCuuI3bCDmxKooypKEjcK3dye0CzYLlgj2m?= =?us-ascii?Q?7gIlaAvMGWCH5IK91aTnO4elHo/2X2FrR1wK0eo5pKzIwr06jHM0oBwqYKXl?= =?us-ascii?Q?EBT0807arWzDNch1mEFCr/MS9ag3B04/8DF3Ol6pL5yHVZ/AynH60sXlo2UP?= =?us-ascii?Q?La9mtXeg10K9i5W7Zdr8VZbC6emLWJdl?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EIYSFY30HJocozGFpOMgXURDj8eg4glDUCrAIMSxbstzFJKO8PJPy048BOBT?= =?us-ascii?Q?tV80MEvl9tQ0sm2DvOGUdwHevLoD63KKtf92W2MzgsW4kXJxVEqNGGvwDvu3?= =?us-ascii?Q?tR/tJ5WJQI8jhSl9Jkz0cGKuQOzaioMrGnRaox2PD5XVszxu6J03P8D1p3Yf?= =?us-ascii?Q?kMyqi/t0Pjl+io6dx76IhR2zN4OqouXf8zmcR1fDQ//R3lXMD7MN8WAzC9l3?= =?us-ascii?Q?EBGa01ojP9Nuq22QyKstz04btX/mL5VnXebSk6FxeKuJmb5M5Mm9RKTZ6k9g?= =?us-ascii?Q?hr1pvyifTrVlTSbKbzitIFKthpJEDbVLP7+zAA2QnTG94FnTIezwJ7Kn7ymr?= =?us-ascii?Q?zvGxu4xJYNdAShl4W84vEHZlNCNj3P++p10kRANaKfVYH1VaRpUUFdT5GnQc?= =?us-ascii?Q?y5ZBLnmqwpQuBlAIShJ+n0EDrBHrUOke2taHcewnK8lKFnxIkUZzMKK8JufI?= =?us-ascii?Q?7O4bl9chM3nDtLe/DQrp4OGw4o/OnSGUpv85gIWSUzHxwMDexfeGesH7lmkV?= =?us-ascii?Q?0oDinonvdxK/IYsKmWgac9AfFSD/pSNrxv3ZOJjeIhlAiX5gfS0GBEtI5XWr?= =?us-ascii?Q?U4wSXR2zr6JQGZSc3/jO3ab4KRJv8kiSYNX2g3ZCBrZdIBDc9WNh5daqCcrm?= =?us-ascii?Q?6fCTEPMnCD0KKvDYDzQ5lijwaC8rsKPP0XNf3m7Rh5QDxp5BF6CfTxqjjXBr?= =?us-ascii?Q?rWsDVAXIuCyD5OpyHpJhMOaKodXekuDH0l2uHDNYUUMs90mRP57zgMLqO+kC?= =?us-ascii?Q?pBk+9iXW2BiGu6ub9ekGHntWkOQJJ1IjmTopnG8Rapn4PLrbXYCfxtJyIPqu?= =?us-ascii?Q?B8TfhVjNXFsAg1Hp1Qg/cebuW4k5G9DdVyXg+0z0Tdcr82KR0+HdUS+6/5gm?= =?us-ascii?Q?H+Uw5cli/EFW6KSu9K4nFJZbtDSHDltDpqkjLaf2Pmfhfs1Ju60PHySH0qec?= =?us-ascii?Q?8lmUXyF+dsSbjf5hCxxYwR23sTJEFsIMejici+hDfEICkzOgsvRseex7XyjZ?= =?us-ascii?Q?8oSYnHC9DYEJJsohnyIaWGSc36+Pybxq3F7yh0oY8MfbgsH2U1x/KC+4zMO0?= =?us-ascii?Q?EvHOpc1bVIYS8wZ81AUtE+lAFxXbNA60F18bBwiSR4Yyz+fUkOLIxzkHuEmS?= =?us-ascii?Q?yWzI1Eb7uYCs+QCdDULsSvdoFGf9fp/BZXh/wlndPTWWEne49QnsLLyegSMR?= =?us-ascii?Q?7eSzuJ4ZjQjjhiAnOsOOiFZSpiM3fr8tZ9VAOFSacFGqnxpv5xu9KI5Cyz7j?= =?us-ascii?Q?HEYz5LDJ+tuIRz11SBan9W6pg58LfFMman4+yFsdkS0NZljvW2kXikVM5kZm?= =?us-ascii?Q?k8bprEoeGgWbIm+zQzzIjDnlqxoqIdNC0AiyivQkLYg2A0JhdB6Oqd455pRN?= =?us-ascii?Q?t4Q/rGTHBbWeXPyrQiYcWpkr+KtyKP52/5zOHPYpjcS/iYPHd29UaLKRBS/x?= =?us-ascii?Q?rf/h8Tu15CXA/iY1iLqFxePmwt+y3ajXrk/NJAS4GI+G+BodaJl8u6Y9s11q?= =?us-ascii?Q?XzhhOOcKqCSxHTFAOJT35m6293t0OgHF5fvDvTk7Io5HEZonOx1cY5ARAijL?= =?us-ascii?Q?IHSshf3uY1WZ7ff0/fnHm62FBEGEXw8vFmancxeVSB+XYL9xXHyISiGBehmF?= =?us-ascii?Q?ewG/yw6NLQFwN4fXpSxk+d+C7CEZj0A7ihPeXJNGBh26?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: f35dc274-e9e8-499e-08fd-08de04eb9485 X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2025 15:18:19.0035 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rW7eRe9tLI/cCC7uXXft+xtZLUqaBSXozC8GqdiAfKaLlCZh3vi6jDDWE0KdJKTo30ke8UXlCo5JG/daVaoFDX5DsbMU8025x1701Mcg4T+kHMKyLpzyzxCexhgeMxLu X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB2008 Message-ID-Hash: JL4PRURJCK5DOLB7JVEZHI3ZAHZ5PWWT X-Message-ID-Hash: JL4PRURJCK5DOLB7JVEZHI3ZAHZ5PWWT X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1759764115201116600 Content-Type: text/plain; charset="utf-8" On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_hotplug.c | 69 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/src/ch/ch_hotplug.c b/src/ch/ch_hotplug.c index 25058e08f3..480acf93a6 100644 --- a/src/ch/ch_hotplug.c +++ b/src/ch/ch_hotplug.c @@ -24,6 +24,7 @@ #include "ch_process.h" =20 #include "domain_event.h" +#include "domain_interface.h" #include "domain_validate.h" #include "virlog.h" =20 @@ -220,6 +221,50 @@ chDomainFindDisk(virDomainObj *vm, } =20 =20 +static int +chFindNetID(virDomainDef *def, const char *dst) +{ + size_t i; + + for (i =3D 0; i < def->nnets; i++) { + if (STREQ(def->nets[i]->ifname, dst)) + return i; + } + + return -1; +} + +/** + * chDomainFindNet + * + * Helper function to find a network device definition of a domain. + * + * Searches through the network devices of a domain by comparing to 'match= ' and + * returns any match via the 'detach' out parameter. + */ +static int +chDomainFindNet(virDomainObj *vm, + virDomainNetDef *match, + virDomainNetDef **detach) +{ + int idx; + + if (!match->ifname) { + virReportError(VIR_ERR_DEVICE_MISSING, "%s", + _("no interface name specified")); + return -1; + } + if ((idx =3D chFindNetID(vm->def, match->ifname)) < 0) { + virReportError(VIR_ERR_DEVICE_MISSING, + _("net %1$s not found"), match->ifname); + return -1; + } + *detach =3D vm->def->nets[idx]; + + return 0; +} + + static int chDomainRemoveDevice(virDomainObj *vm, virDomainDeviceDef *device) @@ -239,9 +284,19 @@ chDomainRemoveDevice(virDomainObj *vm, } } break; + case VIR_DOMAIN_DEVICE_NET: + virDomainInterfaceStopDevice(device->data.net); + virDomainInterfaceDeleteDevice(vm->def, device->data.net, false, N= ULL); + for (i =3D 0; i < vm->def->nnets; i++) { + if (vm->def->nets[i] =3D=3D device->data.net) { + virDomainNetRemove(vm->def, i); + g_clear_pointer(&device->data.net, virDomainNetDefFree); + break; + } + } + break; case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: - case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_INPUT: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_VIDEO: @@ -296,9 +351,14 @@ chDomainDetachDeviceLive(virCHDriver *driver, return -1; } break; + case VIR_DOMAIN_DEVICE_NET: + if (chDomainFindNet(vm, match->data.net, + &detach.data.net) < 0) { + return -1; + } + break; case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: - case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_INPUT: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_VIDEO: @@ -360,8 +420,9 @@ chDomainDetachDeviceLive(virCHDriver *driver, alias =3D g_strdup(info->alias); =20 if (virCHMonitorRemoveDevice(priv->monitor, info->alias) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Invalid response from CH. Disk removal failed.")= ); + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Invalid response from CH. Device removal failed = for device %1$s."), + info->alias); return -1; } =20 --=20 2.51.0