Commit ef9c8db4 authored by David Mosberger's avatar David Mosberger

ia64: Fix several small bugs/omissions from the 2.5.64 sync.

parent 01cbbadc
...@@ -746,7 +746,7 @@ dup_task_struct(struct task_struct *orig) ...@@ -746,7 +746,7 @@ dup_task_struct(struct task_struct *orig)
memcpy(tsk, orig, sizeof(struct task_struct) + sizeof(struct thread_info)); memcpy(tsk, orig, sizeof(struct task_struct) + sizeof(struct thread_info));
tsk->thread_info = (struct thread_info *) ((char *) tsk + IA64_TASK_SIZE); tsk->thread_info = (struct thread_info *) ((char *) tsk + IA64_TASK_SIZE);
atomic_set(&tsk->usage, 1); atomic_set(&tsk->usage, 2);
return tsk; return tsk;
} }
......
...@@ -242,7 +242,7 @@ get_scratch_regs (struct unw_frame_info *info) ...@@ -242,7 +242,7 @@ get_scratch_regs (struct unw_frame_info *info)
info->pt = info->sp - 16; info->pt = info->sp - 16;
} }
UNW_DPRINT(3, "unwind.%s: sp 0x%lx pt 0x%lx\n", __FUNCTION__, info->sp, info->pt); UNW_DPRINT(3, "unwind.%s: sp 0x%lx pt 0x%lx\n", __FUNCTION__, info->sp, info->pt);
return info->pt; return (struct pt_regs *) info->pt;
} }
int int
...@@ -1641,7 +1641,6 @@ run_script (struct unw_script *script, struct unw_frame_info *state) ...@@ -1641,7 +1641,6 @@ run_script (struct unw_script *script, struct unw_frame_info *state)
struct unw_insn *ip, *limit, next_insn; struct unw_insn *ip, *limit, next_insn;
unsigned long opc, dst, val, off; unsigned long opc, dst, val, off;
unsigned long *s = (unsigned long *) state; unsigned long *s = (unsigned long *) state;
struct pt_regs *pt;
STAT(unsigned long start;) STAT(unsigned long start;)
STAT(++unw.stat.script.runs; start = ia64_get_itc()); STAT(++unw.stat.script.runs; start = ia64_get_itc());
...@@ -1677,8 +1676,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) ...@@ -1677,8 +1676,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state)
case UNW_INSN_MOVE_SCRATCH: case UNW_INSN_MOVE_SCRATCH:
if (state->pt) { if (state->pt) {
pt = get_scratch_regs(state); s[dst] = (unsigned long) get_scratch_regs(state) + val;
s[dst] = pt + val;
} else { } else {
s[dst] = 0; s[dst] = 0;
UNW_DPRINT(0, "unwind.%s: no state->pt, dst=%ld, val=%ld\n", UNW_DPRINT(0, "unwind.%s: no state->pt, dst=%ld, val=%ld\n",
......
...@@ -91,6 +91,8 @@ ide_init_default_hwifs (void) ...@@ -91,6 +91,8 @@ ide_init_default_hwifs (void)
#endif #endif
} }
#include <asm-generic/ide_iops.h>
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* __ASM_IA64_IDE_H */ #endif /* __ASM_IA64_IDE_H */
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* be a little careful about namespace pollution etc. Also, we cannot * be a little careful about namespace pollution etc. Also, we cannot
* assume GCC is being used. * assume GCC is being used.
* *
* Copyright (C) 1998-2000 Hewlett-Packard Co * Copyright (C) 1998-2000, 2003 Hewlett-Packard Co
* Copyright (C) 1998-2000 David Mosberger-Tang <davidm@hpl.hp.com> * David Mosberger-Tang <davidm@hpl.hp.com>
*/ */
typedef unsigned int __kernel_dev_t; typedef unsigned int __kernel_dev_t;
...@@ -26,6 +26,8 @@ typedef long __kernel_ptrdiff_t; ...@@ -26,6 +26,8 @@ typedef long __kernel_ptrdiff_t;
typedef long __kernel_time_t; typedef long __kernel_time_t;
typedef long __kernel_suseconds_t; typedef long __kernel_suseconds_t;
typedef long __kernel_clock_t; typedef long __kernel_clock_t;
typedef int __kernel_timer_t;
typedef int __kernel_clockid_t;
typedef int __kernel_daddr_t; typedef int __kernel_daddr_t;
typedef char * __kernel_caddr_t; typedef char * __kernel_caddr_t;
typedef unsigned long __kernel_sigset_t; /* at least 32 bits */ typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
......
...@@ -33,8 +33,11 @@ typedef struct siginfo { ...@@ -33,8 +33,11 @@ typedef struct siginfo {
/* POSIX.1b timers */ /* POSIX.1b timers */
struct { struct {
unsigned int _timer1; timer_t _tid; /* timer id */
unsigned int _timer2; int _overrun; /* overrun count */
char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
sigval_t _sigval; /* must overlay ._rt._sigval! */
int _sys_private; /* not to be passed to user */
} _timer; } _timer;
/* POSIX.1b signals */ /* POSIX.1b signals */
......
/* /*
* Copyright (C) 2002 Hewlett-Packard Co * Copyright (C) 2002-2003 Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com> * David Mosberger-Tang <davidm@hpl.hp.com>
*/ */
#ifndef _ASM_IA64_THREAD_INFO_H #ifndef _ASM_IA64_THREAD_INFO_H
...@@ -51,6 +51,7 @@ struct thread_info { ...@@ -51,6 +51,7 @@ struct thread_info {
/* how to get the thread information struct from C */ /* how to get the thread information struct from C */
#define current_thread_info() ((struct thread_info *) ((char *) current + IA64_TASK_SIZE)) #define current_thread_info() ((struct thread_info *) ((char *) current + IA64_TASK_SIZE))
#define free_thread_info(ti) /* nothing */
#endif /* !__ASSEMBLY */ #endif /* !__ASSEMBLY */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment