Patchwork kvm: Don't abort on kvm_irqchip_add_msi_route()

login
register
mail settings
Submitter Alex Williamson
Date June 25, 2012, 3:40 p.m.
Message ID <20120625154024.3598.7168.stgit@bling.home>
Download mbox | patch
Permalink /patch/167140/
State New
Headers show

Comments

Alex Williamson - June 25, 2012, 3:40 p.m.
Anyone using these functions has to be prepared that irqchip
support may not be present.  It shouldn't be up to the core
code to determine whether this is a fatal error.  Currently
code written as:

virq = kvm_irqchip_add_msi_route(...)
if (virq < 0) {
    <slow path>
} else {
    <fast path>
}

works on x86 with and without kvm irqchip enabled, works
without kvm support compiled in, but aborts() on !x86 with
kvm support.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
---

 kvm-all.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Jan Kiszka - June 25, 2012, 8:28 p.m.
On 2012-06-25 17:40, Alex Williamson wrote:
> Anyone using these functions has to be prepared that irqchip
> support may not be present.  It shouldn't be up to the core
> code to determine whether this is a fatal error.  Currently
> code written as:
> 
> virq = kvm_irqchip_add_msi_route(...)
> if (virq < 0) {
>     <slow path>
> } else {
>     <fast path>
> }
> 
> works on x86 with and without kvm irqchip enabled, works
> without kvm support compiled in, but aborts() on !x86 with
> kvm support.
> 
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> ---
> 
>  kvm-all.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kvm-all.c b/kvm-all.c
> index 45d00cd..b2ed702 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -1146,7 +1146,7 @@ int kvm_irqchip_send_msi(KVMState *s, MSIMessage msg)
>  
>  int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
>  {
> -    abort();
> +    return -ENOSYS;
>  }
>  
>  static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign)
> 

Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
Marcelo Tosatti - June 29, 2012, 11:02 p.m.
On Mon, Jun 25, 2012 at 09:40:39AM -0600, Alex Williamson wrote:
> Anyone using these functions has to be prepared that irqchip
> support may not be present.  It shouldn't be up to the core
> code to determine whether this is a fatal error.  Currently
> code written as:
> 
> virq = kvm_irqchip_add_msi_route(...)
> if (virq < 0) {
>     <slow path>
> } else {
>     <fast path>
> }
> 
> works on x86 with and without kvm irqchip enabled, works
> without kvm support compiled in, but aborts() on !x86 with
> kvm support.
> 
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>

Applied to uq/master.

Patch

diff --git a/kvm-all.c b/kvm-all.c
index 45d00cd..b2ed702 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1146,7 +1146,7 @@  int kvm_irqchip_send_msi(KVMState *s, MSIMessage msg)
 
 int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
 {
-    abort();
+    return -ENOSYS;
 }
 
 static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign)