All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] x86/pv: Trivial improvements to callback handling
@ 2018-03-15 11:58 Andrew Cooper
  2018-03-15 11:58 ` [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback() Andrew Cooper
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Andrew Cooper @ 2018-03-15 11:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper

Andrew Cooper (3):
  x86/pv: Avoid locked bit manipulation in register_guest_callback()
  x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart
  x86/pv: Minor tweaks to {,compat_}register_guest_callback()

 xen/arch/x86/pv/callback.c | 103 +++++++++++++++------------------------------
 1 file changed, 34 insertions(+), 69 deletions(-)

-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback()
  2018-03-15 11:58 [PATCH 0/3] x86/pv: Trivial improvements to callback handling Andrew Cooper
@ 2018-03-15 11:58 ` Andrew Cooper
  2018-03-19 16:59   ` Jan Beulich
  2018-03-20 12:30   ` Roger Pau Monné
  2018-03-15 11:58 ` [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart Andrew Cooper
  2018-03-15 11:58 ` [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback() Andrew Cooper
  2 siblings, 2 replies; 10+ messages in thread
From: Andrew Cooper @ 2018-03-15 11:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Changes to arch.vgc_flags are made to current in syncrhonous context only, and
don't need to be locked.  (The only other changes are via
arch_set_info_guest(), which operates on descheduled vcpus only).

Replace the {set,clear}_bit() calls with compiler-visible bitwise operations.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/pv/callback.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/pv/callback.c b/xen/arch/x86/pv/callback.c
index 29ae692..e6a17c5 100644
--- a/xen/arch/x86/pv/callback.c
+++ b/xen/arch/x86/pv/callback.c
@@ -88,21 +88,17 @@ static long register_guest_callback(struct callback_register *reg)
     case CALLBACKTYPE_failsafe:
         curr->arch.pv_vcpu.failsafe_callback_eip = reg->address;
         if ( reg->flags & CALLBACKF_mask_events )
-            set_bit(_VGCF_failsafe_disables_events,
-                    &curr->arch.vgc_flags);
+            curr->arch.vgc_flags |= VGCF_failsafe_disables_events;
         else
-            clear_bit(_VGCF_failsafe_disables_events,
-                      &curr->arch.vgc_flags);
+            curr->arch.vgc_flags &= ~VGCF_failsafe_disables_events;
         break;
 
     case CALLBACKTYPE_syscall:
         curr->arch.pv_vcpu.syscall_callback_eip  = reg->address;
         if ( reg->flags & CALLBACKF_mask_events )
-            set_bit(_VGCF_syscall_disables_events,
-                    &curr->arch.vgc_flags);
+            curr->arch.vgc_flags |= VGCF_syscall_disables_events;
         else
-            clear_bit(_VGCF_syscall_disables_events,
-                      &curr->arch.vgc_flags);
+            curr->arch.vgc_flags &= ~VGCF_syscall_disables_events;
         break;
 
     case CALLBACKTYPE_syscall32:
@@ -236,11 +232,9 @@ static long compat_register_guest_callback(struct compat_callback_register *reg)
         curr->arch.pv_vcpu.failsafe_callback_cs  = reg->address.cs;
         curr->arch.pv_vcpu.failsafe_callback_eip = reg->address.eip;
         if ( reg->flags & CALLBACKF_mask_events )
-            set_bit(_VGCF_failsafe_disables_events,
-                    &curr->arch.vgc_flags);
+            curr->arch.vgc_flags |= VGCF_failsafe_disables_events;
         else
-            clear_bit(_VGCF_failsafe_disables_events,
-                      &curr->arch.vgc_flags);
+            curr->arch.vgc_flags &= ~VGCF_failsafe_disables_events;
         break;
 
     case CALLBACKTYPE_syscall32:
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart
  2018-03-15 11:58 [PATCH 0/3] x86/pv: Trivial improvements to callback handling Andrew Cooper
  2018-03-15 11:58 ` [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback() Andrew Cooper
@ 2018-03-15 11:58 ` Andrew Cooper
  2018-03-19 17:05   ` Jan Beulich
  2018-03-20 12:33   ` Roger Pau Monné
  2018-03-15 11:58 ` [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback() Andrew Cooper
  2 siblings, 2 replies; 10+ messages in thread
From: Andrew Cooper @ 2018-03-15 11:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

These functions are almost identical.  They differ only in the error emitted
for the use of CALLBACKTYPE_syscall (which is inconsequential to guests), and
the type of their argument.

Have the callers pass the unreg.type parameter directly, avoiding the need for
differently typed parameters.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/pv/callback.c | 37 +++++--------------------------------
 1 file changed, 5 insertions(+), 32 deletions(-)

diff --git a/xen/arch/x86/pv/callback.c b/xen/arch/x86/pv/callback.c
index e6a17c5..866c835 100644
--- a/xen/arch/x86/pv/callback.c
+++ b/xen/arch/x86/pv/callback.c
@@ -125,11 +125,11 @@ static long register_guest_callback(struct callback_register *reg)
     return ret;
 }
 
-static long unregister_guest_callback(struct callback_unregister *unreg)
+static int unregister_guest_callback(unsigned int type)
 {
-    long ret;
+    int ret;
 
-    switch ( unreg->type )
+    switch ( type )
     {
     case CALLBACKTYPE_event:
     case CALLBACKTYPE_failsafe:
@@ -178,7 +178,7 @@ long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
         if ( copy_from_guest(&unreg, arg, 1) )
             break;
 
-        ret = unregister_guest_callback(&unreg);
+        ret = unregister_guest_callback(unreg.type);
     }
     break;
 
@@ -263,33 +263,6 @@ static long compat_register_guest_callback(struct compat_callback_register *reg)
     return ret;
 }
 
-static long compat_unregister_guest_callback(
-    struct compat_callback_unregister *unreg)
-{
-    long ret;
-
-    switch ( unreg->type )
-    {
-    case CALLBACKTYPE_event:
-    case CALLBACKTYPE_failsafe:
-    case CALLBACKTYPE_syscall32:
-    case CALLBACKTYPE_sysenter:
-        ret = -EINVAL;
-        break;
-
-    case CALLBACKTYPE_nmi:
-        unregister_guest_nmi_callback();
-        ret = 0;
-        break;
-
-    default:
-        ret = -ENOSYS;
-        break;
-    }
-
-    return ret;
-}
-
 long compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
 {
     long ret;
@@ -316,7 +289,7 @@ long compat_callback_op(int cmd, XEN_GUEST_HANDLE(void) arg)
         if ( copy_from_guest(&unreg, arg, 1) )
             break;
 
-        ret = compat_unregister_guest_callback(&unreg);
+        ret = unregister_guest_callback(unreg.type);
     }
     break;
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback()
  2018-03-15 11:58 [PATCH 0/3] x86/pv: Trivial improvements to callback handling Andrew Cooper
  2018-03-15 11:58 ` [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback() Andrew Cooper
  2018-03-15 11:58 ` [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart Andrew Cooper
@ 2018-03-15 11:58 ` Andrew Cooper
  2018-03-20 10:06   ` Jan Beulich
  2018-03-20 12:38   ` Roger Pau Monné
  2 siblings, 2 replies; 10+ messages in thread
From: Andrew Cooper @ 2018-03-15 11:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

 * Being internal functions, use int rather than long for the return value
 * Factor out pv_vcpu into a local variable.  Reduces code volume, and removes
   some split lines.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/pv/callback.c | 48 ++++++++++++++++++++++------------------------
 1 file changed, 23 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/pv/callback.c b/xen/arch/x86/pv/callback.c
index 866c835..362197b 100644
--- a/xen/arch/x86/pv/callback.c
+++ b/xen/arch/x86/pv/callback.c
@@ -71,10 +71,11 @@ static void unregister_guest_nmi_callback(void)
     memset(t, 0, sizeof(*t));
 }
 
-static long register_guest_callback(struct callback_register *reg)
+static int register_guest_callback(struct callback_register *reg)
 {
-    long ret = 0;
     struct vcpu *curr = current;
+    struct pv_vcpu *pv = &curr->arch.pv_vcpu;
+    int ret = 0;
 
     if ( !is_canonical_address(reg->address) )
         return -EINVAL;
@@ -82,11 +83,11 @@ static long register_guest_callback(struct callback_register *reg)
     switch ( reg->type )
     {
     case CALLBACKTYPE_event:
-        curr->arch.pv_vcpu.event_callback_eip    = reg->address;
+        pv->event_callback_eip = reg->address;
         break;
 
     case CALLBACKTYPE_failsafe:
-        curr->arch.pv_vcpu.failsafe_callback_eip = reg->address;
+        pv->failsafe_callback_eip = reg->address;
         if ( reg->flags & CALLBACKF_mask_events )
             curr->arch.vgc_flags |= VGCF_failsafe_disables_events;
         else
@@ -94,7 +95,7 @@ static long register_guest_callback(struct callback_register *reg)
         break;
 
     case CALLBACKTYPE_syscall:
-        curr->arch.pv_vcpu.syscall_callback_eip  = reg->address;
+        pv->syscall_callback_eip = reg->address;
         if ( reg->flags & CALLBACKF_mask_events )
             curr->arch.vgc_flags |= VGCF_syscall_disables_events;
         else
@@ -102,15 +103,13 @@ static long register_guest_callback(struct callback_register *reg)
         break;
 
     case CALLBACKTYPE_syscall32:
-        curr->arch.pv_vcpu.syscall32_callback_eip = reg->address;
-        curr->arch.pv_vcpu.syscall32_disables_events =
-            !!(reg->flags & CALLBACKF_mask_events);
+        pv->syscall32_callback_eip = reg->address;
+        pv->syscall32_disables_events = reg->flags & CALLBACKF_mask_events;
         break;
 
     case CALLBACKTYPE_sysenter:
-        curr->arch.pv_vcpu.sysenter_callback_eip = reg->address;
-        curr->arch.pv_vcpu.sysenter_disables_events =
-            !!(reg->flags & CALLBACKF_mask_events);
+        pv->sysenter_callback_eip = reg->address;
+        pv->sysenter_disables_events = reg->flags & CALLBACKF_mask_events;
         break;
 
     case CALLBACKTYPE_nmi:
@@ -214,23 +213,24 @@ long do_set_callbacks(unsigned long event_address,
     return 0;
 }
 
-static long compat_register_guest_callback(struct compat_callback_register *reg)
+static int compat_register_guest_callback(struct compat_callback_register *reg)
 {
-    long ret = 0;
     struct vcpu *curr = current;
+    struct pv_vcpu *pv = &curr->arch.pv_vcpu;
+    int ret = 0;
 
     fixup_guest_code_selector(curr->domain, reg->address.cs);
 
     switch ( reg->type )
     {
     case CALLBACKTYPE_event:
-        curr->arch.pv_vcpu.event_callback_cs     = reg->address.cs;
-        curr->arch.pv_vcpu.event_callback_eip    = reg->address.eip;
+        pv->event_callback_cs  = reg->address.cs;
+        pv->event_callback_eip = reg->address.eip;
         break;
 
     case CALLBACKTYPE_failsafe:
-        curr->arch.pv_vcpu.failsafe_callback_cs  = reg->address.cs;
-        curr->arch.pv_vcpu.failsafe_callback_eip = reg->address.eip;
+        pv->failsafe_callback_cs  = reg->address.cs;
+        pv->failsafe_callback_eip = reg->address.eip;
         if ( reg->flags & CALLBACKF_mask_events )
             curr->arch.vgc_flags |= VGCF_failsafe_disables_events;
         else
@@ -238,17 +238,15 @@ static long compat_register_guest_callback(struct compat_callback_register *reg)
         break;
 
     case CALLBACKTYPE_syscall32:
-        curr->arch.pv_vcpu.syscall32_callback_cs     = reg->address.cs;
-        curr->arch.pv_vcpu.syscall32_callback_eip    = reg->address.eip;
-        curr->arch.pv_vcpu.syscall32_disables_events =
-            (reg->flags & CALLBACKF_mask_events) != 0;
+        pv->syscall32_callback_cs     = reg->address.cs;
+        pv->syscall32_callback_eip    = reg->address.eip;
+        pv->syscall32_disables_events = reg->flags & CALLBACKF_mask_events;
         break;
 
     case CALLBACKTYPE_sysenter:
-        curr->arch.pv_vcpu.sysenter_callback_cs     = reg->address.cs;
-        curr->arch.pv_vcpu.sysenter_callback_eip    = reg->address.eip;
-        curr->arch.pv_vcpu.sysenter_disables_events =
-            (reg->flags & CALLBACKF_mask_events) != 0;
+        pv->sysenter_callback_cs     = reg->address.cs;
+        pv->sysenter_callback_eip    = reg->address.eip;
+        pv->sysenter_disables_events = reg->flags & CALLBACKF_mask_events;
         break;
 
     case CALLBACKTYPE_nmi:
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback()
  2018-03-15 11:58 ` [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback() Andrew Cooper
@ 2018-03-19 16:59   ` Jan Beulich
  2018-03-20 12:30   ` Roger Pau Monné
  1 sibling, 0 replies; 10+ messages in thread
From: Jan Beulich @ 2018-03-19 16:59 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: Xen-devel, Wei Liu, Roger Pau Monné

>>> On 15.03.18 at 12:58, <andrew.cooper3@citrix.com> wrote:
> Changes to arch.vgc_flags are made to current in syncrhonous context only, and
> don't need to be locked.  (The only other changes are via
> arch_set_info_guest(), which operates on descheduled vcpus only).
> 
> Replace the {set,clear}_bit() calls with compiler-visible bitwise 
> operations.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart
  2018-03-15 11:58 ` [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart Andrew Cooper
@ 2018-03-19 17:05   ` Jan Beulich
  2018-03-20 12:33   ` Roger Pau Monné
  1 sibling, 0 replies; 10+ messages in thread
From: Jan Beulich @ 2018-03-19 17:05 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: Xen-devel, Wei Liu, Roger Pau Monné

>>> On 15.03.18 at 12:58, <andrew.cooper3@citrix.com> wrote:
> These functions are almost identical.  They differ only in the error emitted
> for the use of CALLBACKTYPE_syscall (which is inconsequential to guests),

I'm not entirely convinced - so far there's been a match here between
map and unmap, i.e. with the change it may be advisable for
compat_register_guest_callback() to also return -EINVAL for
CALLBACKTYPE_syscall. However, I don't feel strongly about this, so
either way ...

> and
> the type of their argument.
> 
> Have the callers pass the unreg.type parameter directly, avoiding the need for
> differently typed parameters.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback()
  2018-03-15 11:58 ` [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback() Andrew Cooper
@ 2018-03-20 10:06   ` Jan Beulich
  2018-03-20 12:38   ` Roger Pau Monné
  1 sibling, 0 replies; 10+ messages in thread
From: Jan Beulich @ 2018-03-20 10:06 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: Xen-devel, Wei Liu, Roger Pau Monné

>>> On 15.03.18 at 12:58, <andrew.cooper3@citrix.com> wrote:
> --- a/xen/arch/x86/pv/callback.c
> +++ b/xen/arch/x86/pv/callback.c
> @@ -71,10 +71,11 @@ static void unregister_guest_nmi_callback(void)
>      memset(t, 0, sizeof(*t));
>  }
>  
> -static long register_guest_callback(struct callback_register *reg)
> +static int register_guest_callback(struct callback_register *reg)
>  {
> -    long ret = 0;
>      struct vcpu *curr = current;
> +    struct pv_vcpu *pv = &curr->arch.pv_vcpu;
> +    int ret = 0;

Instead of altering ret's type, why don't you drop it altogether?
Same actually for the unregister function in patch 2. Preferably
with that done
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback()
  2018-03-15 11:58 ` [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback() Andrew Cooper
  2018-03-19 16:59   ` Jan Beulich
@ 2018-03-20 12:30   ` Roger Pau Monné
  1 sibling, 0 replies; 10+ messages in thread
From: Roger Pau Monné @ 2018-03-20 12:30 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: Wei Liu, Jan Beulich, Xen-devel

On Thu, Mar 15, 2018 at 11:58:40AM +0000, Andrew Cooper wrote:
> Changes to arch.vgc_flags are made to current in syncrhonous context only, and
> don't need to be locked.  (The only other changes are via
> arch_set_info_guest(), which operates on descheduled vcpus only).
> 
> Replace the {set,clear}_bit() calls with compiler-visible bitwise operations.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart
  2018-03-15 11:58 ` [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart Andrew Cooper
  2018-03-19 17:05   ` Jan Beulich
@ 2018-03-20 12:33   ` Roger Pau Monné
  1 sibling, 0 replies; 10+ messages in thread
From: Roger Pau Monné @ 2018-03-20 12:33 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: Wei Liu, Jan Beulich, Xen-devel

On Thu, Mar 15, 2018 at 11:58:41AM +0000, Andrew Cooper wrote:
> These functions are almost identical.  They differ only in the error emitted
> for the use of CALLBACKTYPE_syscall (which is inconsequential to guests), and
> the type of their argument.
> 
> Have the callers pass the unreg.type parameter directly, avoiding the need for
> differently typed parameters.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback()
  2018-03-15 11:58 ` [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback() Andrew Cooper
  2018-03-20 10:06   ` Jan Beulich
@ 2018-03-20 12:38   ` Roger Pau Monné
  1 sibling, 0 replies; 10+ messages in thread
From: Roger Pau Monné @ 2018-03-20 12:38 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: Wei Liu, Jan Beulich, Xen-devel

On Thu, Mar 15, 2018 at 11:58:42AM +0000, Andrew Cooper wrote:
>  * Being internal functions, use int rather than long for the return value
>  * Factor out pv_vcpu into a local variable.  Reduces code volume, and removes
>    some split lines.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

register_guest_callback and compat_register_guest_callback are fairly
similar, I wonder if we could translate compat_callback_register into
callback_register and pass an extra compat parameter to
register_guest_callback in order to get rid of
compat_register_guest_callback.

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-03-20 12:38 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-15 11:58 [PATCH 0/3] x86/pv: Trivial improvements to callback handling Andrew Cooper
2018-03-15 11:58 ` [PATCH 1/3] x86/pv: Avoid locked bit manipulation in register_guest_callback() Andrew Cooper
2018-03-19 16:59   ` Jan Beulich
2018-03-20 12:30   ` Roger Pau Monné
2018-03-15 11:58 ` [PATCH 2/3] x86/pv: Fold {compat_}unregister_guest_callback() into its non-compat counterpart Andrew Cooper
2018-03-19 17:05   ` Jan Beulich
2018-03-20 12:33   ` Roger Pau Monné
2018-03-15 11:58 ` [PATCH 3/3] x86/pv: Minor tweaks to {, compat_}register_guest_callback() Andrew Cooper
2018-03-20 10:06   ` Jan Beulich
2018-03-20 12:38   ` Roger Pau Monné

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.