Re: [PATCH v3 01/10] VFIO: platform: registration of a dummy IRQ bypass producer

2015-08-17 Thread Eric Auger
Hi Alex,
On 08/12/2015 08:56 PM, Alex Williamson wrote:
> On Mon, 2015-08-10 at 15:20 +0200, Eric Auger wrote:
>> Register a dummy producer with void callbacks
>>
>> Signed-off-by: Eric Auger 
>>
>> ---
>>
>> v2 -> v3:
>> - rename vfio_platform_irq_bypass_resume into *_start
>> ---
>>  drivers/vfio/platform/vfio_platform_irq.c | 32 
>> +++
>>  drivers/vfio/platform/vfio_platform_private.h |  2 ++
>>  2 files changed, 34 insertions(+)
>>
>> diff --git a/drivers/vfio/platform/vfio_platform_irq.c 
>> b/drivers/vfio/platform/vfio_platform_irq.c
>> index 88bba57..b5cb8c7 100644
>> --- a/drivers/vfio/platform/vfio_platform_irq.c
>> +++ b/drivers/vfio/platform/vfio_platform_irq.c
>> @@ -20,6 +20,7 @@
>>  #include 
>>  #include 
>>  #include 
>> +#include 
>>  
>>  #include "vfio_platform_private.h"
>>  
>> @@ -177,6 +178,27 @@ static irqreturn_t vfio_irq_handler(int irq, void 
>> *dev_id)
>>  return IRQ_HANDLED;
>>  }
>>  
>> +static void vfio_platform_irq_bypass_stop(struct irq_bypass_producer *prod)
>> +{
>> +}
>> +
>> +static void vfio_platform_irq_bypass_start(struct irq_bypass_producer *prod)
>> +{
>> +}
>> +
>> +static int vfio_platform_irq_bypass_add_consumer(
>> +struct irq_bypass_producer *prod,
>> +struct irq_bypass_consumer *cons)
>> +{
>> +return 0;
>> +}
>> +
>> +static void vfio_platform_irq_bypass_del_consumer(
>> +struct irq_bypass_producer *prod,
>> +struct irq_bypass_consumer *cons)
>> +{
>> +}
>> +
>>  static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
>>  int fd, irq_handler_t handler)
>>  {
>> @@ -186,6 +208,7 @@ static int vfio_set_trigger(struct vfio_platform_device 
>> *vdev, int index,
>>  
>>  if (irq->trigger) {
>>  free_irq(irq->hwirq, irq);
>> +irq_bypass_unregister_producer(>producer);
>>  kfree(irq->name);
>>  eventfd_ctx_put(irq->trigger);
>>  irq->trigger = NULL;
>> @@ -216,6 +239,15 @@ static int vfio_set_trigger(struct vfio_platform_device 
>> *vdev, int index,
>>  return ret;
>>  }
>>  
>> +irq->producer.token = (void *)trigger;
>> +irq->producer.irq = irq->hwirq;
>> +irq->producer.add_consumer = vfio_platform_irq_bypass_add_consumer;
>> +irq->producer.del_consumer = vfio_platform_irq_bypass_del_consumer;
>> +irq->producer.stop = vfio_platform_irq_bypass_stop;
>> +irq->producer.start = vfio_platform_irq_bypass_start;
>> +ret = irq_bypass_register_producer(>producer);
>> +WARN_ON(ret);
> 
> For what purpose?
Yes. I will replace by a simple pr_info as done in eventfd.c.

Best Regards

Eric
> 
>> +
>>  if (!irq->masked)
>>  enable_irq(irq->hwirq);
>>  
>> diff --git a/drivers/vfio/platform/vfio_platform_private.h 
>> b/drivers/vfio/platform/vfio_platform_private.h
>> index 1c9b3d5..1d2d4d6 100644
>> --- a/drivers/vfio/platform/vfio_platform_private.h
>> +++ b/drivers/vfio/platform/vfio_platform_private.h
>> @@ -17,6 +17,7 @@
>>  
>>  #include 
>>  #include 
>> +#include 
>>  
>>  #define VFIO_PLATFORM_OFFSET_SHIFT   40
>>  #define VFIO_PLATFORM_OFFSET_MASK (((u64)(1) << VFIO_PLATFORM_OFFSET_SHIFT) 
>> - 1)
>> @@ -37,6 +38,7 @@ struct vfio_platform_irq {
>>  spinlock_t  lock;
>>  struct virqfd   *unmask;
>>  struct virqfd   *mask;
>> +struct irq_bypass_producer producer;
>>  };
>>  
>>  struct vfio_platform_region {
> 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 01/10] VFIO: platform: registration of a dummy IRQ bypass producer

2015-08-17 Thread Eric Auger
Hi Alex,
On 08/12/2015 08:56 PM, Alex Williamson wrote:
 On Mon, 2015-08-10 at 15:20 +0200, Eric Auger wrote:
 Register a dummy producer with void callbacks

 Signed-off-by: Eric Auger eric.au...@linaro.org

 ---

 v2 - v3:
 - rename vfio_platform_irq_bypass_resume into *_start
 ---
  drivers/vfio/platform/vfio_platform_irq.c | 32 
 +++
  drivers/vfio/platform/vfio_platform_private.h |  2 ++
  2 files changed, 34 insertions(+)

 diff --git a/drivers/vfio/platform/vfio_platform_irq.c 
 b/drivers/vfio/platform/vfio_platform_irq.c
 index 88bba57..b5cb8c7 100644
 --- a/drivers/vfio/platform/vfio_platform_irq.c
 +++ b/drivers/vfio/platform/vfio_platform_irq.c
 @@ -20,6 +20,7 @@
  #include linux/types.h
  #include linux/vfio.h
  #include linux/irq.h
 +#include linux/irqbypass.h
  
  #include vfio_platform_private.h
  
 @@ -177,6 +178,27 @@ static irqreturn_t vfio_irq_handler(int irq, void 
 *dev_id)
  return IRQ_HANDLED;
  }
  
 +static void vfio_platform_irq_bypass_stop(struct irq_bypass_producer *prod)
 +{
 +}
 +
 +static void vfio_platform_irq_bypass_start(struct irq_bypass_producer *prod)
 +{
 +}
 +
 +static int vfio_platform_irq_bypass_add_consumer(
 +struct irq_bypass_producer *prod,
 +struct irq_bypass_consumer *cons)
 +{
 +return 0;
 +}
 +
 +static void vfio_platform_irq_bypass_del_consumer(
 +struct irq_bypass_producer *prod,
 +struct irq_bypass_consumer *cons)
 +{
 +}
 +
  static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
  int fd, irq_handler_t handler)
  {
 @@ -186,6 +208,7 @@ static int vfio_set_trigger(struct vfio_platform_device 
 *vdev, int index,
  
  if (irq-trigger) {
  free_irq(irq-hwirq, irq);
 +irq_bypass_unregister_producer(irq-producer);
  kfree(irq-name);
  eventfd_ctx_put(irq-trigger);
  irq-trigger = NULL;
 @@ -216,6 +239,15 @@ static int vfio_set_trigger(struct vfio_platform_device 
 *vdev, int index,
  return ret;
  }
  
 +irq-producer.token = (void *)trigger;
 +irq-producer.irq = irq-hwirq;
 +irq-producer.add_consumer = vfio_platform_irq_bypass_add_consumer;
 +irq-producer.del_consumer = vfio_platform_irq_bypass_del_consumer;
 +irq-producer.stop = vfio_platform_irq_bypass_stop;
 +irq-producer.start = vfio_platform_irq_bypass_start;
 +ret = irq_bypass_register_producer(irq-producer);
 +WARN_ON(ret);
 
 For what purpose?
Yes. I will replace by a simple pr_info as done in eventfd.c.

Best Regards

Eric
 
 +
  if (!irq-masked)
  enable_irq(irq-hwirq);
  
 diff --git a/drivers/vfio/platform/vfio_platform_private.h 
 b/drivers/vfio/platform/vfio_platform_private.h
 index 1c9b3d5..1d2d4d6 100644
 --- a/drivers/vfio/platform/vfio_platform_private.h
 +++ b/drivers/vfio/platform/vfio_platform_private.h
 @@ -17,6 +17,7 @@
  
  #include linux/types.h
  #include linux/interrupt.h
 +#include linux/irqbypass.h
  
  #define VFIO_PLATFORM_OFFSET_SHIFT   40
  #define VFIO_PLATFORM_OFFSET_MASK (((u64)(1)  VFIO_PLATFORM_OFFSET_SHIFT) 
 - 1)
 @@ -37,6 +38,7 @@ struct vfio_platform_irq {
  spinlock_t  lock;
  struct virqfd   *unmask;
  struct virqfd   *mask;
 +struct irq_bypass_producer producer;
  };
  
  struct vfio_platform_region {
 
 
 

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 01/10] VFIO: platform: registration of a dummy IRQ bypass producer

2015-08-12 Thread Alex Williamson
On Mon, 2015-08-10 at 15:20 +0200, Eric Auger wrote:
> Register a dummy producer with void callbacks
> 
> Signed-off-by: Eric Auger 
> 
> ---
> 
> v2 -> v3:
> - rename vfio_platform_irq_bypass_resume into *_start
> ---
>  drivers/vfio/platform/vfio_platform_irq.c | 32 
> +++
>  drivers/vfio/platform/vfio_platform_private.h |  2 ++
>  2 files changed, 34 insertions(+)
> 
> diff --git a/drivers/vfio/platform/vfio_platform_irq.c 
> b/drivers/vfio/platform/vfio_platform_irq.c
> index 88bba57..b5cb8c7 100644
> --- a/drivers/vfio/platform/vfio_platform_irq.c
> +++ b/drivers/vfio/platform/vfio_platform_irq.c
> @@ -20,6 +20,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include "vfio_platform_private.h"
>  
> @@ -177,6 +178,27 @@ static irqreturn_t vfio_irq_handler(int irq, void 
> *dev_id)
>   return IRQ_HANDLED;
>  }
>  
> +static void vfio_platform_irq_bypass_stop(struct irq_bypass_producer *prod)
> +{
> +}
> +
> +static void vfio_platform_irq_bypass_start(struct irq_bypass_producer *prod)
> +{
> +}
> +
> +static int vfio_platform_irq_bypass_add_consumer(
> + struct irq_bypass_producer *prod,
> + struct irq_bypass_consumer *cons)
> +{
> + return 0;
> +}
> +
> +static void vfio_platform_irq_bypass_del_consumer(
> + struct irq_bypass_producer *prod,
> + struct irq_bypass_consumer *cons)
> +{
> +}
> +
>  static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
>   int fd, irq_handler_t handler)
>  {
> @@ -186,6 +208,7 @@ static int vfio_set_trigger(struct vfio_platform_device 
> *vdev, int index,
>  
>   if (irq->trigger) {
>   free_irq(irq->hwirq, irq);
> + irq_bypass_unregister_producer(>producer);
>   kfree(irq->name);
>   eventfd_ctx_put(irq->trigger);
>   irq->trigger = NULL;
> @@ -216,6 +239,15 @@ static int vfio_set_trigger(struct vfio_platform_device 
> *vdev, int index,
>   return ret;
>   }
>  
> + irq->producer.token = (void *)trigger;
> + irq->producer.irq = irq->hwirq;
> + irq->producer.add_consumer = vfio_platform_irq_bypass_add_consumer;
> + irq->producer.del_consumer = vfio_platform_irq_bypass_del_consumer;
> + irq->producer.stop = vfio_platform_irq_bypass_stop;
> + irq->producer.start = vfio_platform_irq_bypass_start;
> + ret = irq_bypass_register_producer(>producer);
> + WARN_ON(ret);

For what purpose?

> +
>   if (!irq->masked)
>   enable_irq(irq->hwirq);
>  
> diff --git a/drivers/vfio/platform/vfio_platform_private.h 
> b/drivers/vfio/platform/vfio_platform_private.h
> index 1c9b3d5..1d2d4d6 100644
> --- a/drivers/vfio/platform/vfio_platform_private.h
> +++ b/drivers/vfio/platform/vfio_platform_private.h
> @@ -17,6 +17,7 @@
>  
>  #include 
>  #include 
> +#include 
>  
>  #define VFIO_PLATFORM_OFFSET_SHIFT   40
>  #define VFIO_PLATFORM_OFFSET_MASK (((u64)(1) << VFIO_PLATFORM_OFFSET_SHIFT) 
> - 1)
> @@ -37,6 +38,7 @@ struct vfio_platform_irq {
>   spinlock_t  lock;
>   struct virqfd   *unmask;
>   struct virqfd   *mask;
> + struct irq_bypass_producer producer;
>  };
>  
>  struct vfio_platform_region {



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 01/10] VFIO: platform: registration of a dummy IRQ bypass producer

2015-08-12 Thread Alex Williamson
On Mon, 2015-08-10 at 15:20 +0200, Eric Auger wrote:
 Register a dummy producer with void callbacks
 
 Signed-off-by: Eric Auger eric.au...@linaro.org
 
 ---
 
 v2 - v3:
 - rename vfio_platform_irq_bypass_resume into *_start
 ---
  drivers/vfio/platform/vfio_platform_irq.c | 32 
 +++
  drivers/vfio/platform/vfio_platform_private.h |  2 ++
  2 files changed, 34 insertions(+)
 
 diff --git a/drivers/vfio/platform/vfio_platform_irq.c 
 b/drivers/vfio/platform/vfio_platform_irq.c
 index 88bba57..b5cb8c7 100644
 --- a/drivers/vfio/platform/vfio_platform_irq.c
 +++ b/drivers/vfio/platform/vfio_platform_irq.c
 @@ -20,6 +20,7 @@
  #include linux/types.h
  #include linux/vfio.h
  #include linux/irq.h
 +#include linux/irqbypass.h
  
  #include vfio_platform_private.h
  
 @@ -177,6 +178,27 @@ static irqreturn_t vfio_irq_handler(int irq, void 
 *dev_id)
   return IRQ_HANDLED;
  }
  
 +static void vfio_platform_irq_bypass_stop(struct irq_bypass_producer *prod)
 +{
 +}
 +
 +static void vfio_platform_irq_bypass_start(struct irq_bypass_producer *prod)
 +{
 +}
 +
 +static int vfio_platform_irq_bypass_add_consumer(
 + struct irq_bypass_producer *prod,
 + struct irq_bypass_consumer *cons)
 +{
 + return 0;
 +}
 +
 +static void vfio_platform_irq_bypass_del_consumer(
 + struct irq_bypass_producer *prod,
 + struct irq_bypass_consumer *cons)
 +{
 +}
 +
  static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
   int fd, irq_handler_t handler)
  {
 @@ -186,6 +208,7 @@ static int vfio_set_trigger(struct vfio_platform_device 
 *vdev, int index,
  
   if (irq-trigger) {
   free_irq(irq-hwirq, irq);
 + irq_bypass_unregister_producer(irq-producer);
   kfree(irq-name);
   eventfd_ctx_put(irq-trigger);
   irq-trigger = NULL;
 @@ -216,6 +239,15 @@ static int vfio_set_trigger(struct vfio_platform_device 
 *vdev, int index,
   return ret;
   }
  
 + irq-producer.token = (void *)trigger;
 + irq-producer.irq = irq-hwirq;
 + irq-producer.add_consumer = vfio_platform_irq_bypass_add_consumer;
 + irq-producer.del_consumer = vfio_platform_irq_bypass_del_consumer;
 + irq-producer.stop = vfio_platform_irq_bypass_stop;
 + irq-producer.start = vfio_platform_irq_bypass_start;
 + ret = irq_bypass_register_producer(irq-producer);
 + WARN_ON(ret);

For what purpose?

 +
   if (!irq-masked)
   enable_irq(irq-hwirq);
  
 diff --git a/drivers/vfio/platform/vfio_platform_private.h 
 b/drivers/vfio/platform/vfio_platform_private.h
 index 1c9b3d5..1d2d4d6 100644
 --- a/drivers/vfio/platform/vfio_platform_private.h
 +++ b/drivers/vfio/platform/vfio_platform_private.h
 @@ -17,6 +17,7 @@
  
  #include linux/types.h
  #include linux/interrupt.h
 +#include linux/irqbypass.h
  
  #define VFIO_PLATFORM_OFFSET_SHIFT   40
  #define VFIO_PLATFORM_OFFSET_MASK (((u64)(1)  VFIO_PLATFORM_OFFSET_SHIFT) 
 - 1)
 @@ -37,6 +38,7 @@ struct vfio_platform_irq {
   spinlock_t  lock;
   struct virqfd   *unmask;
   struct virqfd   *mask;
 + struct irq_bypass_producer producer;
  };
  
  struct vfio_platform_region {



--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 01/10] VFIO: platform: registration of a dummy IRQ bypass producer

2015-08-10 Thread Eric Auger
Register a dummy producer with void callbacks

Signed-off-by: Eric Auger 

---

v2 -> v3:
- rename vfio_platform_irq_bypass_resume into *_start
---
 drivers/vfio/platform/vfio_platform_irq.c | 32 +++
 drivers/vfio/platform/vfio_platform_private.h |  2 ++
 2 files changed, 34 insertions(+)

diff --git a/drivers/vfio/platform/vfio_platform_irq.c 
b/drivers/vfio/platform/vfio_platform_irq.c
index 88bba57..b5cb8c7 100644
--- a/drivers/vfio/platform/vfio_platform_irq.c
+++ b/drivers/vfio/platform/vfio_platform_irq.c
@@ -20,6 +20,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "vfio_platform_private.h"
 
@@ -177,6 +178,27 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id)
return IRQ_HANDLED;
 }
 
+static void vfio_platform_irq_bypass_stop(struct irq_bypass_producer *prod)
+{
+}
+
+static void vfio_platform_irq_bypass_start(struct irq_bypass_producer *prod)
+{
+}
+
+static int vfio_platform_irq_bypass_add_consumer(
+   struct irq_bypass_producer *prod,
+   struct irq_bypass_consumer *cons)
+{
+   return 0;
+}
+
+static void vfio_platform_irq_bypass_del_consumer(
+   struct irq_bypass_producer *prod,
+   struct irq_bypass_consumer *cons)
+{
+}
+
 static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
int fd, irq_handler_t handler)
 {
@@ -186,6 +208,7 @@ static int vfio_set_trigger(struct vfio_platform_device 
*vdev, int index,
 
if (irq->trigger) {
free_irq(irq->hwirq, irq);
+   irq_bypass_unregister_producer(>producer);
kfree(irq->name);
eventfd_ctx_put(irq->trigger);
irq->trigger = NULL;
@@ -216,6 +239,15 @@ static int vfio_set_trigger(struct vfio_platform_device 
*vdev, int index,
return ret;
}
 
+   irq->producer.token = (void *)trigger;
+   irq->producer.irq = irq->hwirq;
+   irq->producer.add_consumer = vfio_platform_irq_bypass_add_consumer;
+   irq->producer.del_consumer = vfio_platform_irq_bypass_del_consumer;
+   irq->producer.stop = vfio_platform_irq_bypass_stop;
+   irq->producer.start = vfio_platform_irq_bypass_start;
+   ret = irq_bypass_register_producer(>producer);
+   WARN_ON(ret);
+
if (!irq->masked)
enable_irq(irq->hwirq);
 
diff --git a/drivers/vfio/platform/vfio_platform_private.h 
b/drivers/vfio/platform/vfio_platform_private.h
index 1c9b3d5..1d2d4d6 100644
--- a/drivers/vfio/platform/vfio_platform_private.h
+++ b/drivers/vfio/platform/vfio_platform_private.h
@@ -17,6 +17,7 @@
 
 #include 
 #include 
+#include 
 
 #define VFIO_PLATFORM_OFFSET_SHIFT   40
 #define VFIO_PLATFORM_OFFSET_MASK (((u64)(1) << VFIO_PLATFORM_OFFSET_SHIFT) - 
1)
@@ -37,6 +38,7 @@ struct vfio_platform_irq {
spinlock_t  lock;
struct virqfd   *unmask;
struct virqfd   *mask;
+   struct irq_bypass_producer producer;
 };
 
 struct vfio_platform_region {
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 01/10] VFIO: platform: registration of a dummy IRQ bypass producer

2015-08-10 Thread Eric Auger
Register a dummy producer with void callbacks

Signed-off-by: Eric Auger eric.au...@linaro.org

---

v2 - v3:
- rename vfio_platform_irq_bypass_resume into *_start
---
 drivers/vfio/platform/vfio_platform_irq.c | 32 +++
 drivers/vfio/platform/vfio_platform_private.h |  2 ++
 2 files changed, 34 insertions(+)

diff --git a/drivers/vfio/platform/vfio_platform_irq.c 
b/drivers/vfio/platform/vfio_platform_irq.c
index 88bba57..b5cb8c7 100644
--- a/drivers/vfio/platform/vfio_platform_irq.c
+++ b/drivers/vfio/platform/vfio_platform_irq.c
@@ -20,6 +20,7 @@
 #include linux/types.h
 #include linux/vfio.h
 #include linux/irq.h
+#include linux/irqbypass.h
 
 #include vfio_platform_private.h
 
@@ -177,6 +178,27 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id)
return IRQ_HANDLED;
 }
 
+static void vfio_platform_irq_bypass_stop(struct irq_bypass_producer *prod)
+{
+}
+
+static void vfio_platform_irq_bypass_start(struct irq_bypass_producer *prod)
+{
+}
+
+static int vfio_platform_irq_bypass_add_consumer(
+   struct irq_bypass_producer *prod,
+   struct irq_bypass_consumer *cons)
+{
+   return 0;
+}
+
+static void vfio_platform_irq_bypass_del_consumer(
+   struct irq_bypass_producer *prod,
+   struct irq_bypass_consumer *cons)
+{
+}
+
 static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
int fd, irq_handler_t handler)
 {
@@ -186,6 +208,7 @@ static int vfio_set_trigger(struct vfio_platform_device 
*vdev, int index,
 
if (irq-trigger) {
free_irq(irq-hwirq, irq);
+   irq_bypass_unregister_producer(irq-producer);
kfree(irq-name);
eventfd_ctx_put(irq-trigger);
irq-trigger = NULL;
@@ -216,6 +239,15 @@ static int vfio_set_trigger(struct vfio_platform_device 
*vdev, int index,
return ret;
}
 
+   irq-producer.token = (void *)trigger;
+   irq-producer.irq = irq-hwirq;
+   irq-producer.add_consumer = vfio_platform_irq_bypass_add_consumer;
+   irq-producer.del_consumer = vfio_platform_irq_bypass_del_consumer;
+   irq-producer.stop = vfio_platform_irq_bypass_stop;
+   irq-producer.start = vfio_platform_irq_bypass_start;
+   ret = irq_bypass_register_producer(irq-producer);
+   WARN_ON(ret);
+
if (!irq-masked)
enable_irq(irq-hwirq);
 
diff --git a/drivers/vfio/platform/vfio_platform_private.h 
b/drivers/vfio/platform/vfio_platform_private.h
index 1c9b3d5..1d2d4d6 100644
--- a/drivers/vfio/platform/vfio_platform_private.h
+++ b/drivers/vfio/platform/vfio_platform_private.h
@@ -17,6 +17,7 @@
 
 #include linux/types.h
 #include linux/interrupt.h
+#include linux/irqbypass.h
 
 #define VFIO_PLATFORM_OFFSET_SHIFT   40
 #define VFIO_PLATFORM_OFFSET_MASK (((u64)(1)  VFIO_PLATFORM_OFFSET_SHIFT) - 
1)
@@ -37,6 +38,7 @@ struct vfio_platform_irq {
spinlock_t  lock;
struct virqfd   *unmask;
struct virqfd   *mask;
+   struct irq_bypass_producer producer;
 };
 
 struct vfio_platform_region {
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/