search for: vm_interrupt

Displaying 20 results from an estimated 50 matches for "vm_interrupt".

2014 Oct 25
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 28ddb55..7229605 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) return ret; } +/* Notify all virtqueues on an interrupt. */ +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) +{ + struct virtio_mmio_device *vm_dev = opaque; + struct virtio_mmio_vq_info *info; + unsigned long status; + unsigned long flags; + irqreturn_t ret...
2014 Oct 25
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 28ddb55..7229605 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) return ret; } +/* Notify all virtqueues on an interrupt. */ +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) +{ + struct virtio_mmio_device *vm_dev = opaque; + struct virtio_mmio_vq_info *info; + unsigned long status; + unsigned long flags; + irqreturn_t ret...
2014 Oct 27
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...32 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c >> index 28ddb55..7229605 100644 >> --- a/drivers/virtio/virtio_mmio.c >> +++ b/drivers/virtio/virtio_mmio.c >> @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) >> return ret; >> } >> >> +/* Notify all virtqueues on an interrupt. */ >> +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) >> +{ >> + struct virtio_mmio_device *vm_dev = opaque; >> + struct virtio_mmio_vq_info...
2014 Oct 27
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...32 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c >> index 28ddb55..7229605 100644 >> --- a/drivers/virtio/virtio_mmio.c >> +++ b/drivers/virtio/virtio_mmio.c >> @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) >> return ret; >> } >> >> +/* Notify all virtqueues on an interrupt. */ >> +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) >> +{ >> + struct virtio_mmio_device *vm_dev = opaque; >> + struct virtio_mmio_vq_info...
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...; + struct virtio_driver, driver); >> + >> + if (vdrv && vdrv->config_changed) >> + vdrv->config_changed(&vm_dev->vdev); >> + return IRQ_HANDLED; >> +} >> + >> /* Notify all virtqueues on an interrupt. */ >> -static irqreturn_t vm_interrupt(int irq, void *opaque) >> +static irqreturn_t vm_vring_interrupt(int irq, void *opaque) >> { >> struct virtio_mmio_device *vm_dev = opaque; >> struct virtio_mmio_vq_info *info; >> - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, >> -...
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...; + struct virtio_driver, driver); >> + >> + if (vdrv && vdrv->config_changed) >> + vdrv->config_changed(&vm_dev->vdev); >> + return IRQ_HANDLED; >> +} >> + >> /* Notify all virtqueues on an interrupt. */ >> -static irqreturn_t vm_interrupt(int irq, void *opaque) >> +static irqreturn_t vm_vring_interrupt(int irq, void *opaque) >> { >> struct virtio_mmio_device *vm_dev = opaque; >> struct virtio_mmio_vq_info *info; >> - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, >> -...
2014 Oct 26
0
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...> 1 file changed, 32 insertions(+), 2 deletions(-) > > diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c > index 28ddb55..7229605 100644 > --- a/drivers/virtio/virtio_mmio.c > +++ b/drivers/virtio/virtio_mmio.c > @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) > return ret; > } > > +/* Notify all virtqueues on an interrupt. */ > +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) > +{ > + struct virtio_mmio_device *vm_dev = opaque; > + struct virtio_mmio_vq_info *info; > + unsigned long sta...
2014 Oct 27
0
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...-) > >> > >> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c > >> index 28ddb55..7229605 100644 > >> --- a/drivers/virtio/virtio_mmio.c > >> +++ b/drivers/virtio/virtio_mmio.c > >> @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) > >> return ret; > >> } > >> > >> +/* Notify all virtqueues on an interrupt. */ > >> +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) > >> +{ > >> + struct virtio_mmio_device *vm_dev = opaque; &g...
2017 Feb 04
0
[PATCH] virtio_mmio: remove virtio_mmio_vq_info
...actual virtqueue */ - struct virtqueue *vq; - - /* the list node for the virtqueues list */ - struct list_head node; }; - - /* Configuration interface */ static u64 vm_get_features(struct virtio_device *vdev) @@ -286,9 +272,7 @@ static bool vm_notify(struct virtqueue *vq) static irqreturn_t vm_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; - struct virtio_mmio_vq_info *info; unsigned long status; - unsigned long flags; irqreturn_t ret = IRQ_NONE; /* Read and acknowledge interrupts */ @@ -301,10 +285,10 @@ static irqreturn_t vm_interrupt(int irq, void *opa...
2017 Feb 04
0
[PATCH] virtio_mmio: remove virtio_mmio_vq_info
...actual virtqueue */ - struct virtqueue *vq; - - /* the list node for the virtqueues list */ - struct list_head node; }; - - /* Configuration interface */ static u64 vm_get_features(struct virtio_device *vdev) @@ -286,9 +272,7 @@ static bool vm_notify(struct virtqueue *vq) static irqreturn_t vm_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; - struct virtio_mmio_vq_info *info; unsigned long status; - unsigned long flags; irqreturn_t ret = IRQ_NONE; /* Read and acknowledge interrupts */ @@ -301,10 +285,10 @@ static irqreturn_t vm_interrupt(int irq, void *opa...
2019 Jul 02
2
[PATCH v2] virtio-mmio: add error check for platform_get_irq
...rtio_mmio_device(vdev); - unsigned int irq = platform_get_irq(vm_dev->pdev, 0); + int irq = platform_get_irq(vm_dev->pdev, 0); int i, err, queue_idx = 0; + if (irq < 0) { + dev_err(&vdev->dev, "Cannot get IRQ resource\n"); + return irq; + } + err = request_irq(irq, vm_interrupt, IRQF_SHARED, dev_name(&vdev->dev), vm_dev); if (err) -- 2.17.1
2019 Jul 02
2
[PATCH v2] virtio-mmio: add error check for platform_get_irq
...rtio_mmio_device(vdev); - unsigned int irq = platform_get_irq(vm_dev->pdev, 0); + int irq = platform_get_irq(vm_dev->pdev, 0); int i, err, queue_idx = 0; + if (irq < 0) { + dev_err(&vdev->dev, "Cannot get IRQ resource\n"); + return irq; + } + err = request_irq(irq, vm_interrupt, IRQF_SHARED, dev_name(&vdev->dev), vm_dev); if (err) -- 2.17.1
2023 Oct 10
1
[PATCH 2/2] virtio-mmio: Support multiple interrupts per device
...; + unsigned int irq; > }; > > > @@ -297,7 +305,7 @@ static bool vm_notify_with_data(struct virtqueue *vq) > return true; > } > > -/* Notify all virtqueues on an interrupt. */ > +/* Notify all or some virtqueues on an interrupt. */ > static irqreturn_t vm_interrupt(int irq, void *opaque) > { > struct virtio_mmio_device *vm_dev = opaque; > @@ -308,20 +316,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) > > /* Read and acknowledge interrupts */ > status = readl(vm_dev->base + VIRTIO_MMIO_INTERRUPT_STATU...
2023 Oct 10
1
[PATCH 2/2] virtio-mmio: Support multiple interrupts per device
...; + unsigned int irq; > }; > > > @@ -297,7 +305,7 @@ static bool vm_notify_with_data(struct virtqueue *vq) > return true; > } > > -/* Notify all virtqueues on an interrupt. */ > +/* Notify all or some virtqueues on an interrupt. */ > static irqreturn_t vm_interrupt(int irq, void *opaque) > { > struct virtio_mmio_device *vm_dev = opaque; > @@ -308,20 +316,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) > > /* Read and acknowledge interrupts */ > status = readl(vm_dev->base + VIRTIO_MMIO_INTERRUPT_STATU...
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...(vm_dev->vdev.dev.driver, > + struct virtio_driver, driver); > + > + if (vdrv && vdrv->config_changed) > + vdrv->config_changed(&vm_dev->vdev); > + return IRQ_HANDLED; > +} > + > /* Notify all virtqueues on an interrupt. */ > -static irqreturn_t vm_interrupt(int irq, void *opaque) > +static irqreturn_t vm_vring_interrupt(int irq, void *opaque) > { > struct virtio_mmio_device *vm_dev = opaque; > struct virtio_mmio_vq_info *info; > - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, > - struct virtio_driver, d...
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...>> + > >> + if (vdrv && vdrv->config_changed) > >> + vdrv->config_changed(&vm_dev->vdev); > >> + return IRQ_HANDLED; > >> +} > >> + > >> /* Notify all virtqueues on an interrupt. */ > >> -static irqreturn_t vm_interrupt(int irq, void *opaque) > >> +static irqreturn_t vm_vring_interrupt(int irq, void *opaque) > >> { > >> struct virtio_mmio_device *vm_dev = opaque; > >> struct virtio_mmio_vq_info *info; > >> - struct virtio_driver *vdrv = container_of(vm_dev->vdev...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...; + struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, + struct virtio_driver, driver); + + if (vdrv && vdrv->config_changed) + vdrv->config_changed(&vm_dev->vdev); + return IRQ_HANDLED; +} + /* Notify all virtqueues on an interrupt. */ -static irqreturn_t vm_interrupt(int irq, void *opaque) +static irqreturn_t vm_vring_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; struct virtio_mmio_vq_info *info; - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, - struct virtio_driver, driver); - unsigned long status...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...; + struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, + struct virtio_driver, driver); + + if (vdrv && vdrv->config_changed) + vdrv->config_changed(&vm_dev->vdev); + return IRQ_HANDLED; +} + /* Notify all virtqueues on an interrupt. */ -static irqreturn_t vm_interrupt(int irq, void *opaque) +static irqreturn_t vm_vring_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; struct virtio_mmio_vq_info *info; - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, - struct virtio_driver, driver); - unsigned long status...
2014 Sep 22
1
[PATCH] virtio: unify config_changed handling
..._changed); + static int virtio_init(void) { if (bus_register(&virtio_bus) != 0) diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index c600ccf..ef9a165 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -234,8 +234,6 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; struct virtio_mmio_vq_info *info; - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, - struct virtio_driver, driver); unsigned long status; unsigned long flags; irqreturn_t ret = IRQ_NONE; @@ -244...
2014 Sep 22
1
[PATCH] virtio: unify config_changed handling
..._changed); + static int virtio_init(void) { if (bus_register(&virtio_bus) != 0) diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index c600ccf..ef9a165 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -234,8 +234,6 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; struct virtio_mmio_vq_info *info; - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, - struct virtio_driver, driver); unsigned long status; unsigned long flags; irqreturn_t ret = IRQ_NONE; @@ -244...