diff mbox

x86emul: MSR indexes are only 32 bits wide

Message ID 56C1CB4902000078000D20DB@prv-mh.provo.novell.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Beulich Feb. 15, 2016, 11:57 a.m. UTC
... and hence the respective {read,write}_msr() hook parameter doesn't
need to be "unsigned long".

Signed-off-by: Jan Beulich <jbeulich@suse.com>
x86emul: MSR indexes are only 32 bits wide

... and hence the respective {read,write}_msr() hook parameter doesn't
need to be "unsigned long".

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -966,7 +966,7 @@ static int hvmemul_write_io_discard(
 }
 
 static int hvmemul_write_msr_discard(
-    unsigned long reg,
+    unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
 {
@@ -1439,7 +1439,7 @@ static int hvmemul_write_cr(
 }
 
 static int hvmemul_read_msr(
-    unsigned long reg,
+    unsigned int reg,
     uint64_t *val,
     struct x86_emulate_ctxt *ctxt)
 {
@@ -1447,7 +1447,7 @@ static int hvmemul_read_msr(
 }
 
 static int hvmemul_write_msr(
-    unsigned long reg,
+    unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
 {
--- a/xen/arch/x86/x86_emulate/x86_emulate.h
+++ b/xen/arch/x86/x86_emulate/x86_emulate.h
@@ -334,7 +334,7 @@ struct x86_emulate_ops
      *  @reg:   [IN ] Register to read.
      */
     int (*read_msr)(
-        unsigned long reg,
+        unsigned int reg,
         uint64_t *val,
         struct x86_emulate_ctxt *ctxt);
 
@@ -343,7 +343,7 @@ struct x86_emulate_ops
      *  @reg:   [IN ] Register to write.
      */
     int (*write_msr)(
-        unsigned long reg,
+        unsigned int reg,
         uint64_t val,
         struct x86_emulate_ctxt *ctxt);

Comments

Andrew Cooper Feb. 15, 2016, 12:51 p.m. UTC | #1
On 15/02/16 11:57, Jan Beulich wrote:
> ... and hence the respective {read,write}_msr() hook parameter doesn't
> need to be "unsigned long".
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I would suggest uint32_t instead (being more architecturally
self-documenting), but either way, Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>
Jan Beulich Feb. 15, 2016, 12:59 p.m. UTC | #2
>>> On 15.02.16 at 13:51, <andrew.cooper3@citrix.com> wrote:
> On 15/02/16 11:57, Jan Beulich wrote:
>> ... and hence the respective {read,write}_msr() hook parameter doesn't
>> need to be "unsigned long".
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> I would suggest uint32_t instead (being more architecturally
> self-documenting), but either way, Reviewed-by: Andrew Cooper
> <andrew.cooper3@citrix.com>

While it might be "more architecturally self-documenting", it would
also be less in line with types used elsewhere (at least for those
pieces which I had looked at). This consistency consideration made
me use unsigned int (which we imply to be at least 32 bits wide
anyway).

Jan
diff mbox

Patch

--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -966,7 +966,7 @@  static int hvmemul_write_io_discard(
 }
 
 static int hvmemul_write_msr_discard(
-    unsigned long reg,
+    unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
 {
@@ -1439,7 +1439,7 @@  static int hvmemul_write_cr(
 }
 
 static int hvmemul_read_msr(
-    unsigned long reg,
+    unsigned int reg,
     uint64_t *val,
     struct x86_emulate_ctxt *ctxt)
 {
@@ -1447,7 +1447,7 @@  static int hvmemul_read_msr(
 }
 
 static int hvmemul_write_msr(
-    unsigned long reg,
+    unsigned int reg,
     uint64_t val,
     struct x86_emulate_ctxt *ctxt)
 {
--- a/xen/arch/x86/x86_emulate/x86_emulate.h
+++ b/xen/arch/x86/x86_emulate/x86_emulate.h
@@ -334,7 +334,7 @@  struct x86_emulate_ops
      *  @reg:   [IN ] Register to read.
      */
     int (*read_msr)(
-        unsigned long reg,
+        unsigned int reg,
         uint64_t *val,
         struct x86_emulate_ctxt *ctxt);
 
@@ -343,7 +343,7 @@  struct x86_emulate_ops
      *  @reg:   [IN ] Register to write.
      */
     int (*write_msr)(
-        unsigned long reg,
+        unsigned int reg,
         uint64_t val,
         struct x86_emulate_ctxt *ctxt);