|
[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 |