lkml.org 
[lkml]   [1999]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: error compiling 2.3.11 on DEC/Alpha
On Sun, 25 Jul 1999, Christian Groessler wrote:

>
>
>
> Hi,
>
> this is what happens:
>
> make[2]: Entering directory `/usr/src/linux-2.3.11/kernel'
> gcc -D__KERNEL__ -I/usr/src/linux-2.3.11/include -Wall -Wstrict-prototypes
> -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -mno-fp-regs -ffixed-8
> -mcpu=ev4 -DEXPORT_SYMTAB -c signal.c
> /usr/src/linux-2.3.11/include/asm/uaccess.h: In function `verify_area':
> In file included from signal.c:16:
> /usr/src/linux-2.3.11/include/asm/uaccess.h:51: structure has no member
> named `tss'
[...]


Attached is a patch that gets things compiling on the Alpha, but it
needs more work because it crashes on boot w/ some waitqueue debug
errors.

Jeff





diff -urbN /g/vanilla/v2.3.12-pre1/linux/Makefile linux/Makefile
--- /g/vanilla/v2.3.12-pre1/linux/Makefile Sat Jul 24 13:42:04 1999
+++ linux/Makefile Sat Jul 24 13:12:41 1999
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 3
SUBLEVEL = 12
-EXTRAVERSION =
+EXTRAVERSION = pre1

ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)

@@ -16,7 +16,7 @@
FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net

HOSTCC =gcc
-HOSTCFLAGS =-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
+HOSTCFLAGS =-Wall -Wstrict-prototypes -O -fomit-frame-pointer

CROSS_COMPILE =

@@ -86,7 +86,7 @@
# standard CFLAGS
#

-CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
+CFLAGS = -Wall -Wstrict-prototypes -O -fomit-frame-pointer

# use '-fno-strict-aliasing', but only if the compiler can take it
CFLAGS += $(shell if $(CC) -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-fno-strict-aliasing"; fi)
diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/osf_sys.c linux/arch/alpha/kernel/osf_sys.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/osf_sys.c Sat Jul 24 13:41:46 1999
+++ linux/arch/alpha/kernel/osf_sys.c Sat Jul 24 14:01:46 1999
@@ -895,11 +895,11 @@
w = ieee_fpcr_to_swcr(fpcr);
if (!(fpcr & FPCR_UNDZ)) {
w &= ~IEEE_TRAP_ENABLE_UNF;
- w |= current->tss.flags & IEEE_TRAP_ENABLE_UNF;
+ w |= current->thread.flags & IEEE_TRAP_ENABLE_UNF;
}
} else {
/* Otherwise we are forced to do everything in sw. */
- w = current->tss.flags & IEEE_SW_MASK;
+ w = current->thread.flags & IEEE_SW_MASK;
}

if (put_user(w, (unsigned long *) buffer))
@@ -917,7 +917,7 @@
case GSI_UACPROC:
if (nbytes < sizeof(unsigned int))
return -EINVAL;
- w = (current->tss.flags >> UAC_SHIFT) & UAC_BITMASK;
+ w = (current->thread.flags >> UAC_SHIFT) & UAC_BITMASK;
if (put_user(w, (unsigned int *)buffer))
return -EFAULT;
return 1;
@@ -964,8 +964,8 @@
/* Update softare trap enable bits. */
if (get_user(swcr, (unsigned long *)buffer))
return -EFAULT;
- current->tss.flags &= ~IEEE_SW_MASK;
- current->tss.flags |= swcr & IEEE_SW_MASK;
+ current->thread.flags &= ~IEEE_SW_MASK;
+ current->thread.flags |= swcr & IEEE_SW_MASK;

/* Update the real fpcr. Keep UNFD off if not UNDZ. */
fpcr = rdfpcr();
@@ -997,9 +997,9 @@
return -EFAULT;
switch (v) {
case SSIN_UACPROC:
- current->tss.flags &=
+ current->thread.flags &=
~(UAC_BITMASK << UAC_SHIFT);
- current->tss.flags |=
+ current->thread.flags |=
(w & UAC_BITMASK) << UAC_SHIFT;
break;

diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/process.c linux/arch/alpha/kernel/process.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/process.c Sat Jul 24 13:41:46 1999
+++ linux/arch/alpha/kernel/process.c Sat Jul 24 14:21:24 1999
@@ -61,7 +61,7 @@
struct mm_struct init_mm = INIT_MM(init_mm);

union task_union init_task_union __attribute__((section("init_task")))
- = { task: INIT_TASK(init_task_union.task) };
+ = { INIT_TASK(init_task_union.task), };

/*
* No need to acquire the kernel lock, we're entirely local..
@@ -255,7 +255,7 @@
that EV6 defines UNFD valid only with UNDZ, which we don't want
for IEEE conformance -- so that disabled bit remains in software. */

- current->tss.flags &= ~IEEE_SW_MASK;
+ current->thread.flags &= ~IEEE_SW_MASK;
wrfpcr(FPCR_DYN_NORMAL | FPCR_INVD | FPCR_DZED | FPCR_OVFD | FPCR_INED);
}

@@ -325,10 +325,10 @@
#else
childstack->r26 = (unsigned long) ret_from_sys_call;
#endif
- p->tss.usp = usp;
- p->tss.ksp = (unsigned long) childstack;
- p->tss.pal_flags = 1; /* set FEN, clear everything else */
- p->tss.flags = current->tss.flags;
+ p->thread.usp = usp;
+ p->thread.ksp = (unsigned long) childstack;
+ p->thread.pal_flags = 1; /* set FEN, clear everything else */
+ p->thread.flags = current->thread.flags;

return 0;
}
diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/ptrace.c linux/arch/alpha/kernel/ptrace.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/ptrace.c Sat Jul 24 13:41:46 1999
+++ linux/arch/alpha/kernel/ptrace.c Sat Jul 24 14:02:12 1999
@@ -106,7 +106,7 @@
long *addr;

if (regno == 30) {
- addr = &task->tss.usp;
+ addr = &task->thread.usp;
} else if (regno == 31 || regno > 64) {
zero = 0;
addr = &zero;
@@ -175,31 +175,31 @@
* branch (emulation can be tricky for fp branches).
*/
displ = ((s32)(insn << 11)) >> 9;
- child->tss.bpt_addr[nsaved++] = pc + 4;
+ child->thread.bpt_addr[nsaved++] = pc + 4;
if (displ) /* guard against unoptimized code */
- child->tss.bpt_addr[nsaved++] = pc + 4 + displ;
+ child->thread.bpt_addr[nsaved++] = pc + 4 + displ;
DBG(DBG_BPT, ("execing branch\n"));
} else if (op_code == 0x1a) {
reg_b = (insn >> 16) & 0x1f;
- child->tss.bpt_addr[nsaved++] = get_reg(child, reg_b);
+ child->thread.bpt_addr[nsaved++] = get_reg(child, reg_b);
DBG(DBG_BPT, ("execing jump\n"));
} else {
- child->tss.bpt_addr[nsaved++] = pc + 4;
+ child->thread.bpt_addr[nsaved++] = pc + 4;
DBG(DBG_BPT, ("execing normal insn\n"));
}

/* install breakpoints: */
for (i = 0; i < nsaved; ++i) {
- res = read_int(child, child->tss.bpt_addr[i], &insn);
+ res = read_int(child, child->thread.bpt_addr[i], &insn);
if (res < 0)
return res;
- child->tss.bpt_insn[i] = insn;
- DBG(DBG_BPT, (" -> next_pc=%lx\n", child->tss.bpt_addr[i]));
- res = write_int(child, child->tss.bpt_addr[i], BREAKINST);
+ child->thread.bpt_insn[i] = insn;
+ DBG(DBG_BPT, (" -> next_pc=%lx\n", child->thread.bpt_addr[i]));
+ res = write_int(child, child->thread.bpt_addr[i], BREAKINST);
if (res < 0)
return res;
}
- child->tss.bpt_nsaved = nsaved;
+ child->thread.bpt_nsaved = nsaved;
return 0;
}

@@ -210,9 +210,9 @@
int
ptrace_cancel_bpt(struct task_struct * child)
{
- int i, nsaved = child->tss.bpt_nsaved;
+ int i, nsaved = child->thread.bpt_nsaved;

- child->tss.bpt_nsaved = 0;
+ child->thread.bpt_nsaved = 0;

if (nsaved > 2) {
printk("ptrace_cancel_bpt: bogus nsaved: %d!\n", nsaved);
@@ -220,8 +220,8 @@
}

for (i = 0; i < nsaved; ++i) {
- write_int(child, child->tss.bpt_addr[i],
- child->tss.bpt_insn[i]);
+ write_int(child, child->thread.bpt_addr[i],
+ child->thread.bpt_insn[i]);
}
return (nsaved != 0);
}
@@ -365,7 +365,7 @@
ret = -EIO;
if ((unsigned long) data > _NSIG)
goto out;
- child->tss.bpt_nsaved = -1; /* mark single-stepping */
+ child->thread.bpt_nsaved = -1; /* mark single-stepping */
child->flags &= ~PF_TRACESYS;
wake_up_process(child);
child->exit_code = data;
diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/smp.c linux/arch/alpha/kernel/smp.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/smp.c Sat Jul 24 13:41:46 1999
+++ linux/arch/alpha/kernel/smp.c Sat Jul 24 14:02:36 1999
@@ -339,17 +339,17 @@
time. Precalculate the target PCBB. */
hwpcb->ksp = (unsigned long) idle + sizeof(union task_union) - 16;
hwpcb->usp = 0;
- hwpcb->ptbr = idle->tss.ptbr;
+ hwpcb->ptbr = idle->thread.ptbr;
hwpcb->pcc = 0;
hwpcb->asn = 0;
- hwpcb->unique = virt_to_phys(&idle->tss);
- hwpcb->flags = idle->tss.pal_flags;
+ hwpcb->unique = virt_to_phys(&idle->thread);
+ hwpcb->flags = idle->thread.pal_flags;
hwpcb->res1 = hwpcb->res2 = 0;

DBGS(("KSP 0x%lx PTBR 0x%lx VPTBR 0x%lx UNIQUE 0x%lx\n",
hwpcb->ksp, hwpcb->ptbr, hwrpb->vptb, hwcpb->unique));
DBGS(("Starting secondary cpu %d: state 0x%lx pal_flags 0x%lx\n",
- cpuid, idle->state, idle->tss.pal_flags));
+ cpuid, idle->state, idle->thread.pal_flags));

/* Setup HWRPB fields that SRM uses to activate secondary CPU */
hwrpb->CPU_restart = __smp_callin;
diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/traps.c linux/arch/alpha/kernel/traps.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/kernel/traps.c Fri May 14 15:41:23 1999
+++ linux/arch/alpha/kernel/traps.c Sat Jul 24 14:02:44 1999
@@ -103,12 +103,12 @@
dik_show_code((unsigned int *)regs->pc);
dik_show_trace((unsigned long *)(regs+1));

- if (current->tss.flags & (1UL << 63)) {
+ if (current->thread.flags & (1UL << 63)) {
printk("die_if_kernel recursion detected.\n");
sti();
while (1);
}
- current->tss.flags |= (1UL << 63);
+ current->thread.flags |= (1UL << 63);
do_exit(SIGSEGV);
}

@@ -494,12 +494,12 @@
dik_show_code((unsigned int *)pc);
dik_show_trace((unsigned long *)(&regs+1));

- if (current->tss.flags & (1UL << 63)) {
+ if (current->thread.flags & (1UL << 63)) {
printk("die_if_kernel recursion detected.\n");
sti();
while (1);
}
- current->tss.flags |= (1UL << 63);
+ current->thread.flags |= (1UL << 63);
do_exit(SIGSEGV);
}

@@ -601,7 +601,7 @@
/* Check the UAC bits to decide what the user wants us to do
with the unaliged access. */

- uac_bits = (current->tss.flags >> UAC_SHIFT) & UAC_BITMASK;
+ uac_bits = (current->thread.flags >> UAC_SHIFT) & UAC_BITMASK;
if (!(uac_bits & UAC_NOPRINT)) {
if (cnt >= 5 && jiffies - last_time > 5*HZ) {
cnt = 0;
diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/math-emu/fp-emul.c linux/arch/alpha/math-emu/fp-emul.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/math-emu/fp-emul.c Mon May 10 12:55:21 1999
+++ linux/arch/alpha/math-emu/fp-emul.c Sat Jul 24 15:55:46 1999
@@ -107,7 +107,7 @@
alpha_fp_emul (unsigned long pc)
{
unsigned long op_fun, fa, fb, fc, func, mode;
- unsigned long fpcw = current->tss.flags;
+ unsigned long fpcw = current->thread.flags;
unsigned long va, vb, vc, res, fpcr;
__u32 insn;

@@ -255,7 +255,7 @@
*/
if (res) {
/* Record exceptions in software control word. */
- current->tss.flags = fpcw |= res >> 35;
+ current->thread.flags = fpcw |= res >> 35;

/* Update hardware control register */
fpcr &= (~FPCR_MASK | FPCR_DYN_MASK);
diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/mm/fault.c linux/arch/alpha/mm/fault.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/mm/fault.c Sat Jul 24 13:41:47 1999
+++ linux/arch/alpha/mm/fault.c Sat Jul 24 15:53:43 1999
@@ -42,7 +42,7 @@
{
unsigned long new = __get_new_mmu_context(p, mm);
mm->context = new;
- p->tss.asn = new & HARDWARE_ASN_MASK;
+ p->thread.asn = new & HARDWARE_ASN_MASK;
}


diff -urbN /g/vanilla/v2.3.12-pre1/linux/arch/alpha/mm/init.c linux/arch/alpha/mm/init.c
--- /g/vanilla/v2.3.12-pre1/linux/arch/alpha/mm/init.c Sat Jul 24 13:41:47 1999
+++ linux/arch/alpha/mm/init.c Sat Jul 24 15:53:58 1999
@@ -233,10 +233,10 @@
}

/* Also set up the real kernel PCB while we're at it. */
- init_task.tss.ptbr = newptbr;
- init_task.tss.pal_flags = 1; /* set FEN, clear everything else */
- init_task.tss.flags = 0;
- original_pcb_ptr = load_PCB(&init_task.tss);
+ init_task.thread.ptbr = newptbr;
+ init_task.thread.pal_flags = 1; /* set FEN, clear everything else */
+ init_task.thread.flags = 0;
+ original_pcb_ptr = load_PCB(&init_task.thread);
tbia();

/* Save off the contents of the original PCB so that we can
diff -urbN /g/vanilla/v2.3.12-pre1/linux/fs/exec.c linux/fs/exec.c
--- /g/vanilla/v2.3.12-pre1/linux/fs/exec.c Sat Jul 24 13:42:05 1999
+++ linux/fs/exec.c Sat Jul 24 13:46:01 1999
@@ -850,6 +850,7 @@
if (!binfmt || !binfmt->core_dump)
goto fail;
if (!current->dumpable || atomic_read(&current->mm->mm_users) != 1)
+ goto fail;
current->dumpable = 0;
if (current->rlim[RLIMIT_CORE].rlim_cur < binfmt->min_coredump)
goto fail;
diff -urbN /g/vanilla/v2.3.12-pre1/linux/fs/proc/array.c linux/fs/proc/array.c
--- /g/vanilla/v2.3.12-pre1/linux/fs/proc/array.c Sat Jul 24 13:41:50 1999
+++ linux/fs/proc/array.c Sat Jul 24 13:36:26 1999
@@ -523,9 +523,9 @@
unsigned long schedule_frame;
unsigned long pc;

- pc = thread_saved_pc(&p->tss);
+ pc = thread_saved_pc(&p->thread);
if (pc >= first_sched && pc < last_sched) {
- schedule_frame = ((unsigned long *)p->tss.ksp)[6];
+ schedule_frame = ((unsigned long *)p->thread.ksp)[6];
return ((unsigned long *)schedule_frame)[12];
}
return pc;
@@ -537,7 +537,7 @@
int count = 0;

stack_page = (unsigned long)p;
- fp = ((struct switch_stack *)p->tss.ksp)->a6;
+ fp = ((struct switch_stack *)p->thread.ksp)->a6;
do {
if (fp < stack_page+sizeof(struct task_struct) ||
fp >= 8184+stack_page)
@@ -555,7 +555,7 @@
unsigned long stack_page = (unsigned long) p;
int count = 0;

- sp = p->tss.ksp;
+ sp = p->thread.ksp;
do {
sp = *(unsigned long *)sp;
if (sp < stack_page || sp >= stack_page + 8188)
@@ -574,7 +574,7 @@
int count = 0;

stack_page = 4096 + (unsigned long)p;
- fp = get_css_fp (&p->tss);
+ fp = get_css_fp (&p->thread);
do {
if (fp < stack_page || fp > 4092+stack_page)
return 0;
@@ -594,7 +594,7 @@
#ifdef __sparc_v9__
bias = STACK_BIAS;
#endif
- fp = p->tss.ksp + bias;
+ fp = p->thread.ksp + bias;
do {
/* Bogus frame pointer? */
if (fp < (task_base + sizeof(struct task_struct)) ||
@@ -622,7 +622,7 @@
+ (long)&((struct pt_regs *)0)->reg)
# define KSTK_EIP(tsk) \
(*(unsigned long *)(PT_REG(pc) + PAGE_SIZE + (unsigned long)(tsk)))
-# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
+# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
#elif defined(__arm__)
# define KSTK_EIP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1022])
# define KSTK_ESP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1020])
@@ -630,20 +630,20 @@
#define KSTK_EIP(tsk) \
({ \
unsigned long eip = 0; \
- if ((tsk)->tss.esp0 > PAGE_SIZE && \
- MAP_NR((tsk)->tss.esp0) < max_mapnr) \
- eip = ((struct pt_regs *) (tsk)->tss.esp0)->pc; \
+ if ((tsk)->thread.esp0 > PAGE_SIZE && \
+ MAP_NR((tsk)->thread.esp0) < max_mapnr) \
+ eip = ((struct pt_regs *) (tsk)->thread.esp0)->pc; \
eip; })
-#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
+#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
#elif defined(__powerpc__)
-#define KSTK_EIP(tsk) ((tsk)->tss.regs->nip)
-#define KSTK_ESP(tsk) ((tsk)->tss.regs->gpr[1])
+#define KSTK_EIP(tsk) ((tsk)->thread.regs->nip)
+#define KSTK_ESP(tsk) ((tsk)->thread.regs->gpr[1])
#elif defined (__sparc_v9__)
-# define KSTK_EIP(tsk) ((tsk)->tss.kregs->tpc)
-# define KSTK_ESP(tsk) ((tsk)->tss.kregs->u_regs[UREG_FP])
+# define KSTK_EIP(tsk) ((tsk)->thread.kregs->tpc)
+# define KSTK_ESP(tsk) ((tsk)->thread.kregs->u_regs[UREG_FP])
#elif defined(__sparc__)
-# define KSTK_EIP(tsk) ((tsk)->tss.kregs->pc)
-# define KSTK_ESP(tsk) ((tsk)->tss.kregs->u_regs[UREG_FP])
+# define KSTK_EIP(tsk) ((tsk)->thread.kregs->pc)
+# define KSTK_ESP(tsk) ((tsk)->thread.kregs->u_regs[UREG_FP])
#endif

/* Gcc optimizes away "strlen(x)" for constant x */
diff -urbN /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/mmu_context.h linux/include/asm-alpha/mmu_context.h
--- /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/mmu_context.h Sat Jul 24 13:41:50 1999
+++ linux/include/asm-alpha/mmu_context.h Sat Jul 24 13:48:31 1999
@@ -144,9 +144,16 @@
/* Always update the PCB ASN. Another thread may have allocated
a new mm->context (via flush_tlb_mm) without the ASN serial
number wrapping. We have no way to detect when this is needed. */
- p->tss.asn = mmc & HARDWARE_ASN_MASK;
+ p->thread.asn = mmc & HARDWARE_ASN_MASK;
}

+__EXTERN_INLINE void
+set_mmu_context(struct task_struct *prev, struct task_struct *next)
+{
+ next->mm->context = prev->mm->context;
+}
+
+
#ifdef CONFIG_ALPHA_GENERIC
# define get_mmu_context (alpha_mv.mv_get_mmu_context)
#else
@@ -158,7 +165,7 @@
#endif

extern inline void
-init_new_context(struct mm_struct *mm)
+init_new_context(struct task_struct *t, struct mm_struct *mm)
{
mm->context = 0;
}
@@ -203,7 +210,7 @@
extern inline void
reload_context(struct task_struct *task)
{
- __reload_tss(&task->tss);
+ __reload_tss(&task->thread);
}

/*
@@ -212,10 +219,10 @@
*/

extern inline void
-activate_context(struct task_struct *task)
+activate_context(void)
{
- get_new_mmu_context(task, task->mm);
- reload_context(task);
+ get_new_mmu_context(current, current->mm);
+ reload_context(current);
}

#endif /* __ALPHA_MMU_CONTEXT_H */
diff -urbN /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/pgtable.h linux/include/asm-alpha/pgtable.h
--- /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/pgtable.h Sat Jul 24 13:41:50 1999
+++ linux/include/asm-alpha/pgtable.h Sat Jul 24 15:17:27 1999
@@ -405,7 +405,7 @@
extern inline void SET_PAGE_DIR(struct task_struct * tsk, pgd_t * pgdir)
{
pgd_val(pgdir[PTRS_PER_PGD]) = pte_val(mk_pte((unsigned long) pgdir, PAGE_KERNEL));
- tsk->tss.ptbr = ((unsigned long) pgdir - PAGE_OFFSET) >> PAGE_SHIFT;
+ tsk->thread.ptbr = ((unsigned long) pgdir - PAGE_OFFSET) >> PAGE_SHIFT;
if (tsk == current)
reload_context(tsk);
}
diff -urbN /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/processor.h linux/include/asm-alpha/processor.h
--- /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/processor.h Sat Jul 24 14:26:15 1999
+++ linux/include/asm-alpha/processor.h Sat Jul 24 15:17:04 1999
@@ -7,6 +7,8 @@
#ifndef __ASM_ALPHA_PROCESSOR_H
#define __ASM_ALPHA_PROCESSOR_H

+#include <asm/page.h>
+
/*
* Returns current instruction pointer ("program counter").
*/
@@ -70,6 +72,8 @@
int bpt_nsaved;
};

+#define THREAD_SIZE (2*PAGE_SIZE)
+
#define INIT_MMAP { &init_mm, PAGE_OFFSET, PAGE_OFFSET+0x10000000, \
NULL, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }

@@ -118,7 +122,7 @@
/* Free all resources held by a thread. */
extern void release_thread(struct task_struct *);

-#define copy_segments(nr, tsk, mm) do { } while (0)
+#define copy_segments(tsk, mm) do { } while (0)
#define release_segments(mm) do { } while (0)
#define forget_segments() do { } while (0)

diff -urbN /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/resource.h linux/include/asm-alpha/resource.h
--- /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/resource.h Fri Aug 23 08:30:14 1996
+++ linux/include/asm-alpha/resource.h Sat Jul 24 14:23:19 1999
@@ -30,7 +30,7 @@
{LONG_MAX, LONG_MAX}, /* RLIMIT_RSS */ \
{ NR_OPEN, NR_OPEN}, /* RLIMIT_NOFILE */ \
{LONG_MAX, LONG_MAX}, /* RLIMIT_AS */ \
- {MAX_TASKS_PER_USER, MAX_TASKS_PER_USER}, /* RLIMIT_NPROC */ \
+ {0, 0}, /* RLIMIT_NPROC */ \
{LONG_MAX, LONG_MAX}, /* RLIMIT_MEMLOCK */ \
}

diff -urbN /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/system.h linux/include/asm-alpha/system.h
--- /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/system.h Tue Jun 22 13:46:52 1999
+++ linux/include/asm-alpha/system.h Sat Jul 24 12:51:24 1999
@@ -92,7 +92,7 @@
do { \
unsigned long pcbb; \
current = (next); \
- pcbb = virt_to_phys(&current->tss); \
+ pcbb = virt_to_phys(&current->thread); \
(last) = alpha_switch_to(pcbb, (prev)); \
} while (0)

diff -urbN /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/uaccess.h linux/include/asm-alpha/uaccess.h
--- /g/vanilla/v2.3.12-pre1/linux/include/asm-alpha/uaccess.h Sat Apr 24 20:54:08 1999
+++ linux/include/asm-alpha/uaccess.h Sat Jul 24 15:17:22 1999
@@ -23,9 +23,9 @@
#define VERIFY_READ 0
#define VERIFY_WRITE 1

-#define get_fs() (current->tss.fs)
+#define get_fs() (current->thread.fs)
#define get_ds() (KERNEL_DS)
-#define set_fs(x) (current->tss.fs = (x))
+#define set_fs(x) (current->thread.fs = (x))

#define segment_eq(a,b) ((a).seg == (b).seg)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [W:0.071 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site