aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/Kconfig3
-rw-r--r--arch/parisc/kernel/perf.c2
-rw-r--r--arch/parisc/kernel/setup.c8
-rw-r--r--arch/parisc/kernel/sys_parisc32.c64
-rw-r--r--arch/parisc/kernel/syscall_table.S2
-rw-r--r--arch/parisc/kernel/time.c11
-rw-r--r--arch/parisc/kernel/topology.c2
-rw-r--r--arch/parisc/kernel/vmlinux.lds.S2
-rw-r--r--arch/parisc/mm/init.c7
9 files changed, 11 insertions, 90 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 0f9ff618c6d7..28da4e71c443 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -50,9 +50,6 @@ config TIME_LOW_RES
50 depends on SMP 50 depends on SMP
51 default y 51 default y
52 52
53config GENERIC_ISA_DMA
54 bool
55
56config GENERIC_HARDIRQS 53config GENERIC_HARDIRQS
57 def_bool y 54 def_bool y
58 55
diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c
index ac8ee205c351..a46bc62b643e 100644
--- a/arch/parisc/kernel/perf.c
+++ b/arch/parisc/kernel/perf.c
@@ -479,7 +479,7 @@ static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
479 return error; 479 return error;
480} 480}
481 481
482static struct file_operations perf_fops = { 482static const struct file_operations perf_fops = {
483 .llseek = no_llseek, 483 .llseek = no_llseek,
484 .read = perf_read, 484 .read = perf_read,
485 .write = perf_write, 485 .write = perf_write,
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c
index 3c7a3faf78ed..74b3686dd1e0 100644
--- a/arch/parisc/kernel/setup.c
+++ b/arch/parisc/kernel/setup.c
@@ -45,7 +45,7 @@
45#include <asm/io.h> 45#include <asm/io.h>
46#include <asm/setup.h> 46#include <asm/setup.h>
47 47
48char command_line[COMMAND_LINE_SIZE] __read_mostly; 48char __initdata command_line[COMMAND_LINE_SIZE] __read_mostly;
49 49
50/* Intended for ccio/sba/cpu statistics under /proc/bus/{runway|gsc} */ 50/* Intended for ccio/sba/cpu statistics under /proc/bus/{runway|gsc} */
51struct proc_dir_entry * proc_runway_root __read_mostly = NULL; 51struct proc_dir_entry * proc_runway_root __read_mostly = NULL;
@@ -71,9 +71,9 @@ void __init setup_cmdline(char **cmdline_p)
71 /* boot_args[0] is free-mem start, boot_args[1] is ptr to command line */ 71 /* boot_args[0] is free-mem start, boot_args[1] is ptr to command line */
72 if (boot_args[0] < 64) { 72 if (boot_args[0] < 64) {
73 /* called from hpux boot loader */ 73 /* called from hpux boot loader */
74 saved_command_line[0] = '\0'; 74 boot_command_line[0] = '\0';
75 } else { 75 } else {
76 strcpy(saved_command_line, (char *)__va(boot_args[1])); 76 strcpy(boot_command_line, (char *)__va(boot_args[1]));
77 77
78#ifdef CONFIG_BLK_DEV_INITRD 78#ifdef CONFIG_BLK_DEV_INITRD
79 if (boot_args[2] != 0) /* did palo pass us a ramdisk? */ 79 if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
@@ -84,7 +84,7 @@ void __init setup_cmdline(char **cmdline_p)
84#endif 84#endif
85 } 85 }
86 86
87 strcpy(command_line, saved_command_line); 87 strcpy(command_line, boot_command_line);
88 *cmdline_p = command_line; 88 *cmdline_p = command_line;
89} 89}
90 90
diff --git a/arch/parisc/kernel/sys_parisc32.c b/arch/parisc/kernel/sys_parisc32.c
index 29be4377aca6..ce3245f87fdd 100644
--- a/arch/parisc/kernel/sys_parisc32.c
+++ b/arch/parisc/kernel/sys_parisc32.c
@@ -579,70 +579,6 @@ asmlinkage int sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *off
579} 579}
580 580
581 581
582struct sysinfo32 {
583 s32 uptime;
584 u32 loads[3];
585 u32 totalram;
586 u32 freeram;
587 u32 sharedram;
588 u32 bufferram;
589 u32 totalswap;
590 u32 freeswap;
591 unsigned short procs;
592 u32 totalhigh;
593 u32 freehigh;
594 u32 mem_unit;
595 char _f[12];
596};
597
598/* We used to call sys_sysinfo and translate the result. But sys_sysinfo
599 * undoes the good work done elsewhere, and rather than undoing the
600 * damage, I decided to just duplicate the code from sys_sysinfo here.
601 */
602
603asmlinkage int sys32_sysinfo(struct sysinfo32 __user *info)
604{
605 struct sysinfo val;
606 int err;
607 unsigned long seq;
608
609 /* We don't need a memset here because we copy the
610 * struct to userspace once element at a time.
611 */
612
613 do {
614 seq = read_seqbegin(&xtime_lock);
615 val.uptime = jiffies / HZ;
616
617 val.loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT);
618 val.loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT);
619 val.loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT);
620
621 val.procs = nr_threads;
622 } while (read_seqretry(&xtime_lock, seq));
623
624
625 si_meminfo(&val);
626 si_swapinfo(&val);
627
628 err = put_user (val.uptime, &info->uptime);
629 err |= __put_user (val.loads[0], &info->loads[0]);
630 err |= __put_user (val.loads[1], &info->loads[1]);
631 err |= __put_user (val.loads[2], &info->loads[2]);
632 err |= __put_user (val.totalram, &info->totalram);
633 err |= __put_user (val.freeram, &info->freeram);
634 err |= __put_user (val.sharedram, &info->sharedram);
635 err |= __put_user (val.bufferram, &info->bufferram);
636 err |= __put_user (val.totalswap, &info->totalswap);
637 err |= __put_user (val.freeswap, &info->freeswap);
638 err |= __put_user (val.procs, &info->procs);
639 err |= __put_user (val.totalhigh, &info->totalhigh);
640 err |= __put_user (val.freehigh, &info->freehigh);
641 err |= __put_user (val.mem_unit, &info->mem_unit);
642 return err ? -EFAULT : 0;
643}
644
645
646/* lseek() needs a wrapper because 'offset' can be negative, but the top 582/* lseek() needs a wrapper because 'offset' can be negative, but the top
647 * half of the argument has been zeroed by syscall.S. 583 * half of the argument has been zeroed by syscall.S.
648 */ 584 */
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S
index 701d66a596e8..be8eb9a0d24a 100644
--- a/arch/parisc/kernel/syscall_table.S
+++ b/arch/parisc/kernel/syscall_table.S
@@ -197,7 +197,7 @@
197 /* struct rusage contains longs... */ 197 /* struct rusage contains longs... */
198 ENTRY_COMP(wait4) 198 ENTRY_COMP(wait4)
199 ENTRY_SAME(swapoff) /* 115 */ 199 ENTRY_SAME(swapoff) /* 115 */
200 ENTRY_DIFF(sysinfo) 200 ENTRY_COMP(sysinfo)
201 ENTRY_SAME(shutdown) 201 ENTRY_SAME(shutdown)
202 ENTRY_SAME(fsync) 202 ENTRY_SAME(fsync)
203 ENTRY_SAME(madvise) 203 ENTRY_SAME(madvise)
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c
index bad7d1eb62b9..5f1b51af06a9 100644
--- a/arch/parisc/kernel/time.c
+++ b/arch/parisc/kernel/time.c
@@ -288,17 +288,6 @@ do_settimeofday (struct timespec *tv)
288} 288}
289EXPORT_SYMBOL(do_settimeofday); 289EXPORT_SYMBOL(do_settimeofday);
290 290
291/*
292 * XXX: We can do better than this.
293 * Returns nanoseconds
294 */
295
296unsigned long long sched_clock(void)
297{
298 return (unsigned long long)jiffies * (1000000000 / HZ);
299}
300
301
302void __init start_cpu_itimer(void) 291void __init start_cpu_itimer(void)
303{ 292{
304 unsigned int cpu = smp_processor_id(); 293 unsigned int cpu = smp_processor_id();
diff --git a/arch/parisc/kernel/topology.c b/arch/parisc/kernel/topology.c
index 068b20d822e7..d71cb018a21e 100644
--- a/arch/parisc/kernel/topology.c
+++ b/arch/parisc/kernel/topology.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/parisc/kernel/topology.c - Populate driverfs with topology information 2 * arch/parisc/kernel/topology.c - Populate sysfs with topology information
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index 7b943b45f7cd..3b78c2794c36 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -173,10 +173,12 @@ SECTIONS
173 from .altinstructions and .eh_frame */ 173 from .altinstructions and .eh_frame */
174 .exit.text : { *(.exit.text) } 174 .exit.text : { *(.exit.text) }
175 .exit.data : { *(.exit.data) } 175 .exit.data : { *(.exit.data) }
176#ifdef CONFIG_BLK_DEV_INITRD
176 . = ALIGN(ASM_PAGE_SIZE); 177 . = ALIGN(ASM_PAGE_SIZE);
177 __initramfs_start = .; 178 __initramfs_start = .;
178 .init.ramfs : { *(.init.ramfs) } 179 .init.ramfs : { *(.init.ramfs) }
179 __initramfs_end = .; 180 __initramfs_end = .;
181#endif
180 . = ALIGN(32); 182 . = ALIGN(32);
181 __per_cpu_start = .; 183 __per_cpu_start = .;
182 .data.percpu : { *(.data.percpu) } 184 .data.percpu : { *(.data.percpu) }
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 0667f2b4f977..12117db0043b 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -77,12 +77,11 @@ static void __init mem_limit_func(void)
77{ 77{
78 char *cp, *end; 78 char *cp, *end;
79 unsigned long limit; 79 unsigned long limit;
80 extern char saved_command_line[];
81 80
82 /* We need this before __setup() functions are called */ 81 /* We need this before __setup() functions are called */
83 82
84 limit = MAX_MEM; 83 limit = MAX_MEM;
85 for (cp = saved_command_line; *cp; ) { 84 for (cp = boot_command_line; *cp; ) {
86 if (memcmp(cp, "mem=", 4) == 0) { 85 if (memcmp(cp, "mem=", 4) == 0) {
87 cp += 4; 86 cp += 4;
88 limit = memparse(cp, &end); 87 limit = memparse(cp, &end);
@@ -808,9 +807,7 @@ void __init paging_init(void)
808 for (i = 0; i < npmem_ranges; i++) { 807 for (i = 0; i < npmem_ranges; i++) {
809 unsigned long zones_size[MAX_NR_ZONES] = { 0, }; 808 unsigned long zones_size[MAX_NR_ZONES] = { 0, };
810 809
811 /* We have an IOMMU, so all memory can go into a single 810 zones_size[ZONE_NORMAL] = pmem_ranges[i].pages;
812 ZONE_DMA zone. */
813 zones_size[ZONE_DMA] = pmem_ranges[i].pages;
814 811
815#ifdef CONFIG_DISCONTIGMEM 812#ifdef CONFIG_DISCONTIGMEM
816 /* Need to initialize the pfnnid_map before we can initialize 813 /* Need to initialize the pfnnid_map before we can initialize