@@ -800,7 +800,6 @@ again:
static QLIST_HEAD(, AssignedDevice) devs = QLIST_HEAD_INITIALIZER(devs);
-#ifdef KVM_CAP_IRQ_ROUTING
static void free_dev_irq_entries(AssignedDevice *dev)
{
int i;
@@ -811,7 +810,6 @@ static void free_dev_irq_entries(AssignedDevice *dev)
dev->entry = NULL;
dev->irq_entries_nr = 0;
}
-#endif
static void free_assigned_device(AssignedDevice *dev)
{
@@ -860,9 +858,7 @@ static void free_assigned_device(AssignedDevice *dev)
close(dev->real_device.config_fd);
}
-#ifdef KVM_CAP_IRQ_ROUTING
free_dev_irq_entries(dev);
-#endif
}
static uint32_t calc_assigned_dev_id(uint16_t seg, uint8_t bus, uint8_t devfn)
@@ -922,7 +918,6 @@ static int assign_device(AssignedDevice *dev)
struct kvm_assigned_pci_dev assigned_dev_data;
int r;
-#ifdef KVM_CAP_PCI_SEGMENT
/* Only pass non-zero PCI segment to capable module */
if (!kvm_check_extension(kvm_state, KVM_CAP_PCI_SEGMENT) &&
dev->h_segnr) {
@@ -930,18 +925,14 @@ static int assign_device(AssignedDevice *dev)
"as this KVM module doesn't support it.\n");
return -ENODEV;
}
-#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);
-#ifdef KVM_CAP_PCI_SEGMENT
assigned_dev_data.segnr = dev->h_segnr;
-#endif
assigned_dev_data.busnr = dev->h_busnr;
assigned_dev_data.devfn = dev->h_devfn;
-#ifdef KVM_CAP_IOMMU
/* We always enable the IOMMU unless disabled on the command line */
if (dev->features & ASSIGNED_DEVICE_USE_IOMMU_MASK) {
if (!kvm_check_extension(kvm_state, KVM_CAP_IOMMU)) {
@@ -951,9 +942,6 @@ static int assign_device(AssignedDevice *dev)
}
assigned_dev_data.flags |= KVM_DEV_ASSIGN_ENABLE_IOMMU;
}
-#else
- dev->features &= ~ASSIGNED_DEVICE_USE_IOMMU_MASK;
-#endif
if (!(dev->features & ASSIGNED_DEVICE_USE_IOMMU_MASK)) {
fprintf(stderr,
"WARNING: Assigning a device without IOMMU protection can "
@@ -1001,7 +989,6 @@ static int assign_irq(AssignedDevice *dev)
calc_assigned_dev_id(dev->h_segnr, dev->h_busnr, dev->h_devfn);
assigned_irq_data.guest_irq = irq;
assigned_irq_data.host_irq = dev->real_device.irq;
-#ifdef KVM_CAP_ASSIGN_DEV_IRQ
if (dev->irq_requested_type) {
assigned_irq_data.flags = dev->irq_requested_type;
r = kvm_deassign_irq(kvm_state, &assigned_irq_data);
@@ -1016,7 +1003,6 @@ static int assign_irq(AssignedDevice *dev)
assigned_irq_data.flags |= KVM_DEV_IRQ_HOST_MSI;
else
assigned_irq_data.flags |= KVM_DEV_IRQ_HOST_INTX;
-#endif
r = kvm_assign_irq(kvm_state, &assigned_irq_data);
if (r < 0) {
@@ -1034,7 +1020,6 @@ static int assign_irq(AssignedDevice *dev)
static void deassign_device(AssignedDevice *dev)
{
-#ifdef KVM_CAP_DEVICE_DEASSIGNMENT
struct kvm_assigned_pci_dev assigned_dev_data;
int r;
@@ -1046,7 +1031,6 @@ static void deassign_device(AssignedDevice *dev)
if (r < 0)
fprintf(stderr, "Failed to deassign device \"%s\" : %s\n",
dev->dev.qdev.id, strerror(-r));
-#endif
}
#if 0
@@ -1084,9 +1068,6 @@ void assigned_dev_update_irqs(void)
}
}
-#ifdef KVM_CAP_IRQ_ROUTING
-
-#ifdef KVM_CAP_DEVICE_MSI
static void assigned_dev_update_msi(PCIDevice *pci_dev, unsigned int ctrl_pos)
{
struct kvm_assigned_irq assigned_irq_data;
@@ -1151,9 +1132,7 @@ static void assigned_dev_update_msi(PCIDevice *pci_dev, unsigned int ctrl_pos)
assign_irq(assigned_dev);
}
}
-#endif
-#ifdef KVM_CAP_DEVICE_MSIX
static int assigned_dev_update_msix_mmio(PCIDevice *pci_dev)
{
AssignedDevice *adev = DO_UPCAST(AssignedDevice, dev, pci_dev);
@@ -1290,8 +1269,6 @@ static void assigned_dev_update_msix(PCIDevice *pci_dev, unsigned int ctrl_pos)
assign_irq(assigned_dev);
}
}
-#endif
-#endif
/* There can be multiple VNDR capabilities per device, we need to find the
* one that starts closet to the given address without going over. */
@@ -1338,32 +1315,23 @@ static void assigned_device_pci_cap_write_config(PCIDevice *pci_dev,
uint32_t val, int len)
{
uint8_t cap_id = pci_dev->config_map[address];
+ uint8_t cap;
pci_default_write_config(pci_dev, address, val, len);
switch (cap_id) {
-#ifdef KVM_CAP_IRQ_ROUTING
case PCI_CAP_ID_MSI:
-#ifdef KVM_CAP_DEVICE_MSI
- {
- uint8_t cap = pci_find_capability(pci_dev, cap_id);
- if (ranges_overlap(address - cap, len, PCI_MSI_FLAGS, 1)) {
- assigned_dev_update_msi(pci_dev, cap + PCI_MSI_FLAGS);
- }
+ cap = pci_find_capability(pci_dev, cap_id);
+ if (ranges_overlap(address - cap, len, PCI_MSI_FLAGS, 1)) {
+ assigned_dev_update_msi(pci_dev, cap + PCI_MSI_FLAGS);
}
-#endif
break;
case PCI_CAP_ID_MSIX:
-#ifdef KVM_CAP_DEVICE_MSIX
- {
- uint8_t cap = pci_find_capability(pci_dev, cap_id);
- if (ranges_overlap(address - cap, len, PCI_MSIX_FLAGS + 1, 1)) {
- assigned_dev_update_msix(pci_dev, cap + PCI_MSIX_FLAGS);
- }
+ cap = pci_find_capability(pci_dev, cap_id);
+ if (ranges_overlap(address - cap, len, PCI_MSIX_FLAGS + 1, 1)) {
+ assigned_dev_update_msix(pci_dev, cap + PCI_MSIX_FLAGS);
}
-#endif
break;
-#endif
case PCI_CAP_ID_VPD:
case PCI_CAP_ID_VNDR:
@@ -1384,8 +1352,6 @@ static int assigned_device_pci_cap_init(PCIDevice *pci_dev)
pci_get_word(pci_dev->config + PCI_STATUS) &
~PCI_STATUS_CAP_LIST);
-#ifdef KVM_CAP_IRQ_ROUTING
-#ifdef KVM_CAP_DEVICE_MSI
/* Expose MSI capability
* MSI capability is the 1st capability in capability config */
if ((pos = pci_find_cap_offset(pci_dev, PCI_CAP_ID_MSI, 0))) {
@@ -1407,8 +1373,6 @@ static int assigned_device_pci_cap_init(PCIDevice *pci_dev)
pci_set_long(pci_dev->wmask + pos + PCI_MSI_ADDRESS_LO, 0xfffffffc);
pci_set_word(pci_dev->wmask + pos + PCI_MSI_DATA_32, 0xffff);
}
-#endif
-#ifdef KVM_CAP_DEVICE_MSIX
/* Expose MSI-X capability */
if ((pos = pci_find_cap_offset(pci_dev, PCI_CAP_ID_MSIX, 0))) {
int bar_nr;
@@ -1432,8 +1396,6 @@ static int assigned_device_pci_cap_init(PCIDevice *pci_dev)
msix_table_entry &= ~PCI_MSIX_BIR;
dev->msix_table_addr = pci_region[bar_nr].base_addr + msix_table_entry;
}
-#endif
-#endif
/* Minimal PM support, nothing writable, device appears to NAK changes */
if ((pos = pci_find_cap_offset(pci_dev, PCI_CAP_ID_PM, 0))) {
@@ -1418,7 +1418,6 @@ int kvm_set_ioeventfd_pio_word(int fd, uint16_t addr, uint16_t val, bool assign)
int kvm_set_irqfd(int gsi, int fd, bool assigned)
{
-#if defined(KVM_IRQFD)
struct kvm_irqfd irqfd = {
.fd = fd,
.gsi = gsi,
@@ -1432,9 +1431,6 @@ int kvm_set_irqfd(int gsi, int fd, bool assigned)
if (r < 0)
return r;
return 0;
-#else
- return -ENOSYS;
-#endif
}
int kvm_on_sigbus_vcpu(CPUState *env, int code, void *addr)
@@ -25,7 +25,6 @@
static int kvm_create_pit(KVMState *s)
{
-#ifdef KVM_CAP_PIT
int r;
if (kvm_pit) {
@@ -43,12 +42,9 @@ static int kvm_create_pit(KVMState *s)
}
}
}
-#endif
return 0;
}
-#ifdef KVM_EXIT_TPR_ACCESS
-
int kvm_handle_tpr_access(CPUState *env)
{
struct kvm_run *run = env->kvm_run;
@@ -68,10 +64,6 @@ int kvm_enable_vapic(CPUState *env, uint64_t vapic)
return kvm_vcpu_ioctl(env, KVM_SET_VAPIC_ADDR, &va);
}
-#endif
-
-#ifdef KVM_CAP_IRQCHIP
-
int kvm_get_lapic(CPUState *env, struct kvm_lapic_state *s)
{
int r = 0;
@@ -103,10 +95,6 @@ int kvm_set_lapic(CPUState *env, struct kvm_lapic_state *s)
return r;
}
-#endif
-
-#ifdef KVM_CAP_PIT
-
int kvm_get_pit(KVMState *s, struct kvm_pit_state *pit_state)
{
if (!kvm_pit_in_kernel()) {
@@ -123,7 +111,6 @@ int kvm_set_pit(KVMState *s, struct kvm_pit_state *pit_state)
return kvm_vm_ioctl(s, KVM_SET_PIT, pit_state);
}
-#ifdef KVM_CAP_PIT_STATE2
int kvm_get_pit2(KVMState *s, struct kvm_pit_state2 *ps2)
{
if (!kvm_pit_in_kernel()) {
@@ -140,10 +127,6 @@ int kvm_set_pit2(KVMState *s, struct kvm_pit_state2 *ps2)
return kvm_vm_ioctl(s, KVM_SET_PIT2, ps2);
}
-#endif
-#endif
-
-#ifdef KVM_CAP_VAPIC
static int kvm_enable_tpr_access_reporting(CPUState *env)
{
int r;
@@ -155,15 +138,12 @@ static int kvm_enable_tpr_access_reporting(CPUState *env)
}
return kvm_vcpu_ioctl(env, KVM_TPR_ACCESS_REPORTING, &tac);
}
-#endif
static int _kvm_arch_init_vcpu(CPUState *env)
{
kvm_arch_reset_vcpu(env);
-#ifdef KVM_EXIT_TPR_ACCESS
kvm_enable_tpr_access_reporting(env);
-#endif
return kvm_update_ioport_access(env);
}
@@ -39,7 +39,6 @@
int kvm_create_irqchip(KVMState *s);
-#ifdef KVM_CAP_IRQCHIP
/*!
* \brief Dump in kernel IRQCHIP contents
*
@@ -86,13 +85,6 @@ int kvm_get_lapic(CPUState *env, struct kvm_lapic_state *s);
*/
int kvm_set_lapic(CPUState *env, struct kvm_lapic_state *s);
-#endif
-
-#endif
-
-#ifdef KVM_CAP_PIT
-
-#if defined(__i386__) || defined(__x86_64__)
/*!
* \brief Get in kernel PIT of the virtual domain
*
@@ -116,7 +108,6 @@ int kvm_set_pit(KVMState *s, struct kvm_pit_state *pit_state);
int kvm_reinject_control(KVMState *s, int pit_reinject);
-#ifdef KVM_CAP_PIT_STATE2
/*!
* \brief Set in kernel PIT state2 of the virtual domain
*
@@ -138,16 +129,9 @@ int kvm_set_pit2(KVMState *s, struct kvm_pit_state2 *ps2);
int kvm_get_pit2(KVMState *s, struct kvm_pit_state2 *ps2);
#endif
-#endif
-#endif
-
-#ifdef KVM_CAP_VAPIC
int kvm_enable_vapic(CPUState *env, uint64_t vapic);
-#endif
-
-#ifdef KVM_CAP_DEVICE_ASSIGNMENT
/*!
* \brief Notifies host kernel about a PCI device to be assigned to a guest
*
@@ -171,7 +155,6 @@ int kvm_assign_pci_device(KVMState *s,
*/
int kvm_assign_irq(KVMState *s, struct kvm_assigned_irq *assigned_irq);
-#ifdef KVM_CAP_ASSIGN_DEV_IRQ
/*!
* \brief Deassign IRQ for an assigned device
*
@@ -182,10 +165,7 @@ int kvm_assign_irq(KVMState *s, struct kvm_assigned_irq *assigned_irq);
* \param assigned_irq Parameters, like dev id, host irq, guest irq, etc
*/
int kvm_deassign_irq(KVMState *s, struct kvm_assigned_irq *assigned_irq);
-#endif
-#endif
-#ifdef KVM_CAP_DEVICE_DEASSIGNMENT
/*!
* \brief Notifies host kernel about a PCI device to be deassigned from a guest
*
@@ -197,7 +177,6 @@ int kvm_deassign_irq(KVMState *s, struct kvm_assigned_irq *assigned_irq);
*/
int kvm_deassign_pci_device(KVMState *s,
struct kvm_assigned_pci_dev *assigned_dev);
-#endif
/*!
* \brief Clears the temporary irq routing table
@@ -252,11 +231,9 @@ int kvm_update_routing_entry(struct kvm_irq_routing_entry *entry,
struct kvm_irq_routing_entry *newentry);
-#ifdef KVM_CAP_DEVICE_MSIX
int kvm_assign_set_msix_nr(KVMState *s, struct kvm_assigned_msix_nr *msix_nr);
int kvm_assign_set_msix_entry(KVMState *s,
struct kvm_assigned_msix_entry *entry);
-#endif
#else /* !CONFIG_KVM */
@@ -512,13 +512,11 @@ int kvm_arch_init_vcpu(CPUState *env)
static void kvm_clear_vapic(CPUState *env)
{
-#ifdef KVM_SET_VAPIC_ADDR
struct kvm_vapic_addr va = {
.vapic_addr = 0,
};
kvm_vcpu_ioctl(env, KVM_SET_VAPIC_ADDR, &va);
-#endif
}
void kvm_arch_reset_vcpu(CPUState *env)