aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/mcheck/mce.c
diff options
context:
space:
mode:
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>2011-06-07 22:00:08 -0400
committerBorislav Petkov <borislav.petkov@amd.com>2011-06-16 06:10:13 -0400
commit559faa6be143b8aa7a07b12f618d29fbc1c8eb0d (patch)
tree303453086742b43e1f665c1a88342216bc8878f7 /arch/x86/kernel/cpu/mcheck/mce.c
parentf6783c4234e65bd6f85596d97745ccdbf041cb63 (diff)
x86, mce: Cleanup mce_read()
Use a temporary local variable m to simplify the code. No change in logic. Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Acked-by: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/4DEED7A8.8020307@jp.fujitsu.com Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'arch/x86/kernel/cpu/mcheck/mce.c')
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index f3f648c8e087..54360e82854d 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1537,19 +1537,18 @@ static ssize_t mce_read(struct file *filp, char __user *ubuf, size_t usize,
1537 do { 1537 do {
1538 for (i = prev; i < next; i++) { 1538 for (i = prev; i < next; i++) {
1539 unsigned long start = jiffies; 1539 unsigned long start = jiffies;
1540 struct mce *m = &mcelog.entry[i];
1540 1541
1541 while (!mcelog.entry[i].finished) { 1542 while (!m->finished) {
1542 if (time_after_eq(jiffies, start + 2)) { 1543 if (time_after_eq(jiffies, start + 2)) {
1543 memset(mcelog.entry + i, 0, 1544 memset(m, 0, sizeof(*m));
1544 sizeof(struct mce));
1545 goto timeout; 1545 goto timeout;
1546 } 1546 }
1547 cpu_relax(); 1547 cpu_relax();
1548 } 1548 }
1549 smp_rmb(); 1549 smp_rmb();
1550 err |= copy_to_user(buf, mcelog.entry + i, 1550 err |= copy_to_user(buf, m, sizeof(*m));
1551 sizeof(struct mce)); 1551 buf += sizeof(*m);
1552 buf += sizeof(struct mce);
1553timeout: 1552timeout:
1554 ; 1553 ;
1555 } 1554 }
@@ -1569,13 +1568,13 @@ timeout:
1569 on_each_cpu(collect_tscs, cpu_tsc, 1); 1568 on_each_cpu(collect_tscs, cpu_tsc, 1);
1570 1569
1571 for (i = next; i < MCE_LOG_LEN; i++) { 1570 for (i = next; i < MCE_LOG_LEN; i++) {
1572 if (mcelog.entry[i].finished && 1571 struct mce *m = &mcelog.entry[i];
1573 mcelog.entry[i].tsc < cpu_tsc[mcelog.entry[i].cpu]) { 1572
1574 err |= copy_to_user(buf, mcelog.entry+i, 1573 if (m->finished && m->tsc < cpu_tsc[m->cpu]) {
1575 sizeof(struct mce)); 1574 err |= copy_to_user(buf, m, sizeof(*m));
1576 smp_rmb(); 1575 smp_rmb();
1577 buf += sizeof(struct mce); 1576 buf += sizeof(*m);
1578 memset(&mcelog.entry[i], 0, sizeof(struct mce)); 1577 memset(m, 0, sizeof(*m));
1579 } 1578 }
1580 } 1579 }
1581 1580