Patchwork [v2] kvm-all.c: Move init of irqchip_inject_ioctl out of kvm_irqchip_create()

login
register
mail settings
Submitter Peter Maydell
Date Aug. 15, 2012, 11:08 a.m.
Message ID <1345028893-2388-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/177625/
State New
Headers show

Comments

Peter Maydell - Aug. 15, 2012, 11:08 a.m.
Move the init of the irqchip_inject_ioctl field of KVMState out of
kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
can be used even when no irqchip is created (for architectures
that support async interrupt notification even without an in
kernel irqchip).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Changes v1->v2: move whe whole chunk of init code, for both
KVM_IRQ_LINE and KVM_IRQ_LINE_STATUS possibilities.

 kvm-all.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
Marcelo Tosatti - Aug. 15, 2012, 6:34 p.m.
On Wed, Aug 15, 2012 at 12:08:13PM +0100, Peter Maydell wrote:
> Move the init of the irqchip_inject_ioctl field of KVMState out of
> kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
> can be used even when no irqchip is created (for architectures
> that support async interrupt notification even without an in
> kernel irqchip).
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Changes v1->v2: move whe whole chunk of init code, for both
> KVM_IRQ_LINE and KVM_IRQ_LINE_STATUS possibilities.
> 
>  kvm-all.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)

Applied, thanks.
Jan Kiszka - Aug. 21, 2012, 8:19 a.m.
On 2012-08-15 13:08, Peter Maydell wrote:
> Move the init of the irqchip_inject_ioctl field of KVMState out of
> kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
> can be used even when no irqchip is created (for architectures
> that support async interrupt notification even without an in
> kernel irqchip).
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Changes v1->v2: move whe whole chunk of init code, for both
> KVM_IRQ_LINE and KVM_IRQ_LINE_STATUS possibilities.
> 
>  kvm-all.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/kvm-all.c b/kvm-all.c
> index 34b02c1..72d84a2 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -1200,10 +1200,6 @@ static int kvm_irqchip_create(KVMState *s)
>          return ret;
>      }
>  
> -    s->irqchip_inject_ioctl = KVM_IRQ_LINE;
> -    if (kvm_check_extension(s, KVM_CAP_IRQ_INJECT_STATUS)) {
> -        s->irqchip_inject_ioctl = KVM_IRQ_LINE_STATUS;
> -    }
>      kvm_kernel_irqchip = true;
>      /* If we have an in-kernel IRQ chip then we must have asynchronous
>       * interrupt delivery (though the reverse is not necessarily true)
> @@ -1350,6 +1346,11 @@ int kvm_init(void)
>      s->direct_msi = (kvm_check_extension(s, KVM_CAP_SIGNAL_MSI) > 0);
>  #endif
>  
> +    s->irqchip_inject_ioctl = KVM_IRQ_LINE;
> +    if (kvm_check_extension(s, KVM_CAP_IRQ_INJECT_STATUS)) {
> +        s->irqchip_inject_ioctl = KVM_IRQ_LINE_STATUS;
> +    }
> +
>      ret = kvm_arch_init(s);
>      if (ret < 0) {
>          goto err;
> 

As it's not yet merged, some late comment: irqchip_inject_ioctl should
be renamed as well. irq_inject_ioctl?

Jan
Peter Maydell - Aug. 21, 2012, 8:25 a.m.
On 21 August 2012 09:19, Jan Kiszka <jan.kiszka@siemens.com> wrote:
> On 2012-08-15 13:08, Peter Maydell wrote:
>> Move the init of the irqchip_inject_ioctl field of KVMState out of
>> kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
>> can be used even when no irqchip is created (for architectures
>> that support async interrupt notification even without an in
>> kernel irqchip).

> As it's not yet merged, some late comment: irqchip_inject_ioctl should
> be renamed as well. irq_inject_ioctl?

If we're changing it anyway, IIRC Avi didn't like the term "inject"
here?

-- PMM
Jan Kiszka - Aug. 21, 2012, 10:27 a.m.
On 2012-08-21 10:25, Peter Maydell wrote:
> On 21 August 2012 09:19, Jan Kiszka <jan.kiszka@siemens.com> wrote:
>> On 2012-08-15 13:08, Peter Maydell wrote:
>>> Move the init of the irqchip_inject_ioctl field of KVMState out of
>>> kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
>>> can be used even when no irqchip is created (for architectures
>>> that support async interrupt notification even without an in
>>> kernel irqchip).
> 
>> As it's not yet merged, some late comment: irqchip_inject_ioctl should
>> be renamed as well. irq_inject_ioctl?
> 
> If we're changing it anyway, IIRC Avi didn't like the term "inject"
> here?

Then irq_set_ioctl.

Jan
Marcelo Tosatti - Aug. 23, 2012, 9:13 a.m.
On Tue, Aug 21, 2012 at 12:27:51PM +0200, Jan Kiszka wrote:
> On 2012-08-21 10:25, Peter Maydell wrote:
> > On 21 August 2012 09:19, Jan Kiszka <jan.kiszka@siemens.com> wrote:
> >> On 2012-08-15 13:08, Peter Maydell wrote:
> >>> Move the init of the irqchip_inject_ioctl field of KVMState out of
> >>> kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
> >>> can be used even when no irqchip is created (for architectures
> >>> that support async interrupt notification even without an in
> >>> kernel irqchip).
> > 
> >> As it's not yet merged, some late comment: irqchip_inject_ioctl should
> >> be renamed as well. irq_inject_ioctl?
> > 
> > If we're changing it anyway, IIRC Avi didn't like the term "inject"
> > here?
> 
> Then irq_set_ioctl.
> 
> Jan

It is merged, please send a follow patch.
Peter Maydell - Aug. 23, 2012, 2:13 p.m.
On 23 August 2012 10:13, Marcelo Tosatti <mtosatti@redhat.com> wrote:
> On Tue, Aug 21, 2012 at 12:27:51PM +0200, Jan Kiszka wrote:
>> On 2012-08-21 10:25, Peter Maydell wrote:
>> > On 21 August 2012 09:19, Jan Kiszka <jan.kiszka@siemens.com> wrote:
>> >> As it's not yet merged, some late comment: irqchip_inject_ioctl should
>> >> be renamed as well. irq_inject_ioctl?
>> >
>> > If we're changing it anyway, IIRC Avi didn't like the term "inject"
>> > here?
>>
>> Then irq_set_ioctl.
>>
>> Jan
>
> It is merged, please send a follow patch.

Sure, no problem (I was hovering on the edge of suggesting that
the field rename should be a separate patch anyhow.)

-- PMM

Patch

diff --git a/kvm-all.c b/kvm-all.c
index 34b02c1..72d84a2 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1200,10 +1200,6 @@  static int kvm_irqchip_create(KVMState *s)
         return ret;
     }
 
-    s->irqchip_inject_ioctl = KVM_IRQ_LINE;
-    if (kvm_check_extension(s, KVM_CAP_IRQ_INJECT_STATUS)) {
-        s->irqchip_inject_ioctl = KVM_IRQ_LINE_STATUS;
-    }
     kvm_kernel_irqchip = true;
     /* If we have an in-kernel IRQ chip then we must have asynchronous
      * interrupt delivery (though the reverse is not necessarily true)
@@ -1350,6 +1346,11 @@  int kvm_init(void)
     s->direct_msi = (kvm_check_extension(s, KVM_CAP_SIGNAL_MSI) > 0);
 #endif
 
+    s->irqchip_inject_ioctl = KVM_IRQ_LINE;
+    if (kvm_check_extension(s, KVM_CAP_IRQ_INJECT_STATUS)) {
+        s->irqchip_inject_ioctl = KVM_IRQ_LINE_STATUS;
+    }
+
     ret = kvm_arch_init(s);
     if (ret < 0) {
         goto err;