int max;
 };
 
-static LIST_HEAD(insn_emulation);
-static int nr_insn_emulated __initdata;
-static DEFINE_RAW_SPINLOCK(insn_emulation_lock);
-static DEFINE_MUTEX(insn_emulation_mutex);
-
-static void register_emulation_hooks(struct insn_emulation *insn)
-{
-       struct undef_hook *hook;
-
-       BUG_ON(!insn->hooks);
-
-       for (hook = insn->hooks; hook->instr_mask; hook++)
-               register_undef_hook(hook);
-
-       pr_notice("Registered %s emulation handler\n", insn->name);
-}
-
-static void remove_emulation_hooks(struct insn_emulation *insn)
-{
-       struct undef_hook *hook;
-
-       BUG_ON(!insn->hooks);
-
-       for (hook = insn->hooks; hook->instr_mask; hook++)
-               unregister_undef_hook(hook);
-
-       pr_notice("Removed %s emulation handler\n", insn->name);
-}
-
-static void enable_insn_hw_mode(void *data)
-{
-       struct insn_emulation *insn = (struct insn_emulation *)data;
-       if (insn->set_hw_mode)
-               insn->set_hw_mode(true);
-}
-
-static void disable_insn_hw_mode(void *data)
-{
-       struct insn_emulation *insn = (struct insn_emulation *)data;
-       if (insn->set_hw_mode)
-               insn->set_hw_mode(false);
-}
-
-/* Run set_hw_mode(mode) on all active CPUs */
-static int run_all_cpu_set_hw_mode(struct insn_emulation *insn, bool enable)
-{
-       if (!insn->set_hw_mode)
-               return -EINVAL;
-       if (enable)
-               on_each_cpu(enable_insn_hw_mode, (void *)insn, true);
-       else
-               on_each_cpu(disable_insn_hw_mode, (void *)insn, true);
-       return 0;
-}
-
-/*
- * Run set_hw_mode for all insns on a starting CPU.
- * Returns:
- *  0          - If all the hooks ran successfully.
- * -EINVAL     - At least one hook is not supported by the CPU.
- */
-static int run_all_insn_set_hw_mode(unsigned int cpu)
-{
-       int rc = 0;
-       unsigned long flags;
-       struct insn_emulation *insn;
-
-       raw_spin_lock_irqsave(&insn_emulation_lock, flags);
-       list_for_each_entry(insn, &insn_emulation, node) {
-               bool enable = (insn->current_mode == INSN_HW);
-               if (insn->set_hw_mode && insn->set_hw_mode(enable)) {
-                       pr_warn("CPU[%u] cannot support the emulation of %s",
-                               cpu, insn->name);
-                       rc = -EINVAL;
-               }
-       }
-       raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
-       return rc;
-}
-
-static int update_insn_emulation_mode(struct insn_emulation *insn,
-                                      enum insn_emulation_mode prev)
-{
-       int ret = 0;
-
-       switch (prev) {
-       case INSN_UNDEF: /* Nothing to be done */
-               break;
-       case INSN_EMULATE:
-               remove_emulation_hooks(insn);
-               break;
-       case INSN_HW:
-               if (!run_all_cpu_set_hw_mode(insn, false))
-                       pr_notice("Disabled %s support\n", insn->name);
-               break;
-       }
-
-       switch (insn->current_mode) {
-       case INSN_UNDEF:
-               break;
-       case INSN_EMULATE:
-               register_emulation_hooks(insn);
-               break;
-       case INSN_HW:
-               ret = run_all_cpu_set_hw_mode(insn, true);
-               if (!ret)
-                       pr_notice("Enabled %s support\n", insn->name);
-               break;
-       }
-
-       return ret;
-}
-
-static void __init register_insn_emulation(struct insn_emulation *insn)
-{
-       unsigned long flags;
-
-       insn->min = INSN_UNDEF;
-
-       switch (insn->status) {
-       case INSN_DEPRECATED:
-               insn->current_mode = INSN_EMULATE;
-               /* Disable the HW mode if it was turned on at early boot time */
-               run_all_cpu_set_hw_mode(insn, false);
-               insn->max = INSN_HW;
-               break;
-       case INSN_OBSOLETE:
-               insn->current_mode = INSN_UNDEF;
-               insn->max = INSN_EMULATE;
-               break;
-       }
-
-       raw_spin_lock_irqsave(&insn_emulation_lock, flags);
-       list_add(&insn->node, &insn_emulation);
-       nr_insn_emulated++;
-       raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
-
-       /* Register any handlers if required */
-       update_insn_emulation_mode(insn, INSN_UNDEF);
-}
-
-static int emulation_proc_handler(struct ctl_table *table, int write,
-                                 void *buffer, size_t *lenp,
-                                 loff_t *ppos)
-{
-       int ret = 0;
-       struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);
-       enum insn_emulation_mode prev_mode = insn->current_mode;
-
-       mutex_lock(&insn_emulation_mutex);
-       ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
-
-       if (ret || !write || prev_mode == insn->current_mode)
-               goto ret;
-
-       ret = update_insn_emulation_mode(insn, prev_mode);
-       if (ret) {
-               /* Mode change failed, revert to previous mode. */
-               insn->current_mode = prev_mode;
-               update_insn_emulation_mode(insn, INSN_UNDEF);
-       }
-ret:
-       mutex_unlock(&insn_emulation_mutex);
-       return ret;
-}
-
-static void __init register_insn_emulation_sysctl(void)
-{
-       unsigned long flags;
-       int i = 0;
-       struct insn_emulation *insn;
-       struct ctl_table *insns_sysctl, *sysctl;
-
-       insns_sysctl = kcalloc(nr_insn_emulated + 1, sizeof(*sysctl),
-                              GFP_KERNEL);
-       if (!insns_sysctl)
-               return;
-
-       raw_spin_lock_irqsave(&insn_emulation_lock, flags);
-       list_for_each_entry(insn, &insn_emulation, node) {
-               sysctl = &insns_sysctl[i];
-
-               sysctl->mode = 0644;
-               sysctl->maxlen = sizeof(int);
-
-               sysctl->procname = insn->name;
-               sysctl->data = &insn->current_mode;
-               sysctl->extra1 = &insn->min;
-               sysctl->extra2 = &insn->max;
-               sysctl->proc_handler = emulation_proc_handler;
-               i++;
-       }
-       raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
-
-       register_sysctl("abi", insns_sysctl);
-}
-
 /*
  *  Implement emulation of the SWP/SWPB instructions using load-exclusive and
  *  store-exclusive.
        .set_hw_mode = setend_set_hw_mode,
 };
 
+static LIST_HEAD(insn_emulation);
+static int nr_insn_emulated __initdata;
+static DEFINE_RAW_SPINLOCK(insn_emulation_lock);
+static DEFINE_MUTEX(insn_emulation_mutex);
+
+static void register_emulation_hooks(struct insn_emulation *insn)
+{
+       struct undef_hook *hook;
+
+       BUG_ON(!insn->hooks);
+
+       for (hook = insn->hooks; hook->instr_mask; hook++)
+               register_undef_hook(hook);
+
+       pr_notice("Registered %s emulation handler\n", insn->name);
+}
+
+static void remove_emulation_hooks(struct insn_emulation *insn)
+{
+       struct undef_hook *hook;
+
+       BUG_ON(!insn->hooks);
+
+       for (hook = insn->hooks; hook->instr_mask; hook++)
+               unregister_undef_hook(hook);
+
+       pr_notice("Removed %s emulation handler\n", insn->name);
+}
+
+static void enable_insn_hw_mode(void *data)
+{
+       struct insn_emulation *insn = (struct insn_emulation *)data;
+       if (insn->set_hw_mode)
+               insn->set_hw_mode(true);
+}
+
+static void disable_insn_hw_mode(void *data)
+{
+       struct insn_emulation *insn = (struct insn_emulation *)data;
+       if (insn->set_hw_mode)
+               insn->set_hw_mode(false);
+}
+
+/* Run set_hw_mode(mode) on all active CPUs */
+static int run_all_cpu_set_hw_mode(struct insn_emulation *insn, bool enable)
+{
+       if (!insn->set_hw_mode)
+               return -EINVAL;
+       if (enable)
+               on_each_cpu(enable_insn_hw_mode, (void *)insn, true);
+       else
+               on_each_cpu(disable_insn_hw_mode, (void *)insn, true);
+       return 0;
+}
+
+/*
+ * Run set_hw_mode for all insns on a starting CPU.
+ * Returns:
+ *  0          - If all the hooks ran successfully.
+ * -EINVAL     - At least one hook is not supported by the CPU.
+ */
+static int run_all_insn_set_hw_mode(unsigned int cpu)
+{
+       int rc = 0;
+       unsigned long flags;
+       struct insn_emulation *insn;
+
+       raw_spin_lock_irqsave(&insn_emulation_lock, flags);
+       list_for_each_entry(insn, &insn_emulation, node) {
+               bool enable = (insn->current_mode == INSN_HW);
+               if (insn->set_hw_mode && insn->set_hw_mode(enable)) {
+                       pr_warn("CPU[%u] cannot support the emulation of %s",
+                               cpu, insn->name);
+                       rc = -EINVAL;
+               }
+       }
+       raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
+       return rc;
+}
+
+static int update_insn_emulation_mode(struct insn_emulation *insn,
+                                      enum insn_emulation_mode prev)
+{
+       int ret = 0;
+
+       switch (prev) {
+       case INSN_UNDEF: /* Nothing to be done */
+               break;
+       case INSN_EMULATE:
+               remove_emulation_hooks(insn);
+               break;
+       case INSN_HW:
+               if (!run_all_cpu_set_hw_mode(insn, false))
+                       pr_notice("Disabled %s support\n", insn->name);
+               break;
+       }
+
+       switch (insn->current_mode) {
+       case INSN_UNDEF:
+               break;
+       case INSN_EMULATE:
+               register_emulation_hooks(insn);
+               break;
+       case INSN_HW:
+               ret = run_all_cpu_set_hw_mode(insn, true);
+               if (!ret)
+                       pr_notice("Enabled %s support\n", insn->name);
+               break;
+       }
+
+       return ret;
+}
+
+static void __init register_insn_emulation(struct insn_emulation *insn)
+{
+       unsigned long flags;
+
+       insn->min = INSN_UNDEF;
+
+       switch (insn->status) {
+       case INSN_DEPRECATED:
+               insn->current_mode = INSN_EMULATE;
+               /* Disable the HW mode if it was turned on at early boot time */
+               run_all_cpu_set_hw_mode(insn, false);
+               insn->max = INSN_HW;
+               break;
+       case INSN_OBSOLETE:
+               insn->current_mode = INSN_UNDEF;
+               insn->max = INSN_EMULATE;
+               break;
+       }
+
+       raw_spin_lock_irqsave(&insn_emulation_lock, flags);
+       list_add(&insn->node, &insn_emulation);
+       nr_insn_emulated++;
+       raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
+
+       /* Register any handlers if required */
+       update_insn_emulation_mode(insn, INSN_UNDEF);
+}
+
+static int emulation_proc_handler(struct ctl_table *table, int write,
+                                 void *buffer, size_t *lenp,
+                                 loff_t *ppos)
+{
+       int ret = 0;
+       struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);
+       enum insn_emulation_mode prev_mode = insn->current_mode;
+
+       mutex_lock(&insn_emulation_mutex);
+       ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
+
+       if (ret || !write || prev_mode == insn->current_mode)
+               goto ret;
+
+       ret = update_insn_emulation_mode(insn, prev_mode);
+       if (ret) {
+               /* Mode change failed, revert to previous mode. */
+               insn->current_mode = prev_mode;
+               update_insn_emulation_mode(insn, INSN_UNDEF);
+       }
+ret:
+       mutex_unlock(&insn_emulation_mutex);
+       return ret;
+}
+
+static void __init register_insn_emulation_sysctl(void)
+{
+       unsigned long flags;
+       int i = 0;
+       struct insn_emulation *insn;
+       struct ctl_table *insns_sysctl, *sysctl;
+
+       insns_sysctl = kcalloc(nr_insn_emulated + 1, sizeof(*sysctl),
+                              GFP_KERNEL);
+       if (!insns_sysctl)
+               return;
+
+       raw_spin_lock_irqsave(&insn_emulation_lock, flags);
+       list_for_each_entry(insn, &insn_emulation, node) {
+               sysctl = &insns_sysctl[i];
+
+               sysctl->mode = 0644;
+               sysctl->maxlen = sizeof(int);
+
+               sysctl->procname = insn->name;
+               sysctl->data = &insn->current_mode;
+               sysctl->extra1 = &insn->min;
+               sysctl->extra2 = &insn->max;
+               sysctl->proc_handler = emulation_proc_handler;
+               i++;
+       }
+       raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
+
+       register_sysctl("abi", insns_sysctl);
+}
+
 /*
  * Invoked as core_initcall, which guarantees that the instruction
  * emulation is ready for userspace.