From patchwork Sat Apr 23 10:05:33 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 728981 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p3NA5unN011441 for ; Sat, 23 Apr 2011 10:05:57 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752928Ab1DWKFm (ORCPT ); Sat, 23 Apr 2011 06:05:42 -0400 Received: from fmmailgate02.web.de ([217.72.192.227]:54314 "EHLO fmmailgate02.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752647Ab1DWKFl (ORCPT ); Sat, 23 Apr 2011 06:05:41 -0400 Received: from smtp05.web.de ( [172.20.4.166]) by fmmailgate02.web.de (Postfix) with ESMTP id 687BB19C17DC8; Sat, 23 Apr 2011 12:05:39 +0200 (CEST) Received: from [88.64.17.9] (helo=localhost.localdomain) by smtp05.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #2) id 1QDZid-0003aW-00; Sat, 23 Apr 2011 12:05:39 +0200 From: Jan Kiszka To: Avi Kivity , Marcelo Tosatti Cc: kvm@vger.kernel.org, Alex Williamson Subject: [PATCH 1/3] qemu-kvm: pci-assign: Clean up free_assigned_device Date: Sat, 23 Apr 2011 12:05:33 +0200 Message-Id: <3788d627ea5ce582214c94bc2c27b1b7ce3fc432.1303553132.git.jan.kiszka@web.de> X-Mailer: git-send-email 1.7.1 In-Reply-To: References: In-Reply-To: References: X-Sender: jan.kiszka@web.de X-Provags-ID: V01U2FsdGVkX1/GR/nY3JYOUVEDsHN+Iuo6unflI3oxHmPO/Gdd 3l9rWzhmPhGvmQ2YPtSf1dcBL9CWiU5MyPk+tKuG/fgZmpRT1k 6FE1us8Bg= Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Sat, 23 Apr 2011 10:05:57 +0000 (UTC) From: Jan Kiszka The dev argument is never NULL for all free_assigned_device use cases. So remove the check and one indention level. Signed-off-by: Jan Kiszka --- hw/device-assignment.c | 70 +++++++++++++++++++++++------------------------ 1 files changed, 34 insertions(+), 36 deletions(-) diff --git a/hw/device-assignment.c b/hw/device-assignment.c index 4997b6e..50a7485 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -801,52 +801,50 @@ static void free_dev_irq_entries(AssignedDevice *dev) static void free_assigned_device(AssignedDevice *dev) { - if (dev) { - int i; - - for (i = 0; i < dev->real_device.region_number; i++) { - PCIRegion *pci_region = &dev->real_device.regions[i]; - AssignedDevRegion *region = &dev->v_addrs[i]; + int i; - if (!pci_region->valid) - continue; + for (i = 0; i < dev->real_device.region_number; i++) { + PCIRegion *pci_region = &dev->real_device.regions[i]; + AssignedDevRegion *region = &dev->v_addrs[i]; - if (pci_region->type & IORESOURCE_IO) { - if (pci_region->resource_fd < 0) { - kvm_remove_ioperm_data(region->u.r_baseport, - region->r_size); + if (!pci_region->valid) { + continue; + } + if (pci_region->type & IORESOURCE_IO) { + if (pci_region->resource_fd < 0) { + kvm_remove_ioperm_data(region->u.r_baseport, region->r_size); + } + } else if (pci_region->type & IORESOURCE_MEM) { + if (region->u.r_virtbase) { + if (region->memory_index) { + cpu_register_physical_memory(region->e_physbase, + region->e_size, + IO_MEM_UNASSIGNED); + qemu_ram_unmap(region->memory_index); } - } else if (pci_region->type & IORESOURCE_MEM) { - if (region->u.r_virtbase) { - if (region->memory_index) { - cpu_register_physical_memory(region->e_physbase, - region->e_size, - IO_MEM_UNASSIGNED); - qemu_ram_unmap(region->memory_index); - } - if (munmap(region->u.r_virtbase, - (pci_region->size + 0xFFF) & 0xFFFFF000)) - fprintf(stderr, - "Failed to unmap assigned device region: %s\n", - strerror(errno)); + if (munmap(region->u.r_virtbase, + (pci_region->size + 0xFFF) & 0xFFFFF000)) { + fprintf(stderr, + "Failed to unmap assigned device region: %s\n", + strerror(errno)); } } - if (pci_region->resource_fd >= 0) { - close(pci_region->resource_fd); - } } - - if (dev->cap.available & ASSIGNED_DEVICE_CAP_MSIX) - assigned_dev_unregister_msix_mmio(dev); - - if (dev->real_device.config_fd >= 0) { - close(dev->real_device.config_fd); + if (pci_region->resource_fd >= 0) { + close(pci_region->resource_fd); } + } + + if (dev->cap.available & ASSIGNED_DEVICE_CAP_MSIX) { + assigned_dev_unregister_msix_mmio(dev); + } + if (dev->real_device.config_fd >= 0) { + close(dev->real_device.config_fd); + } #ifdef KVM_CAP_IRQ_ROUTING - free_dev_irq_entries(dev); + free_dev_irq_entries(dev); #endif - } } static uint32_t calc_assigned_dev_id(uint16_t seg, uint8_t bus, uint8_t devfn)