summaryrefslogtreecommitdiffstats
path: root/arch/mips64
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-11-23 02:00:47 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-11-23 02:00:47 +0000
commit06615f62b17d7de6e12d2f5ec6b88cf30af08413 (patch)
tree8766f208847d4876a6db619aebbf54d53b76eb44 /arch/mips64
parentfa9bdb574f4febb751848a685d9a9017e04e1d53 (diff)
Merge with Linux 2.4.0-test10.
Diffstat (limited to 'arch/mips64')
-rw-r--r--arch/mips64/defconfig1
-rw-r--r--arch/mips64/defconfig-ip271
-rw-r--r--arch/mips64/kernel/ptrace.c29
-rw-r--r--arch/mips64/kernel/smp.c4
-rw-r--r--arch/mips64/mm/init.c2
-rw-r--r--arch/mips64/sgi-ip22/ip22-timer.c4
-rw-r--r--arch/mips64/sgi-ip27/ip27-console.c18
-rw-r--r--arch/mips64/sgi-ip27/ip27-memory.c8
-rw-r--r--arch/mips64/sgi-ip27/ip27-rtc.c4
-rw-r--r--arch/mips64/sgi-ip27/ip27-timer.c2
10 files changed, 45 insertions, 28 deletions
diff --git a/arch/mips64/defconfig b/arch/mips64/defconfig
index 51d2d3c06..8c86e86f3 100644
--- a/arch/mips64/defconfig
+++ b/arch/mips64/defconfig
@@ -234,6 +234,7 @@ CONFIG_SGI_IOC3_ETH=y
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_PCI is not set
# CONFIG_NET_POCKET is not set
diff --git a/arch/mips64/defconfig-ip27 b/arch/mips64/defconfig-ip27
index 51d2d3c06..8c86e86f3 100644
--- a/arch/mips64/defconfig-ip27
+++ b/arch/mips64/defconfig-ip27
@@ -234,6 +234,7 @@ CONFIG_SGI_IOC3_ETH=y
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_PCI is not set
# CONFIG_NET_POCKET is not set
diff --git a/arch/mips64/kernel/ptrace.c b/arch/mips64/kernel/ptrace.c
index 579fc8855..86e17a009 100644
--- a/arch/mips64/kernel/ptrace.c
+++ b/arch/mips64/kernel/ptrace.c
@@ -5,7 +5,7 @@
*
* Copyright (C) 1992 Ross Biro
* Copyright (C) Linus Torvalds
- * Copyright (C) 1994, 1995, 1996, 1997, 1998 Ralf Baechle
+ * Copyright (C) 1994, 95, 96, 97, 98, 2000 Ralf Baechle
* Copyright (C) 1996 David S. Miller
* Copyright (C) 2000 Ulf Carlsson
*
@@ -268,7 +268,7 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
ret = -EIO;
if ((unsigned long) data > _NSIG)
break;
- child->ptrace &= ~(PT_PTRACED|PT_TRACESYS);
+ child->ptrace = 0;
child->exit_code = data;
write_lock_irq(&tasklist_lock);
REMOVE_LINKS(child);
@@ -280,6 +280,15 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
break;
}
+ case PTRACE_SETOPTIONS: {
+ if (data & PTRACE_O_TRACESYSGOOD)
+ child->ptrace |= PT_TRACESYSGOOD;
+ else
+ child->ptrace &= ~PT_TRACESYSGOOD;
+ ret = 0;
+ break;
+ }
+
default:
ret = -EIO;
break;
@@ -534,7 +543,7 @@ asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
ret = -EIO;
if ((unsigned long) data > _NSIG)
break;
- child->ptrace &= ~(PT_PTRACED|PT_TRACESYS);
+ child->ptrace = 0;
child->exit_code = data;
write_lock_irq(&tasklist_lock);
REMOVE_LINKS(child);
@@ -546,6 +555,15 @@ asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
break;
}
+ case PTRACE_SETOPTIONS: {
+ if (data & PTRACE_O_TRACESYSGOOD)
+ child->ptrace |= PT_TRACESYSGOOD;
+ else
+ child->ptrace &= ~PT_TRACESYSGOOD;
+ ret = 0;
+ break;
+ }
+
default:
ret = -EIO;
break;
@@ -564,7 +582,10 @@ asmlinkage void syscall_trace(void)
!= (PT_PTRACED|PT_TRACESYS))
return;
- current->exit_code = SIGTRAP;
+ /* The 0x80 provides a way for the tracing parent to distinguish
+ between a syscall stop and SIGTRAP delivery */
+ current->exit_code = SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
+ ? 0x80 : 0);
current->state = TASK_STOPPED;
notify_parent(current, SIGCHLD);
schedule();
diff --git a/arch/mips64/kernel/smp.c b/arch/mips64/kernel/smp.c
index b004f6777..655d2add2 100644
--- a/arch/mips64/kernel/smp.c
+++ b/arch/mips64/kernel/smp.c
@@ -54,7 +54,7 @@ static void sendintr(int destid, unsigned char status)
/* The 'big kernel lock' */
spinlock_t kernel_flag = SPIN_LOCK_UNLOCKED;
-int smp_threads_ready = 0; /* Not used */
+int smp_threads_ready; /* Not used */
atomic_t smp_commenced = ATOMIC_INIT(0);
struct cpuinfo_mips cpu_data[NR_CPUS];
int smp_num_cpus; /* Number that came online. */
@@ -130,7 +130,7 @@ static volatile struct call_data_struct {
atomic_t started;
atomic_t finished;
int wait;
-} *call_data = NULL;
+} *call_data;
int smp_call_function (void (*func) (void *info), void *info, int retry,
int wait)
diff --git a/arch/mips64/mm/init.c b/arch/mips64/mm/init.c
index f1d95c702..a594c69a0 100644
--- a/arch/mips64/mm/init.c
+++ b/arch/mips64/mm/init.c
@@ -38,7 +38,7 @@
#endif
#include <asm/mmu_context.h>
-unsigned long totalram_pages = 0;
+unsigned long totalram_pages;
void __bad_pte_kernel(pmd_t *pmd)
{
diff --git a/arch/mips64/sgi-ip22/ip22-timer.c b/arch/mips64/sgi-ip22/ip22-timer.c
index 76ed0c214..e98ec596e 100644
--- a/arch/mips64/sgi-ip22/ip22-timer.c
+++ b/arch/mips64/sgi-ip22/ip22-timer.c
@@ -79,8 +79,8 @@ static int set_rtc_mmss(unsigned long nowtime)
return retval;
}
-static long last_rtc_update = 0;
-unsigned long missed_heart_beats = 0;
+static long last_rtc_update;
+unsigned long missed_heart_beats;
void indy_timer_interrupt(struct pt_regs *regs)
{
diff --git a/arch/mips64/sgi-ip27/ip27-console.c b/arch/mips64/sgi-ip27/ip27-console.c
index e45a078b5..fa3ffb1cb 100644
--- a/arch/mips64/sgi-ip27/ip27-console.c
+++ b/arch/mips64/sgi-ip27/ip27-console.c
@@ -28,7 +28,7 @@ void prom_putchar(char c)
char __init prom_getchar(void)
{
- return(0);
+ return 0;
}
static void
@@ -44,17 +44,11 @@ ip27prom_console_dev(struct console *c)
}
static struct console ip27_prom_console = {
- "prom",
- ip27prom_console_write,
- NULL,
- ip27prom_console_dev,
- NULL,
- NULL,
- NULL,
- CON_PRINTBUFFER,
- -1,
- 0,
- NULL
+ name: "prom",
+ write: ip27prom_console_write,
+ device: ip27prom_console_dev,
+ flags: CON_PRINTBUFFER,
+ index: -1,
};
__init void ip27_setup_console(void)
diff --git a/arch/mips64/sgi-ip27/ip27-memory.c b/arch/mips64/sgi-ip27/ip27-memory.c
index f858d098f..0e469ce4b 100644
--- a/arch/mips64/sgi-ip27/ip27-memory.c
+++ b/arch/mips64/sgi-ip27/ip27-memory.c
@@ -200,11 +200,11 @@ void __init prom_meminit(void)
<< PAGE_SHIFT));
NODE_DATA(node)->bdata = plat_node_bdata + node;
slot_freepfn += node_datasz;
- bootmap_size = init_bootmem_node(node, slot_freepfn,
+ bootmap_size = init_bootmem_node(NODE_DATA(node), slot_freepfn,
slot_firstpfn, slot_lastpfn);
- free_bootmem_node(node, slot_firstpfn << PAGE_SHIFT,
+ free_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
(slot_lastpfn - slot_firstpfn) << PAGE_SHIFT);
- reserve_bootmem_node(node, slot_firstpfn << PAGE_SHIFT,
+ reserve_bootmem_node(NODE_DATA(node), slot_firstpfn << PAGE_SHIFT,
((slot_freepfn - slot_firstpfn) << PAGE_SHIFT) + bootmap_size);
}
printk("Total memory probed : 0x%lx pages\n", numpages);
@@ -278,7 +278,7 @@ void __init mem_init(void)
/*
* This will free up the bootmem, ie, slot 0 memory.
*/
- totalram_pages += free_all_bootmem_node(nid);
+ totalram_pages += free_all_bootmem_node(NODE_DATA(nid));
/*
* We need to manually do the other slots.
diff --git a/arch/mips64/sgi-ip27/ip27-rtc.c b/arch/mips64/sgi-ip27/ip27-rtc.c
index bb5209d64..b29af3d73 100644
--- a/arch/mips64/sgi-ip27/ip27-rtc.c
+++ b/arch/mips64/sgi-ip27/ip27-rtc.c
@@ -60,8 +60,8 @@ static void get_rtc_time(struct rtc_time *rtc_tm);
#define RTC_IS_OPEN 0x01 /* means /dev/rtc is in use */
#define RTC_TIMER_ON 0x02 /* missed irq timer active */
-static unsigned char rtc_status = 0; /* bitmapped status byte. */
-static unsigned long rtc_freq = 0; /* Current periodic IRQ rate */
+static unsigned char rtc_status; /* bitmapped status byte. */
+static unsigned long rtc_freq; /* Current periodic IRQ rate */
static struct m48t35_rtc *rtc;
/*
diff --git a/arch/mips64/sgi-ip27/ip27-timer.c b/arch/mips64/sgi-ip27/ip27-timer.c
index 8cbb943c8..edbeb9e11 100644
--- a/arch/mips64/sgi-ip27/ip27-timer.c
+++ b/arch/mips64/sgi-ip27/ip27-timer.c
@@ -37,7 +37,7 @@
#define CYCLES_PER_JIFFY (CYCLES_PER_SEC/HZ)
static unsigned long ct_cur[NR_CPUS]; /* What counter should be at next timer irq */
-static long last_rtc_update = 0; /* Last time the rtc clock got updated */
+static long last_rtc_update; /* Last time the rtc clock got updated */
extern rwlock_t xtime_lock;
extern volatile unsigned long wall_jiffies;