Commit 4483b159 authored by Ralf Baechle's avatar Ralf Baechle

MIPS: Provide more elevant interface cu2_notifier for CP2 extensions.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
Patchwork: https://patchwork.linux-mips.org/patch/1504/
parent ea7a8463
...@@ -41,12 +41,8 @@ static int cnmips_cu2_call(struct notifier_block *nfb, unsigned long action, ...@@ -41,12 +41,8 @@ static int cnmips_cu2_call(struct notifier_block *nfb, unsigned long action,
return NOTIFY_OK; /* Let default notifier send signals */ return NOTIFY_OK; /* Let default notifier send signals */
} }
static struct notifier_block cnmips_cu2_notifier = {
.notifier_call = cnmips_cu2_call,
};
static int cnmips_cu2_setup(void) static int cnmips_cu2_setup(void)
{ {
return register_cu2_notifier(&cnmips_cu2_notifier); return cu2_notifier(cnmips_cu2_call, 0);
} }
early_initcall(cnmips_cu2_setup); early_initcall(cnmips_cu2_setup);
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#ifndef __ASM_COP2_H #ifndef __ASM_COP2_H
#define __ASM_COP2_H #define __ASM_COP2_H
#include <linux/notifier.h>
enum cu2_ops { enum cu2_ops {
CU2_EXCEPTION, CU2_EXCEPTION,
CU2_LWC2_OP, CU2_LWC2_OP,
...@@ -20,4 +22,14 @@ enum cu2_ops { ...@@ -20,4 +22,14 @@ enum cu2_ops {
extern int register_cu2_notifier(struct notifier_block *nb); extern int register_cu2_notifier(struct notifier_block *nb);
extern int cu2_notifier_call_chain(unsigned long val, void *v); extern int cu2_notifier_call_chain(unsigned long val, void *v);
#define cu2_notifier(fn, pri) \
({ \
static struct notifier_block fn##_nb __cpuinitdata = { \
.notifier_call = fn, \
.priority = pri \
}; \
\
register_cu2_notifier(&fn##_nb); \
})
#endif /* __ASM_COP2_H */ #endif /* __ASM_COP2_H */
...@@ -907,11 +907,6 @@ static int default_cu2_call(struct notifier_block *nfb, unsigned long action, ...@@ -907,11 +907,6 @@ static int default_cu2_call(struct notifier_block *nfb, unsigned long action,
return NOTIFY_OK; return NOTIFY_OK;
} }
static struct notifier_block default_cu2_notifier = {
.notifier_call = default_cu2_call,
.priority = 0x80000000, /* Run last */
};
asmlinkage void do_cpu(struct pt_regs *regs) asmlinkage void do_cpu(struct pt_regs *regs)
{ {
unsigned int __user *epc; unsigned int __user *epc;
...@@ -1734,5 +1729,5 @@ void __init trap_init(void) ...@@ -1734,5 +1729,5 @@ void __init trap_init(void)
sort_extable(__start___dbe_table, __stop___dbe_table); sort_extable(__start___dbe_table, __stop___dbe_table);
register_cu2_notifier(&default_cu2_notifier); cu2_notifier(default_cu2_call, 0x80000000); /* Run last */
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment