diff options
author | Luck, Tony <tony.luck@intel.com> | 2011-11-03 11:46:47 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-11-08 16:17:11 +0100 |
commit | 66f5ddf30a59f811818656cb2833c80da0340cfa (patch) | |
tree | f10616e055f5c92007bf4a4304884a3a66b9b652 /arch/x86/include/asm/mce.h | |
parent | 1ea6b8f48918282bdca0b32a34095504ee65bab5 (diff) | |
download | blackbird-op-linux-66f5ddf30a59f811818656cb2833c80da0340cfa.tar.gz blackbird-op-linux-66f5ddf30a59f811818656cb2833c80da0340cfa.zip |
x86/mce: Make mce_chrdev_ops 'static const'
Arjan would like to make struct file_operations const, but
mce-inject directly writes to the mce_chrdev_ops to install its
write handler. In an ideal world mce-inject would have its own
character device, but we have a sizable legacy of test scripts
that hardwire "/dev/mcelog", so it would be painful to switch to
a separate device now. Instead, this patch switches to a stub
function in the mce code, with a registration helper that
mce-inject can call when it is loaded.
Note that this would also allow for a sane process to allow
mce-inject to be unloaded again (with an unregister function,
and appropriate module_{get,put}() calls), but that is left for
potential future patches.
Reported-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/4eb2e1971326651a3b@agluck-desktop.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include/asm/mce.h')
-rw-r--r-- | arch/x86/include/asm/mce.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h index c9321f34e55b..0e8ae57d3656 100644 --- a/arch/x86/include/asm/mce.h +++ b/arch/x86/include/asm/mce.h @@ -201,7 +201,10 @@ int mce_notify_irq(void); void mce_notify_process(void); DECLARE_PER_CPU(struct mce, injectm); -extern struct file_operations mce_chrdev_ops; + +extern void register_mce_write_callback(ssize_t (*)(struct file *filp, + const char __user *ubuf, + size_t usize, loff_t *off)); /* * Exception handler |