1 Star 0 Fork 108

panchenbo / qemu

forked from src-openEuler / qemu 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Revert-vfio-pci-Set-up-the-DMA-FAULT-region.patch 4.29 KB
一键复制 编辑 原始数据 按行查看 历史
yezengruan 提交于 2022-11-22 17:45 . Qemu update to version 6.2.0-59
From 0e9cc7c0a60ace8baeab6e32f49770afbeec6f5d Mon Sep 17 00:00:00 2001
From: Kunkun Jiang <jiangkunkun@huawei.com>
Date: Fri, 18 Nov 2022 15:22:38 +0800
Subject: [PATCH 19/36] Revert "vfio/pci: Set up the DMA FAULT region"
This reverts commit e701d0fef4fbb7935d6aa7d22d82eb2dcfee2431.
Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
---
hw/vfio/pci.c | 64 ---------------------------------------------------
hw/vfio/pci.h | 1 -
2 files changed, 65 deletions(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 76bc9d3506..37a70932c6 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -2638,67 +2638,11 @@ int vfio_populate_vga(VFIOPCIDevice *vdev, Error **errp)
return 0;
}
-static void vfio_init_fault_regions(VFIOPCIDevice *vdev, Error **errp)
-{
- struct vfio_region_info *fault_region_info = NULL;
- struct vfio_region_info_cap_fault *cap_fault;
- VFIODevice *vbasedev = &vdev->vbasedev;
- struct vfio_info_cap_header *hdr;
- char *fault_region_name;
- int ret;
-
- ret = vfio_get_dev_region_info(&vdev->vbasedev,
- VFIO_REGION_TYPE_NESTED,
- VFIO_REGION_SUBTYPE_NESTED_DMA_FAULT,
- &fault_region_info);
- if (ret) {
- goto out;
- }
-
- hdr = vfio_get_region_info_cap(fault_region_info,
- VFIO_REGION_INFO_CAP_DMA_FAULT);
- if (!hdr) {
- error_setg(errp, "failed to retrieve DMA FAULT capability");
- goto out;
- }
- cap_fault = container_of(hdr, struct vfio_region_info_cap_fault,
- header);
- if (cap_fault->version != 1) {
- error_setg(errp, "Unsupported DMA FAULT API version %d",
- cap_fault->version);
- goto out;
- }
-
- fault_region_name = g_strdup_printf("%s DMA FAULT %d",
- vbasedev->name,
- fault_region_info->index);
-
- ret = vfio_region_setup(OBJECT(vdev), vbasedev,
- &vdev->dma_fault_region,
- fault_region_info->index,
- fault_region_name);
- g_free(fault_region_name);
- if (ret) {
- error_setg_errno(errp, -ret,
- "failed to set up the DMA FAULT region %d",
- fault_region_info->index);
- goto out;
- }
-
- ret = vfio_region_mmap(&vdev->dma_fault_region);
- if (ret) {
- error_setg_errno(errp, -ret, "Failed to mmap the DMA FAULT queue");
- }
-out:
- g_free(fault_region_info);
-}
-
static void vfio_populate_device(VFIOPCIDevice *vdev, Error **errp)
{
VFIODevice *vbasedev = &vdev->vbasedev;
struct vfio_region_info *reg_info;
struct vfio_irq_info irq_info = { .argsz = sizeof(irq_info) };
- Error *err = NULL;
int i, ret = -1;
/* Sanity check device */
@@ -2762,12 +2706,6 @@ static void vfio_populate_device(VFIOPCIDevice *vdev, Error **errp)
}
}
- vfio_init_fault_regions(vdev, &err);
- if (err) {
- error_propagate(errp, err);
- return;
- }
-
irq_info.index = VFIO_PCI_ERR_IRQ_INDEX;
ret = ioctl(vdev->vbasedev.fd, VFIO_DEVICE_GET_IRQ_INFO, &irq_info);
@@ -3360,7 +3298,6 @@ static void vfio_instance_finalize(Object *obj)
vfio_display_finalize(vdev);
vfio_bars_finalize(vdev);
- vfio_region_finalize(&vdev->dma_fault_region);
g_free(vdev->emulated_config_bits);
g_free(vdev->rom);
/*
@@ -3381,7 +3318,6 @@ static void vfio_exitfn(PCIDevice *pdev)
vfio_unregister_req_notifier(vdev);
vfio_unregister_err_notifier(vdev);
vfio_unregister_ext_irq_notifiers(vdev);
- vfio_region_exit(&vdev->dma_fault_region);
pci_device_set_intx_routing_notifier(&vdev->pdev, NULL);
if (vdev->irqchip_change_notifier.notify) {
kvm_irqchip_remove_change_notifier(&vdev->irqchip_change_notifier);
diff --git a/hw/vfio/pci.h b/hw/vfio/pci.h
index eef91065f1..a8b06737fb 100644
--- a/hw/vfio/pci.h
+++ b/hw/vfio/pci.h
@@ -145,7 +145,6 @@ struct VFIOPCIDevice {
EventNotifier err_notifier;
EventNotifier req_notifier;
VFIOPCIExtIRQ *ext_irqs;
- VFIORegion dma_fault_region;
int (*resetfn)(struct VFIOPCIDevice *);
uint32_t vendor_id;
uint32_t device_id;
--
2.27.0
1
https://gitee.com/panchenbo/qemu.git
git@gitee.com:panchenbo/qemu.git
panchenbo
qemu
qemu
master

搜索帮助