Commit c6fd4701 authored by Rusty Russell's avatar Rusty Russell

virtio: Allow virtio to be modular and used by modules

This is needed for the virtio PCI device to be compiled as a module.
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 15f9c890
# Virtio always gets selected by whoever wants it. # Virtio always gets selected by whoever wants it.
config VIRTIO config VIRTIO
bool tristate
# Similarly the virtio ring implementation. # Similarly the virtio ring implementation.
config VIRTIO_RING config VIRTIO_RING
bool tristate
depends on VIRTIO depends on VIRTIO
...@@ -162,4 +162,12 @@ static int virtio_init(void) ...@@ -162,4 +162,12 @@ static int virtio_init(void)
panic("virtio bus registration failed"); panic("virtio bus registration failed");
return 0; return 0;
} }
static void __exit virtio_exit(void)
{
bus_unregister(&virtio_bus);
}
core_initcall(virtio_init); core_initcall(virtio_init);
module_exit(virtio_exit);
MODULE_LICENSE("GPL");
...@@ -266,6 +266,7 @@ irqreturn_t vring_interrupt(int irq, void *_vq) ...@@ -266,6 +266,7 @@ irqreturn_t vring_interrupt(int irq, void *_vq)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
EXPORT_SYMBOL_GPL(vring_interrupt);
static struct virtqueue_ops vring_vq_ops = { static struct virtqueue_ops vring_vq_ops = {
.add_buf = vring_add_buf, .add_buf = vring_add_buf,
...@@ -318,9 +319,12 @@ struct virtqueue *vring_new_virtqueue(unsigned int num, ...@@ -318,9 +319,12 @@ struct virtqueue *vring_new_virtqueue(unsigned int num,
return &vq->vq; return &vq->vq;
} }
EXPORT_SYMBOL_GPL(vring_new_virtqueue);
void vring_del_virtqueue(struct virtqueue *vq) void vring_del_virtqueue(struct virtqueue *vq)
{ {
kfree(to_vvq(vq)); kfree(to_vvq(vq));
} }
EXPORT_SYMBOL_GPL(vring_del_virtqueue);
MODULE_LICENSE("GPL");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment