Re: [Xen-devel] [PATCH 3/3] x86/traps: Misc non-functional improvements to set_debugreg()

2018-04-13 Thread Jan Beulich
 >>> On 12.04.18 at 18:55,  wrote:
> * Change 'int i' to being unsigned, and move it into its most narrow scope.
>  * Fold the access_ok() checks for %dr{0..3}.  This halves the compiled size
>of the function.
>  * Additional newlines in appropriate places.
> 
> Signed-off-by: Andrew Cooper 

Reviewed-by: Jan Beulich 



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

[Xen-devel] [PATCH 3/3] x86/traps: Misc non-functional improvements to set_debugreg()

2018-04-12 Thread Andrew Cooper
 * Change 'int i' to being unsigned, and move it into its most narrow scope.
 * Fold the access_ok() checks for %dr{0..3}.  This halves the compiled size
   of the function.
 * Additional newlines in appropriate places.

Signed-off-by: Andrew Cooper 
---
CC: Jan Beulich 
CC: Wei Liu 
CC: Roger Pau Monné 
CC: Juergen Gross 
---
 xen/arch/x86/traps.c | 35 +--
 1 file changed, 13 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 0073c8f..c624fb4 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2006,34 +2006,24 @@ void activate_debugregs(const struct vcpu *curr)
  */
 long set_debugreg(struct vcpu *v, unsigned int reg, unsigned long value)
 {
-int i;
 struct vcpu *curr = current;
 
 switch ( reg )
 {
-case 0:
-if ( !access_ok(value, sizeof(long)) )
-return -EPERM;
-if ( v == curr )
-write_debugreg(0, value);
-break;
-case 1:
-if ( !access_ok(value, sizeof(long)) )
-return -EPERM;
-if ( v == curr )
-write_debugreg(1, value);
-break;
-case 2:
-if ( !access_ok(value, sizeof(long)) )
-return -EPERM;
-if ( v == curr )
-write_debugreg(2, value);
-break;
-case 3:
+case 0 ... 3:
 if ( !access_ok(value, sizeof(long)) )
 return -EPERM;
+
 if ( v == curr )
-write_debugreg(3, value);
+{
+switch ( reg )
+{
+case 0: write_debugreg(0, value); break;
+case 1: write_debugreg(1, value); break;
+case 2: write_debugreg(2, value); break;
+case 3: write_debugreg(3, value); break;
+}
+}
 break;
 
 case 4:
@@ -2085,7 +2075,7 @@ long set_debugreg(struct vcpu *v, unsigned int reg, 
unsigned long value)
 /* DR7.{G,L}E = 0 => debugging disabled for this domain. */
 if ( value & DR7_ACTIVE_MASK )
 {
-unsigned int io_enable = 0;
+unsigned int i, io_enable = 0;
 
 for ( i = DR_CONTROL_SHIFT; i < 32; i += DR_CONTROL_SIZE )
 {
@@ -2113,6 +2103,7 @@ long set_debugreg(struct vcpu *v, unsigned int reg, 
unsigned long value)
 if ( v == curr )
 write_debugreg(7, value);
 break;
+
 default:
 return -ENODEV;
 }
-- 
2.1.4


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