fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / ppc / kernel / ppc_htab.c
index b5cd7e4..bd129d3 100644 (file)
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
 #include <linux/stat.h>
 #include <linux/sysctl.h>
+#include <linux/capability.h>
 #include <linux/ctype.h>
 #include <linux/threads.h>
 #include <linux/smp_lock.h>
@@ -51,7 +51,7 @@ static int ppc_htab_open(struct inode *inode, struct file *file)
        return single_open(file, ppc_htab_show, NULL);
 }
 
-struct file_operations ppc_htab_operations = {
+const struct file_operations ppc_htab_operations = {
        .open           = ppc_htab_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
@@ -103,12 +103,12 @@ static char *pmc2_lookup(unsigned long mmcr0)
 static int ppc_htab_show(struct seq_file *m, void *v)
 {
        unsigned long mmcr0 = 0, pmc1 = 0, pmc2 = 0;
-#if defined(CONFIG_PPC_STD_MMU) && !defined(CONFIG_PPC64BRIDGE)
+#if defined(CONFIG_PPC_STD_MMU)
        unsigned int kptes = 0, uptes = 0;
        PTE *ptr;
 #endif /* CONFIG_PPC_STD_MMU */
 
-       if (cur_cpu_spec[0]->cpu_features & CPU_FTR_604_PERF_MON) {
+       if (cpu_has_feature(CPU_FTR_604_PERF_MON)) {
                mmcr0 = mfspr(SPRN_MMCR0);
                pmc1 = mfspr(SPRN_PMC1);
                pmc2 = mfspr(SPRN_PMC2);
@@ -132,7 +132,6 @@ static int ppc_htab_show(struct seq_file *m, void *v)
                return 0;
        }
 
-#ifndef CONFIG_PPC64BRIDGE
        for (ptr = Hash; ptr < Hash_end; ptr++) {
                unsigned int mctx, vsid;
 
@@ -146,7 +145,6 @@ static int ppc_htab_show(struct seq_file *m, void *v)
                else
                        uptes++;
        }
-#endif
 
        seq_printf(m,
                      "PTE Hash Table Information\n"
@@ -154,20 +152,16 @@ static int ppc_htab_show(struct seq_file *m, void *v)
                      "Buckets\t\t: %lu\n"
                      "Address\t\t: %08lx\n"
                      "Entries\t\t: %lu\n"
-#ifndef CONFIG_PPC64BRIDGE
                      "User ptes\t: %u\n"
                      "Kernel ptes\t: %u\n"
                      "Percent full\t: %lu%%\n"
-#endif
                       , (unsigned long)(Hash_size>>10),
                      (Hash_size/(sizeof(PTE)*8)),
                      (unsigned long)Hash,
                      Hash_size/sizeof(PTE)
-#ifndef CONFIG_PPC64BRIDGE
                       , uptes,
                      kptes,
                      ((kptes+uptes)*100) / (Hash_size/sizeof(PTE))
-#endif
                );
 
        seq_printf(m,
@@ -209,7 +203,7 @@ static ssize_t ppc_htab_write(struct file * file, const char __user * ubuffer,
 
        if ( !strncmp( buffer, "reset", 5) )
        {
-               if (cur_cpu_spec[0]->cpu_features & CPU_FTR_604_PERF_MON) {
+               if (cpu_has_feature(CPU_FTR_604_PERF_MON)) {
                        /* reset PMC1 and PMC2 */
                        mtspr(SPRN_PMC1, 0);
                        mtspr(SPRN_PMC2, 0);
@@ -221,7 +215,7 @@ static ssize_t ppc_htab_write(struct file * file, const char __user * ubuffer,
        }
 
        /* Everything below here requires the performance monitor feature. */
-       if ( !cur_cpu_spec[0]->cpu_features & CPU_FTR_604_PERF_MON )
+       if (!cpu_has_feature(CPU_FTR_604_PERF_MON))
                return count;
 
        /* turn off performance monitoring */
@@ -339,7 +333,7 @@ int proc_dol2crvec(ctl_table *table, int write, struct file *filp,
                "0.5", "1.0", "(reserved2)", "(reserved3)"
        };
 
-       if (!(cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR))
+       if (!cpu_has_feature(CPU_FTR_L2CR))
                return -EFAULT;
 
        if ( /*!table->maxlen ||*/ (*ppos && !write)) {