]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
x86/oprofile: use 64 bit values to save MSR states
authorRobert Richter <robert.richter@amd.com>
Wed, 3 Jun 2009 17:09:27 +0000 (19:09 +0200)
committerRobert Richter <robert.richter@amd.com>
Thu, 11 Jun 2009 18:12:57 +0000 (20:12 +0200)
This patch removes struct op_saved_msr and replaces it by an u64
variable. This makes code easier and it is possible to use 64 bit MSR
functions.

Signed-off-by: Robert Richter <robert.richter@amd.com>
arch/x86/oprofile/nmi_int.c
arch/x86/oprofile/op_x86_model.h

index 388ee15e0e42ac9113c861fb88100c1a76895893..3b84b789de0bb2e102b9a199c1ab7e917a387191 100644 (file)
@@ -78,19 +78,13 @@ static void nmi_cpu_save_registers(struct op_msrs *msrs)
        unsigned int i;
 
        for (i = 0; i < nr_ctrs; ++i) {
-               if (counters[i].addr) {
-                       rdmsr(counters[i].addr,
-                               counters[i].saved.low,
-                               counters[i].saved.high);
-               }
+               if (counters[i].addr)
+                       rdmsrl(counters[i].addr, counters[i].saved);
        }
 
        for (i = 0; i < nr_ctrls; ++i) {
-               if (controls[i].addr) {
-                       rdmsr(controls[i].addr,
-                               controls[i].saved.low,
-                               controls[i].saved.high);
-               }
+               if (controls[i].addr)
+                       rdmsrl(controls[i].addr, controls[i].saved);
        }
 }
 
@@ -204,19 +198,13 @@ static void nmi_restore_registers(struct op_msrs *msrs)
        unsigned int i;
 
        for (i = 0; i < nr_ctrls; ++i) {
-               if (controls[i].addr) {
-                       wrmsr(controls[i].addr,
-                               controls[i].saved.low,
-                               controls[i].saved.high);
-               }
+               if (controls[i].addr)
+                       wrmsrl(controls[i].addr, controls[i].saved);
        }
 
        for (i = 0; i < nr_ctrs; ++i) {
-               if (counters[i].addr) {
-                       wrmsr(counters[i].addr,
-                               counters[i].saved.low,
-                               counters[i].saved.high);
-               }
+               if (counters[i].addr)
+                       wrmsrl(counters[i].addr, counters[i].saved);
        }
 }
 
index 69f1eb46e1b31edfd3d6f74b6240ed88eca9335f..fda52b4c1b95bcc90d5aae1ad3bcfcbb22236d07 100644 (file)
 #include <asm/types.h>
 #include <asm/intel_arch_perfmon.h>
 
-struct op_saved_msr {
-       unsigned int high;
-       unsigned int low;
-};
-
 struct op_msr {
-       unsigned long addr;
-       struct op_saved_msr saved;
+       unsigned long   addr;
+       u64             saved;
 };
 
 struct op_msrs {