x86, mce: remove mce_init unused argument
[safe/jmp/linux-2.6] / arch / x86 / kernel / cpu / mcheck / mce.c
index 495c968..20c7e7c 100644 (file)
@@ -71,7 +71,6 @@ static u64                    *bank;
 static unsigned long           notify_user;
 static int                     rip_msr;
 static int                     mce_bootlog = -1;
-static atomic_t                        mce_events;
 
 static char                    trigger[128];
 static char                    *trigger_argv[2] = { trigger, NULL };
@@ -116,7 +115,6 @@ void mce_log(struct mce *mce)
 {
        unsigned next, entry;
 
-       atomic_inc(&mce_events);
        mce->finished = 0;
        wmb();
        for (;;) {
@@ -645,7 +643,7 @@ static int mce_cap_init(void)
        return 0;
 }
 
-static void mce_init(void *dummy)
+static void mce_init(void)
 {
        mce_banks_t all_banks;
        u64 cap;
@@ -778,7 +776,7 @@ void __cpuinit mcheck_init(struct cpuinfo_x86 *c)
 
        machine_check_vector = do_machine_check;
 
-       mce_init(NULL);
+       mce_init();
        mce_cpu_features(c);
        mce_init_timer();
 }
@@ -1022,7 +1020,7 @@ static int mce_shutdown(struct sys_device *dev)
  */
 static int mce_resume(struct sys_device *dev)
 {
-       mce_init(NULL);
+       mce_init();
        mce_cpu_features(&current_cpu_data);
 
        return 0;
@@ -1032,7 +1030,7 @@ static void mce_cpu_restart(void *data)
 {
        del_timer_sync(&__get_cpu_var(mce_timer));
        if (mce_available(&current_cpu_data))
-               mce_init(NULL);
+               mce_init();
        mce_init_timer();
 }
 
@@ -1054,28 +1052,6 @@ DEFINE_PER_CPU(struct sys_device, mce_dev);
 __cpuinitdata
 void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu);
 
-/* Why are there no generic functions for this? */
-#define ACCESSOR(name, var, start) \
-       static ssize_t show_ ## name(struct sys_device *s,              \
-                                    struct sysdev_attribute *attr,     \
-                                    char *buf) {                       \
-               return sprintf(buf, "%Lx\n", (u64)var);                 \
-       }                                                               \
-       static ssize_t set_ ## name(struct sys_device *s,               \
-                                   struct sysdev_attribute *attr,      \
-                                   const char *buf, size_t siz) {      \
-               char *end;                                              \
-               u64 new = simple_strtoull(buf, &end, 0);                \
-                                                                       \
-               if (end == buf)                                         \
-                       return -EINVAL;                                 \
-               var = new;                                              \
-               start;                                                  \
-                                                                       \
-               return end-buf;                                         \
-       }                                                               \
-       static SYSDEV_ATTR(name, 0644, show_ ## name, set_ ## name);
-
 static struct sysdev_attribute *bank_attrs;
 
 static ssize_t show_bank(struct sys_device *s, struct sysdev_attribute *attr,
@@ -1126,13 +1102,26 @@ static ssize_t set_trigger(struct sys_device *s, struct sysdev_attribute *attr,
        return len;
 }
 
+static ssize_t store_int_with_restart(struct sys_device *s,
+                                     struct sysdev_attribute *attr,
+                                     const char *buf, size_t size)
+{
+       ssize_t ret = sysdev_store_int(s, attr, buf, size);
+       mce_restart();
+       return ret;
+}
+
 static SYSDEV_ATTR(trigger, 0644, show_trigger, set_trigger);
 static SYSDEV_INT_ATTR(tolerant, 0644, tolerant);
 
-ACCESSOR(check_interval, check_interval, mce_restart())
+static struct sysdev_ext_attribute attr_check_interval = {
+       _SYSDEV_ATTR(check_interval, 0644, sysdev_show_int,
+                    store_int_with_restart),
+       &check_interval
+};
 
 static struct sysdev_attribute *mce_attrs[] = {
-       &attr_tolerant.attr, &attr_check_interval, &attr_trigger,
+       &attr_tolerant.attr, &attr_check_interval.attr, &attr_trigger,
        NULL
 };