lkml.org 
[lkml]   [2003]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH][2.6.0-test3] i386 msr.c devfs support 1/2
Date
On Sunday 10 August 2003 17:58, Dave Jones wrote:
> On Sun, Aug 10, 2003 at 12:51:03PM +0400, Andrey Borzenkov wrote:
> > Please let me know if default permissions (644) are not appropriate.
>
> bogus. They should be set to 600. Non-root access to MSRs (even read
> only) can cause instant lockup/reboot on some CPUs if user tries to
> read non-existant MSR.
>

update patch attached.

-andrey--- ../tmp/linux-2.6.0-test3/arch/i386/kernel/msr.c 2003-07-27 22:28:41.000000000 +0400
+++ linux-2.6.0-test3-smp/arch/i386/kernel/msr.c 2003-08-10 18:06:30.000000000 +0400
@@ -37,6 +37,8 @@
#include <linux/major.h>
#include <linux/fs.h>

+#include <linux/devfs_fs_kernel.h>
+
#include <asm/processor.h>
#include <asm/msr.h>
#include <asm/uaccess.h>
@@ -263,17 +265,28 @@ static struct file_operations msr_fops =

int __init msr_init(void)
{
+ int i;
+
if (register_chrdev(MSR_MAJOR, "cpu/msr", &msr_fops)) {
printk(KERN_ERR "msr: unable to get major %d for msr\n",
MSR_MAJOR);
return -EBUSY;
}
+
+ for (i = 0; i < NR_CPUS; i++)
+ devfs_mk_cdev(MKDEV(MSR_MAJOR, i), S_IFCHR | S_IRUSR | S_IWUSR,
+ "cpu/%d/msr", i);

return 0;
}

void __exit msr_exit(void)
{
+ int i;
+
+ for (i = 0; i < NR_CPUS; i++)
+ devfs_remove("cpu/%d/msr", i);
+
unregister_chrdev(MSR_MAJOR, "cpu/msr");
}
\
 
 \ /
  Last update: 2005-03-22 13:47    [W:0.048 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site