From nobody Mon Feb 9 18:44:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1564758502; cv=none; d=zoho.com; s=zohoarc; b=IAO+Ww5POtYADo+W6gOLr3Iu3d/rEl0FgmatQq5ZND6Ca7ABZSZy//O8CIH/06nnN9YVSPCCp8VDJBnWHEPhIrW8NhNVdZP18+9m49zGwCMWMpCJ1wW1tyFgXlhn1dpHCLMx350leD7fR9MWGMsy+LbAqPIyveJUol4kL8dLRJ0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1564758502; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=XiocduzpqkNcQ5CsTezb/79dMcBff+m7HNkItDQZfIo=; b=UU6MZ3G9vuNIczZaGEglFwovBQ4LukwSK1s/TusW1NyVWH0/lxWsRkLTP+gUptGJufaxRX3APj3RT3qqk6HVrdNO5wTbfGOAAxYATx3TMYRY2iG74gknKjZKB6i8FYFxX8Jhcl+X3Y8wqZhegZGKB9IBpbivg+SCoWueGK2N5Ik= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1564758502101888.2067767159083; Fri, 2 Aug 2019 08:08:22 -0700 (PDT) Received: from localhost ([::1]:35576 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htZAL-0001V5-5W for importer@patchew.org; Fri, 02 Aug 2019 11:08:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47312) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htZ90-0006Zh-5B for qemu-devel@nongnu.org; Fri, 02 Aug 2019 11:06:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htZ8z-0005Xr-85 for qemu-devel@nongnu.org; Fri, 02 Aug 2019 11:06:58 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56932) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1htZ8z-0005XX-36 for qemu-devel@nongnu.org; Fri, 02 Aug 2019 11:06:57 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6DD268F91B for ; Fri, 2 Aug 2019 15:06:56 +0000 (UTC) Received: from localhost (dhcp-192-195.str.redhat.com [10.33.192.195]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 66A4C60623; Fri, 2 Aug 2019 15:06:51 +0000 (UTC) From: Jens Freimann To: qemu-devel@nongnu.org Date: Fri, 2 Aug 2019 17:06:05 +0200 Message-Id: <20190802150605.5880-10-jfreimann@redhat.com> In-Reply-To: <20190802150605.5880-1-jfreimann@redhat.com> References: <20190802150605.5880-1-jfreimann@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 02 Aug 2019 15:06:56 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 9/9] pci: mark device having guest unplug request pending X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pkrempa@redhat.com, berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, aadam@redhat.com, laine@redhat.com, ailan@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Set pending_deleted_event before triggering the unplug request and reset it in the unplug handler when the device is marked as partially hotplugged. This is required to be able to plug it back in in case of a migration failure. Signed-off-by: Jens Freimann --- hw/pci/pcie.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 19363ff8ce..08718188bb 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -457,6 +457,7 @@ static void pcie_unplug_device(PCIBus *bus, PCIDevice *= dev, void *opaque) HotplugHandler *hotplug_ctrl =3D qdev_get_hotplug_handler(DEVICE(dev)); =20 if (dev->partially_hotplugged) { + dev->qdev.pending_deleted_event =3D false; return; } hotplug_handler_unplug(hotplug_ctrl, DEVICE(dev), &error_abort); @@ -476,6 +477,8 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *ho= tplug_dev, return; } =20 + dev->pending_deleted_event =3D true; + /* In case user cancel the operation of multi-function hot-add, * remove the function that is unexposed to guest individually, * without interaction with guest. --=20 2.21.0