[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3/3] x86/traps: Misc non-functional improvements to set_debugreg()
* 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.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Juergen Gross <jgross@xxxxxxxx> --- 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@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |