vserver 1.9.5.x5
[linux-2.6.git] / arch / ia64 / sn / kernel / sn2 / sn_proc_fs.c
index 55c1065..6a80fca 100644 (file)
@@ -11,7 +11,6 @@
 #ifdef CONFIG_PROC_FS
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
-#include <asm/sn/sgi.h>
 #include <asm/sn/sn_sal.h>
 
 static int partition_id_show(struct seq_file *s, void *p)
@@ -63,9 +62,14 @@ static int sn_force_interrupt_show(struct seq_file *s, void *p)
 }
 
 static ssize_t sn_force_interrupt_write_proc(struct file *file,
-               const __user char *buffer, size_t count, loff_t *data)
+               const char __user *buffer, size_t count, loff_t *data)
 {
-       sn_force_interrupt_flag = (*buffer == '0') ? 0 : 1;
+       char val;
+
+       if (copy_from_user(&val, buffer, 1))
+               return -EFAULT;
+
+       sn_force_interrupt_flag = (val == '0') ? 0 : 1;
        return count;
 }
 
@@ -76,7 +80,8 @@ static int sn_force_interrupt_open(struct inode *inode, struct file *file)
 
 static int coherence_id_show(struct seq_file *s, void *p)
 {
-       seq_printf(s, "%d\n", cpuid_to_coherence_id(smp_processor_id()));
+       seq_printf(s, "%d\n", partition_coherence_id());
+
        return 0;
 }
 
@@ -117,7 +122,7 @@ void register_sn_procfs(void)
        struct proc_dir_entry *e;
 
        BUG_ON(sgi_proc_dir != NULL);
-       if (!(sgi_proc_dir = proc_mkdir("sgi_sn", 0)))
+       if (!(sgi_proc_dir = proc_mkdir("sgi_sn", NULL)))
                return;
 
        sn_procfs_create_entry("partition_id", sgi_proc_dir,