* 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 <andrew.coop...@citrix.com> --- CC: Jan Beulich <jbeul...@suse.com> CC: Wei Liu <wei.l...@citrix.com> CC: Roger Pau Monné <roger....@citrix.com> CC: Juergen Gross <jgr...@suse.com> --- 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