aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>2011-06-07 22:00:45 -0400
committerBorislav Petkov <borislav.petkov@amd.com>2011-06-16 06:10:15 -0400
commit93b62c3cf59d44850cbe9f04d58da08930e3fb0b (patch)
tree2a850317b2acb73e056ca2f74293aac332cc9212
parent559faa6be143b8aa7a07b12f618d29fbc1c8eb0d (diff)
x86, mce: Use mce_chrdev_ prefix to group functions
There are many functions named mce_* so use a new prefix for the subset of functions dealing with the character device /dev/mcelog. This change doesn't impact the mce-inject module because the exported symbol mce_chrdev_ops already has the prefix, therefore it is left unchanged. Before: After: mce_wait mce_chrdev_wait mce_state_lock mce_chrdev_state_lock open_count mce_chrdev_open_count open_exclu mce_chrdev_open_exclu mce_open mce_chrdev_open mce_release mce_chrdev_release mce_read_mutex mce_chrdev_read_mutex mce_read mce_chrdev_read mce_poll mce_chrdev_poll mce_ioctl mce_chrdev_ioctl mce_log_device mce_chrdev_device Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Acked-by: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/4DEED7CD.3040500@jp.fujitsu.com Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c77
1 files changed, 41 insertions, 36 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 54360e82854d..9a735168e40f 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -45,12 +45,12 @@
45 45
46#include "mce-internal.h" 46#include "mce-internal.h"
47 47
48static DEFINE_MUTEX(mce_read_mutex); 48static DEFINE_MUTEX(mce_chrdev_read_mutex);
49 49
50#define rcu_dereference_check_mce(p) \ 50#define rcu_dereference_check_mce(p) \
51 rcu_dereference_index_check((p), \ 51 rcu_dereference_index_check((p), \
52 rcu_read_lock_sched_held() || \ 52 rcu_read_lock_sched_held() || \
53 lockdep_is_held(&mce_read_mutex)) 53 lockdep_is_held(&mce_chrdev_read_mutex))
54 54
55#define CREATE_TRACE_POINTS 55#define CREATE_TRACE_POINTS
56#include <trace/events/mce.h> 56#include <trace/events/mce.h>
@@ -90,7 +90,8 @@ static unsigned long mce_need_notify;
90static char mce_helper[128]; 90static char mce_helper[128];
91static char *mce_helper_argv[2] = { mce_helper, NULL }; 91static char *mce_helper_argv[2] = { mce_helper, NULL };
92 92
93static DECLARE_WAIT_QUEUE_HEAD(mce_wait); 93static DECLARE_WAIT_QUEUE_HEAD(mce_chrdev_wait);
94
94static DEFINE_PER_CPU(struct mce, mces_seen); 95static DEFINE_PER_CPU(struct mce, mces_seen);
95static int cpu_missing; 96static int cpu_missing;
96 97
@@ -1159,7 +1160,8 @@ int mce_notify_irq(void)
1159 clear_thread_flag(TIF_MCE_NOTIFY); 1160 clear_thread_flag(TIF_MCE_NOTIFY);
1160 1161
1161 if (test_and_clear_bit(0, &mce_need_notify)) { 1162 if (test_and_clear_bit(0, &mce_need_notify)) {
1162 wake_up_interruptible(&mce_wait); 1163 /* wake processes polling /dev/mcelog */
1164 wake_up_interruptible(&mce_chrdev_wait);
1163 1165
1164 /* 1166 /*
1165 * There is no risk of missing notifications because 1167 * There is no risk of missing notifications because
@@ -1423,40 +1425,41 @@ void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
1423} 1425}
1424 1426
1425/* 1427/*
1426 * Character device to read and clear the MCE log. 1428 * mce_chrdev: Character device /dev/mcelog to read and clear the MCE log.
1427 */ 1429 */
1428 1430
1429static DEFINE_SPINLOCK(mce_state_lock); 1431static DEFINE_SPINLOCK(mce_chrdev_state_lock);
1430static int open_count; /* #times opened */ 1432static int mce_chrdev_open_count; /* #times opened */
1431static int open_exclu; /* already open exclusive? */ 1433static int mce_chrdev_open_exclu; /* already open exclusive? */
1432 1434
1433static int mce_open(struct inode *inode, struct file *file) 1435static int mce_chrdev_open(struct inode *inode, struct file *file)
1434{ 1436{
1435 spin_lock(&mce_state_lock); 1437 spin_lock(&mce_chrdev_state_lock);
1436 1438
1437 if (open_exclu || (open_count && (file->f_flags & O_EXCL))) { 1439 if (mce_chrdev_open_exclu ||
1438 spin_unlock(&mce_state_lock); 1440 (mce_chrdev_open_count && (file->f_flags & O_EXCL))) {
1441 spin_unlock(&mce_chrdev_state_lock);
1439 1442
1440 return -EBUSY; 1443 return -EBUSY;
1441 } 1444 }
1442 1445
1443 if (file->f_flags & O_EXCL) 1446 if (file->f_flags & O_EXCL)
1444 open_exclu = 1; 1447 mce_chrdev_open_exclu = 1;
1445 open_count++; 1448 mce_chrdev_open_count++;
1446 1449
1447 spin_unlock(&mce_state_lock); 1450 spin_unlock(&mce_chrdev_state_lock);
1448 1451
1449 return nonseekable_open(inode, file); 1452 return nonseekable_open(inode, file);
1450} 1453}
1451 1454
1452static int mce_release(struct inode *inode, struct file *file) 1455static int mce_chrdev_release(struct inode *inode, struct file *file)
1453{ 1456{
1454 spin_lock(&mce_state_lock); 1457 spin_lock(&mce_chrdev_state_lock);
1455 1458
1456 open_count--; 1459 mce_chrdev_open_count--;
1457 open_exclu = 0; 1460 mce_chrdev_open_exclu = 0;
1458 1461
1459 spin_unlock(&mce_state_lock); 1462 spin_unlock(&mce_chrdev_state_lock);
1460 1463
1461 return 0; 1464 return 0;
1462} 1465}
@@ -1505,8 +1508,8 @@ static int __mce_read_apei(char __user **ubuf, size_t usize)
1505 return 0; 1508 return 0;
1506} 1509}
1507 1510
1508static ssize_t mce_read(struct file *filp, char __user *ubuf, size_t usize, 1511static ssize_t mce_chrdev_read(struct file *filp, char __user *ubuf,
1509 loff_t *off) 1512 size_t usize, loff_t *off)
1510{ 1513{
1511 char __user *buf = ubuf; 1514 char __user *buf = ubuf;
1512 unsigned long *cpu_tsc; 1515 unsigned long *cpu_tsc;
@@ -1517,7 +1520,7 @@ static ssize_t mce_read(struct file *filp, char __user *ubuf, size_t usize,
1517 if (!cpu_tsc) 1520 if (!cpu_tsc)
1518 return -ENOMEM; 1521 return -ENOMEM;
1519 1522
1520 mutex_lock(&mce_read_mutex); 1523 mutex_lock(&mce_chrdev_read_mutex);
1521 1524
1522 if (!mce_apei_read_done) { 1525 if (!mce_apei_read_done) {
1523 err = __mce_read_apei(&buf, usize); 1526 err = __mce_read_apei(&buf, usize);
@@ -1582,15 +1585,15 @@ timeout:
1582 err = -EFAULT; 1585 err = -EFAULT;
1583 1586
1584out: 1587out:
1585 mutex_unlock(&mce_read_mutex); 1588 mutex_unlock(&mce_chrdev_read_mutex);
1586 kfree(cpu_tsc); 1589 kfree(cpu_tsc);
1587 1590
1588 return err ? err : buf - ubuf; 1591 return err ? err : buf - ubuf;
1589} 1592}
1590 1593
1591static unsigned int mce_poll(struct file *file, poll_table *wait) 1594static unsigned int mce_chrdev_poll(struct file *file, poll_table *wait)
1592{ 1595{
1593 poll_wait(file, &mce_wait, wait); 1596 poll_wait(file, &mce_chrdev_wait, wait);
1594 if (rcu_access_index(mcelog.next)) 1597 if (rcu_access_index(mcelog.next))
1595 return POLLIN | POLLRDNORM; 1598 return POLLIN | POLLRDNORM;
1596 if (!mce_apei_read_done && apei_check_mce()) 1599 if (!mce_apei_read_done && apei_check_mce())
@@ -1598,7 +1601,8 @@ static unsigned int mce_poll(struct file *file, poll_table *wait)
1598 return 0; 1601 return 0;
1599} 1602}
1600 1603
1601static long mce_ioctl(struct file *f, unsigned int cmd, unsigned long arg) 1604static long mce_chrdev_ioctl(struct file *f, unsigned int cmd,
1605 unsigned long arg)
1602{ 1606{
1603 int __user *p = (int __user *)arg; 1607 int __user *p = (int __user *)arg;
1604 1608
@@ -1626,16 +1630,16 @@ static long mce_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
1626 1630
1627/* Modified in mce-inject.c, so not static or const */ 1631/* Modified in mce-inject.c, so not static or const */
1628struct file_operations mce_chrdev_ops = { 1632struct file_operations mce_chrdev_ops = {
1629 .open = mce_open, 1633 .open = mce_chrdev_open,
1630 .release = mce_release, 1634 .release = mce_chrdev_release,
1631 .read = mce_read, 1635 .read = mce_chrdev_read,
1632 .poll = mce_poll, 1636 .poll = mce_chrdev_poll,
1633 .unlocked_ioctl = mce_ioctl, 1637 .unlocked_ioctl = mce_chrdev_ioctl,
1634 .llseek = no_llseek, 1638 .llseek = no_llseek,
1635}; 1639};
1636EXPORT_SYMBOL_GPL(mce_chrdev_ops); 1640EXPORT_SYMBOL_GPL(mce_chrdev_ops);
1637 1641
1638static struct miscdevice mce_log_device = { 1642static struct miscdevice mce_chrdev_device = {
1639 MISC_MCELOG_MINOR, 1643 MISC_MCELOG_MINOR,
1640 "mcelog", 1644 "mcelog",
1641 &mce_chrdev_ops, 1645 &mce_chrdev_ops,
@@ -2107,11 +2111,12 @@ static __init int mcheck_init_device(void)
2107 2111
2108 register_syscore_ops(&mce_syscore_ops); 2112 register_syscore_ops(&mce_syscore_ops);
2109 register_hotcpu_notifier(&mce_cpu_notifier); 2113 register_hotcpu_notifier(&mce_cpu_notifier);
2110 misc_register(&mce_log_device); 2114
2115 /* register character device /dev/mcelog */
2116 misc_register(&mce_chrdev_device);
2111 2117
2112 return err; 2118 return err;
2113} 2119}
2114
2115device_initcall(mcheck_init_device); 2120device_initcall(mcheck_init_device);
2116 2121
2117/* 2122/*