[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/traps: Misc non-functional improvements to set_debugreg()
commit a50238afa99c27f2aa4eb4e8060f3b81e8ed0d78 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Fri Mar 23 20:26:34 2018 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Tue Apr 17 15:12:36 2018 +0100 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> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Release-acked-by: 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 0073c8f814..c624fb4a5f 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; } -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |