From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hidetoshi Seto Subject: [PATCH] device-assignment: introduce get_assigned_dev_id Date: Wed, 13 Oct 2010 17:11:56 +0900 Message-ID: <4CB569CC.4090800@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Cc: Avi Kivity To: "kvm@vger.kernel.org" Return-path: Received: from fgwmail7.fujitsu.co.jp ([192.51.44.37]:57382 "EHLO fgwmail7.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753078Ab0JMIMH (ORCPT ); Wed, 13 Oct 2010 04:12:07 -0400 Received: from m5.gw.fujitsu.co.jp ([10.0.50.75]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id o9D8C6w8022060 for (envelope-from seto.hidetoshi@jp.fujitsu.com); Wed, 13 Oct 2010 17:12:06 +0900 Received: from smail (m5 [127.0.0.1]) by outgoing.m5.gw.fujitsu.co.jp (Postfix) with ESMTP id F2DF845DE51 for ; Wed, 13 Oct 2010 17:12:05 +0900 (JST) Received: from s5.gw.fujitsu.co.jp (s5.gw.fujitsu.co.jp [10.0.50.95]) by m5.gw.fujitsu.co.jp (Postfix) with ESMTP id C797545DE4E for ; Wed, 13 Oct 2010 17:12:05 +0900 (JST) Received: from s5.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s5.gw.fujitsu.co.jp (Postfix) with ESMTP id AF6B71DB8038 for ; Wed, 13 Oct 2010 17:12:05 +0900 (JST) Received: from ml14.s.css.fujitsu.com (ml14.s.css.fujitsu.com [10.249.87.104]) by s5.gw.fujitsu.co.jp (Postfix) with ESMTP id 5F4B3E08001 for ; Wed, 13 Oct 2010 17:12:05 +0900 (JST) Sender: kvm-owner@vger.kernel.org List-ID: Stop repeating same code. Signed-off-by: Hidetoshi Seto --- hw/device-assignment.c | 25 +++++++++++-------------- 1 files changed, 11 insertions(+), 14 deletions(-) diff --git a/hw/device-assignment.c b/hw/device-assignment.c index 975bf29..a2fa902 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -823,6 +823,11 @@ static uint32_t calc_assigned_dev_id(uint16_t seg, uint8_t bus, uint8_t devfn) return (uint32_t)seg << 16 | (uint32_t)bus << 8 | (uint32_t)devfn; } +static uint32_t get_assigned_dev_id(AssignedDevice *dev) +{ + return calc_assigned_dev_id(dev->h_segnr, dev->h_busnr, dev->h_devfn); +} + static void assign_failed_examine(AssignedDevice *dev) { char name[PATH_MAX], dir[PATH_MAX], driver[PATH_MAX] = {}, *ns; @@ -886,8 +891,7 @@ static int assign_device(AssignedDevice *dev) #endif memset(&assigned_dev_data, 0, sizeof(assigned_dev_data)); - assigned_dev_data.assigned_dev_id = - calc_assigned_dev_id(dev->h_segnr, dev->h_busnr, dev->h_devfn); + assigned_dev_data.assigned_dev_id = get_assigned_dev_id(dev); #ifdef KVM_CAP_PCI_SEGMENT assigned_dev_data.segnr = dev->h_segnr; #endif @@ -944,8 +948,7 @@ static int assign_irq(AssignedDevice *dev) return r; memset(&assigned_irq_data, 0, sizeof(assigned_irq_data)); - assigned_irq_data.assigned_dev_id = - calc_assigned_dev_id(dev->h_segnr, dev->h_busnr, dev->h_devfn); + assigned_irq_data.assigned_dev_id = get_assigned_dev_id(dev); assigned_irq_data.guest_irq = irq; assigned_irq_data.host_irq = dev->real_device.irq; #ifdef KVM_CAP_ASSIGN_DEV_IRQ @@ -985,8 +988,7 @@ static void deassign_device(AssignedDevice *dev) int r; memset(&assigned_dev_data, 0, sizeof(assigned_dev_data)); - assigned_dev_data.assigned_dev_id = - calc_assigned_dev_id(dev->h_segnr, dev->h_busnr, dev->h_devfn); + assigned_dev_data.assigned_dev_id = get_assigned_dev_id(dev); r = kvm_deassign_pci_device(kvm_context, &assigned_dev_data); if (r < 0) @@ -1041,9 +1043,7 @@ static void assigned_dev_update_msi(PCIDevice *pci_dev, unsigned int ctrl_pos) int r; memset(&assigned_irq_data, 0, sizeof assigned_irq_data); - assigned_irq_data.assigned_dev_id = - calc_assigned_dev_id(assigned_dev->h_segnr, assigned_dev->h_busnr, - (uint8_t)assigned_dev->h_devfn); + assigned_irq_data.assigned_dev_id = get_assigned_dev_id(assigned_dev); /* Some guests gratuitously disable MSI even if they're not using it, * try to catch this by only deassigning irqs if the guest is using @@ -1133,8 +1133,7 @@ static int assigned_dev_update_msix_mmio(PCIDevice *pci_dev) fprintf(stderr, "MSI-X entry number is zero!\n"); return -EINVAL; } - msix_nr.assigned_dev_id = calc_assigned_dev_id(adev->h_segnr, adev->h_busnr, - (uint8_t)adev->h_devfn); + msix_nr.assigned_dev_id = get_assigned_dev_id(adev); msix_nr.entry_nr = entries_nr; r = kvm_assign_set_msix_nr(kvm_context, &msix_nr); if (r != 0) { @@ -1205,9 +1204,7 @@ static void assigned_dev_update_msix(PCIDevice *pci_dev, unsigned int ctrl_pos) int r; memset(&assigned_irq_data, 0, sizeof assigned_irq_data); - assigned_irq_data.assigned_dev_id = - calc_assigned_dev_id(assigned_dev->h_segnr, assigned_dev->h_busnr, - (uint8_t)assigned_dev->h_devfn); + assigned_irq_data.assigned_dev_id = get_assigned_dev_id(assigned_dev); /* Some guests gratuitously disable MSIX even if they're not using it, * try to catch this by only deassigning irqs if the guest is using -- 1.7.3.1