rte_virtio: remove interrupt-related callbacks
Even though config change intrrupt handlers are still required, we need them only for real PCI devices. They should be handled internally in vhost_pci. However, current QEMU implementation doesn't ever change SCSI PCI config, so no interrupt handler is required for now. We might want to add it together with Virtio-Blk, as PCI config will change there with each resize. Change-Id: Iece024cd31c788857ce900385e289758ca3f5948 Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/385304 Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
parent
6a026a1ebf
commit
191b45d056
@ -201,33 +201,6 @@ modern_set_status(struct virtio_dev *dev, uint8_t status)
|
||||
spdk_mmio_write_1(&hw->common_cfg->device_status, status);
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
modern_get_isr(struct virtio_dev *dev)
|
||||
{
|
||||
struct virtio_hw *hw = virtio_dev_get_hw(dev);
|
||||
|
||||
return spdk_mmio_read_1(hw->isr);
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
modern_set_config_irq(struct virtio_dev *dev, uint16_t vec)
|
||||
{
|
||||
struct virtio_hw *hw = virtio_dev_get_hw(dev);
|
||||
|
||||
spdk_mmio_write_2(&hw->common_cfg->msix_config, vec);
|
||||
return spdk_mmio_read_2(&hw->common_cfg->msix_config);
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
modern_set_queue_irq(struct virtio_dev *dev, struct virtqueue *vq, uint16_t vec)
|
||||
{
|
||||
struct virtio_hw *hw = virtio_dev_get_hw(dev);
|
||||
|
||||
spdk_mmio_write_2(&hw->common_cfg->queue_select, vq->vq_queue_index);
|
||||
spdk_mmio_write_2(&hw->common_cfg->queue_msix_vector, vec);
|
||||
return spdk_mmio_read_2(&hw->common_cfg->queue_msix_vector);
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
modern_get_queue_num(struct virtio_dev *dev, uint16_t queue_id)
|
||||
{
|
||||
@ -308,10 +281,7 @@ const struct virtio_pci_ops modern_ops = {
|
||||
.set_status = modern_set_status,
|
||||
.get_features = modern_get_features,
|
||||
.set_features = modern_set_features,
|
||||
.get_isr = modern_get_isr,
|
||||
.set_config_irq = modern_set_config_irq,
|
||||
.free_vdev = free_virtio_hw,
|
||||
.set_queue_irq = modern_set_queue_irq,
|
||||
.get_queue_num = modern_get_queue_num,
|
||||
.setup_queue = modern_setup_queue,
|
||||
.del_queue = modern_del_queue,
|
||||
@ -357,12 +327,6 @@ vtpci_get_status(struct virtio_dev *dev)
|
||||
return vtpci_ops(dev)->get_status(dev);
|
||||
}
|
||||
|
||||
uint8_t
|
||||
vtpci_isr(struct virtio_dev *dev)
|
||||
{
|
||||
return vtpci_ops(dev)->get_isr(dev);
|
||||
}
|
||||
|
||||
static void *
|
||||
get_cfg_addr(struct virtio_hw *hw, struct virtio_pci_cap *cap)
|
||||
{
|
||||
|
@ -74,14 +74,8 @@ struct virtio_pci_ops {
|
||||
*/
|
||||
int (*set_features)(struct virtio_dev *vdev, uint64_t features);
|
||||
|
||||
uint8_t (*get_isr)(struct virtio_dev *hw);
|
||||
|
||||
uint16_t (*set_config_irq)(struct virtio_dev *hw, uint16_t vec);
|
||||
|
||||
/** Deinit and free virtio device */
|
||||
void (*free_vdev)(struct virtio_dev *vdev);
|
||||
uint16_t (*set_queue_irq)(struct virtio_dev *hw, struct virtqueue *vq,
|
||||
uint16_t vec);
|
||||
|
||||
uint16_t (*get_queue_num)(struct virtio_dev *hw, uint16_t queue_id);
|
||||
int (*setup_queue)(struct virtio_dev *hw, struct virtqueue *vq);
|
||||
@ -156,8 +150,6 @@ void vtpci_write_dev_config(struct virtio_dev *, size_t, const void *, int);
|
||||
|
||||
void vtpci_read_dev_config(struct virtio_dev *, size_t, void *, int);
|
||||
|
||||
uint8_t vtpci_isr(struct virtio_dev *);
|
||||
|
||||
const struct virtio_pci_ops *vtpci_ops(struct virtio_dev *dev);
|
||||
|
||||
void vtpci_deinit(uint32_t id);
|
||||
|
@ -119,31 +119,6 @@ virtio_user_set_features(struct virtio_dev *vdev, uint64_t features)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
virtio_user_get_isr(struct virtio_dev *vdev)
|
||||
{
|
||||
/* rxq interrupts and config interrupt are separated in virtio-user,
|
||||
* here we only report config change.
|
||||
*/
|
||||
return VIRTIO_PCI_ISR_CONFIG;
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
virtio_user_set_config_irq(struct virtio_dev *vdev,
|
||||
uint16_t vec)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
virtio_user_set_queue_irq(struct virtio_dev *vdev,
|
||||
struct virtqueue *vq,
|
||||
uint16_t vec)
|
||||
{
|
||||
/* pretend we have done that */
|
||||
return vec;
|
||||
}
|
||||
|
||||
/* This function is to get the queue size, aka, number of descs, of a specified
|
||||
* queue. Different with the VHOST_USER_GET_QUEUE_NUM, which is used to get the
|
||||
* max supported queues.
|
||||
@ -268,10 +243,7 @@ const struct virtio_pci_ops virtio_user_ops = {
|
||||
.set_status = virtio_user_set_status,
|
||||
.get_features = virtio_user_get_features,
|
||||
.set_features = virtio_user_set_features,
|
||||
.get_isr = virtio_user_get_isr,
|
||||
.set_config_irq = virtio_user_set_config_irq,
|
||||
.free_vdev = virtio_user_free,
|
||||
.set_queue_irq = virtio_user_set_queue_irq,
|
||||
.get_queue_num = virtio_user_get_queue_num,
|
||||
.setup_queue = virtio_user_setup_queue,
|
||||
.del_queue = virtio_user_del_queue,
|
||||
|
Loading…
Reference in New Issue
Block a user