Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
3ec53303
Commit
3ec53303
authored
Oct 09, 2002
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc
parents
0bf36f29
3f3fbc0d
Changes
48
Show whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
137 additions
and
112 deletions
+137
-112
arch/ppc/Makefile
arch/ppc/Makefile
+19
-4
arch/ppc/configs/cedar_defconfig
arch/ppc/configs/cedar_defconfig
+0
-0
arch/ppc/kernel/Makefile
arch/ppc/kernel/Makefile
+0
-18
arch/ppc/kernel/asm-offsets.c
arch/ppc/kernel/asm-offsets.c
+3
-2
arch/ppc/kernel/asm-offsets.head
arch/ppc/kernel/asm-offsets.head
+0
-3
arch/ppc/kernel/entry.S
arch/ppc/kernel/entry.S
+1
-1
arch/ppc/kernel/head.S
arch/ppc/kernel/head.S
+1
-1
arch/ppc/kernel/head_4xx.S
arch/ppc/kernel/head_4xx.S
+1
-1
arch/ppc/kernel/head_8xx.S
arch/ppc/kernel/head_8xx.S
+1
-1
arch/ppc/kernel/iSeries_head.S
arch/ppc/kernel/iSeries_head.S
+1
-1
arch/ppc/kernel/iSeries_misc.S
arch/ppc/kernel/iSeries_misc.S
+1
-1
arch/ppc/kernel/misc.S
arch/ppc/kernel/misc.S
+1
-1
arch/ppc/kernel/open_pic.c
arch/ppc/kernel/open_pic.c
+9
-9
arch/ppc/kernel/process.c
arch/ppc/kernel/process.c
+53
-39
arch/ppc/kernel/signal.c
arch/ppc/kernel/signal.c
+17
-17
arch/ppc/mm/hashtable.S
arch/ppc/mm/hashtable.S
+1
-3
arch/ppc/platforms/4xx/Makefile
arch/ppc/platforms/4xx/Makefile
+19
-0
arch/ppc/platforms/4xx/ash.c
arch/ppc/platforms/4xx/ash.c
+0
-0
arch/ppc/platforms/4xx/ash.h
arch/ppc/platforms/4xx/ash.h
+0
-0
arch/ppc/platforms/4xx/cedar.c
arch/ppc/platforms/4xx/cedar.c
+0
-0
arch/ppc/platforms/4xx/cedar.h
arch/ppc/platforms/4xx/cedar.h
+0
-0
arch/ppc/platforms/4xx/cpci405.c
arch/ppc/platforms/4xx/cpci405.c
+0
-0
arch/ppc/platforms/4xx/cpci405.h
arch/ppc/platforms/4xx/cpci405.h
+0
-0
arch/ppc/platforms/4xx/ep405.c
arch/ppc/platforms/4xx/ep405.c
+0
-0
arch/ppc/platforms/4xx/ep405.h
arch/ppc/platforms/4xx/ep405.h
+0
-0
arch/ppc/platforms/4xx/ibm405gp.c
arch/ppc/platforms/4xx/ibm405gp.c
+0
-0
arch/ppc/platforms/4xx/ibm405gp.h
arch/ppc/platforms/4xx/ibm405gp.h
+0
-0
arch/ppc/platforms/4xx/ibm_ocp.h
arch/ppc/platforms/4xx/ibm_ocp.h
+0
-0
arch/ppc/platforms/4xx/ibmnp405h.c
arch/ppc/platforms/4xx/ibmnp405h.c
+0
-0
arch/ppc/platforms/4xx/ibmnp405h.h
arch/ppc/platforms/4xx/ibmnp405h.h
+0
-0
arch/ppc/platforms/4xx/ibmnp405l.c
arch/ppc/platforms/4xx/ibmnp405l.c
+0
-0
arch/ppc/platforms/4xx/ibmnp405l.h
arch/ppc/platforms/4xx/ibmnp405l.h
+0
-0
arch/ppc/platforms/4xx/ibmstb3.c
arch/ppc/platforms/4xx/ibmstb3.c
+0
-0
arch/ppc/platforms/4xx/ibmstb3.h
arch/ppc/platforms/4xx/ibmstb3.h
+0
-0
arch/ppc/platforms/4xx/ibmstb4.c
arch/ppc/platforms/4xx/ibmstb4.c
+0
-0
arch/ppc/platforms/4xx/ibmstb4.h
arch/ppc/platforms/4xx/ibmstb4.h
+0
-0
arch/ppc/platforms/4xx/redwood.c
arch/ppc/platforms/4xx/redwood.c
+0
-0
arch/ppc/platforms/4xx/redwood.h
arch/ppc/platforms/4xx/redwood.h
+0
-0
arch/ppc/platforms/4xx/redwood5.c
arch/ppc/platforms/4xx/redwood5.c
+0
-0
arch/ppc/platforms/4xx/redwood5.h
arch/ppc/platforms/4xx/redwood5.h
+0
-0
arch/ppc/platforms/4xx/walnut.c
arch/ppc/platforms/4xx/walnut.c
+0
-0
arch/ppc/platforms/4xx/walnut.h
arch/ppc/platforms/4xx/walnut.h
+0
-0
arch/ppc/platforms/Makefile
arch/ppc/platforms/Makefile
+0
-7
arch/ppc/vmlinux.lds.S
arch/ppc/vmlinux.lds.S
+6
-0
include/asm-ppc/hardirq.h
include/asm-ppc/hardirq.h
+1
-1
include/asm-ppc/ibm405.h
include/asm-ppc/ibm405.h
+0
-0
include/asm-ppc/sigcontext.h
include/asm-ppc/sigcontext.h
+1
-1
include/asm-ppc/ucontext.h
include/asm-ppc/ucontext.h
+1
-1
No files found.
arch/ppc/Makefile
View file @
3ec53303
...
...
@@ -53,7 +53,9 @@ else
endif
endif
core-y
+=
arch
/ppc/kernel/
arch
/ppc/platforms/
arch
/ppc/mm/
arch
/ppc/lib/
core-y
+=
arch
/ppc/kernel/
arch
/ppc/platforms/
\
arch
/ppc/mm/
arch
/ppc/lib/
core-$(CONFIG_4xx)
+=
arch
/ppc/platforms/4xx/
core-$(CONFIG_MATH_EMULATION)
+=
arch
/ppc/math-emu/
core-$(CONFIG_XMON)
+=
arch
/ppc/xmon/
core-$(CONFIG_APUS)
+=
arch
/ppc/amiga/
...
...
@@ -79,13 +81,21 @@ $(BOOT_TARGETS): vmlinux
cp
-f
arch
/ppc/configs/
$
(
@:config
=
defconfig
)
.config
archclean
:
rm
-f
arch
/ppc/kernel/
{
mk_defs,asm-offsets.h,find_name
}
rm
-f
arch
/ppc/iSeries/ReleaseData.h
@
$(MAKEBOOT)
clean
archmrproper
:
prepare
:
checkbin
prepare
:
include/asm-$(ARCH)/offsets.h checkbin
arch/$(ARCH)/kernel/asm-offsets.s
:
include/asm include/linux/version.h
\
include/config/MARKER
include/asm-$(ARCH)/offsets.h.tmp
:
arch/$(ARCH)/kernel/asm-offsets.s
@
$
(
generate-asm-offsets.h
)
<
$<
>
$@
include/asm-$(ARCH)/offsets.h
:
include/asm-$(ARCH)/offsets.h.tmp
@
echo
-n
' Generating $@'
@
$
(
update-if-changed
)
ifdef
CONFIG_6xx
# Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later
...
...
@@ -105,3 +115,8 @@ else
checkbin
:
@
true
endif
CLEAN_FILES
+=
include/asm-
$(ARCH)
/offsets.h.tmp
\
include/asm-
$(ARCH)
/offsets.h
\
arch
/
$(ARCH)
/kernel/asm-offsets.s
\
arch
/
$(ARCH)
/iSeries/ReleaseData.h
arch/ppc/configs/ced
e
r_defconfig
→
arch/ppc/configs/ced
a
r_defconfig
View file @
3ec53303
File moved
arch/ppc/kernel/Makefile
View file @
3ec53303
...
...
@@ -89,23 +89,5 @@ obj-$(CONFIG_PPC_ISERIES) += iSeries_misc.o
include
$(TOPDIR)/Rules.make
entry.o
:
entry.S asm-offsets.h
misc.o
:
misc.S asm-offsets.h
l2cr.o
:
l2cr.S asm-offsets.h
head.o
:
head.S asm-offsets.h
head_4xx.o
:
head_4xx.S asm-offsets.h
head_8xx.o
:
head_8xx.S asm-offsets.h
iSeries_head.o
:
iSeries_head.S asm-offsets.h
iSeries_misc.o
:
iSeries_misc.S asm-offsets.h
asm-offsets.h
:
mk_defs.c asm-offsets.head
\
$(TOPDIR)/include/asm/mmu.h
\
$(TOPDIR)/include/asm/processor.h
\
$(TOPDIR)/include/asm/pgtable.h
\
$(TOPDIR)/include/asm/ptrace.h
$(CC)
$(CFLAGS)
-S
mk_defs.c
(
cat
asm-offsets.head
;
grep
'^#define'
mk_defs.s
)
>
asm-offsets.h
rm
mk_defs.s
find_name
:
find_name.c
$(HOSTCC)
$(HOSTCFLAGS)
-o
find_name find_name.c
arch/ppc/kernel/
mk_def
s.c
→
arch/ppc/kernel/
asm-offset
s.c
View file @
3ec53303
...
...
@@ -8,7 +8,6 @@
* #defines from the assembly-language output.
*/
#include <stddef.h>
#include <linux/config.h>
#include <linux/signal.h>
#include <linux/sched.h>
...
...
@@ -34,7 +33,9 @@
#endif
/* CONFIG_PPC_ISERIES */
#define DEFINE(sym, val) \
asm volatile("\n#define\t" #sym "\t%0" : : "i" (val))
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
#define BLANK() asm volatile("\n->" : : )
int
main
(
void
)
...
...
arch/ppc/kernel/asm-offsets.head
deleted
100644 → 0
View file @
0bf36f29
/*
* WARNING! This file is automatically generated - DO NOT EDIT!
*/
arch/ppc/kernel/entry.S
View file @
3ec53303
...
...
@@ -30,7 +30,7 @@
#include <asm/cputable.h>
#include <asm/thread_info.h>
#include <asm/ppc_asm.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
#ifdef CONFIG_PPC_ISERIES
#include "iSeries_asm.h"
#endif /* CONFIG_PPC_ISERIES */
...
...
arch/ppc/kernel/head.S
View file @
3ec53303
...
...
@@ -31,7 +31,7 @@
#include <asm/cache.h>
#include <asm/thread_info.h>
#include <asm/ppc_asm.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
#ifdef CONFIG_APUS
#include <asm/amigappc.h>
...
...
arch/ppc/kernel/head_4xx.S
View file @
3ec53303
...
...
@@ -40,7 +40,7 @@
#include <asm/cputable.h>
#include <asm/thread_info.h>
#include <asm/ppc_asm.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
/*
As
with
the
other
PowerPC
ports
,
it
is
expected
that
when
code
*
execution
begins
here
,
the
following
registers
contain
valid
,
yet
...
...
arch/ppc/kernel/head_8xx.S
View file @
3ec53303
...
...
@@ -30,7 +30,7 @@
#include <asm/cputable.h>
#include <asm/thread_info.h>
#include <asm/ppc_asm.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
.
text
.
globl
_stext
...
...
arch/ppc/kernel/iSeries_head.S
View file @
3ec53303
...
...
@@ -32,7 +32,7 @@
#include <asm/pgtable.h>
#include <asm/ppc_asm.h>
#include <asm/thread_info.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
#include "iSeries_asm.h"
...
...
arch/ppc/kernel/iSeries_misc.S
View file @
3ec53303
...
...
@@ -22,7 +22,7 @@
#include <asm/page.h>
#include <asm/cache.h>
#include <asm/ppc_asm.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
#include "iSeries_asm.h"
.
text
...
...
arch/ppc/kernel/misc.S
View file @
3ec53303
...
...
@@ -23,7 +23,7 @@
#include <asm/mmu.h>
#include <asm/ppc_asm.h>
#include <asm/thread_info.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
.
text
...
...
arch/ppc/kernel/open_pic.c
View file @
3ec53303
...
...
@@ -150,11 +150,11 @@ struct hw_interrupt_type open_pic_ipi = {
if (irq < open_pic_irq_offset || irq >= NumSources+open_pic_irq_offset \
|| ISR[irq - open_pic_irq_offset] == 0) { \
printk("open_pic.c:%d: illegal irq %d\n", __LINE__, irq); \
show_stack(NULL
); }
dump_stack(
); }
#define check_arg_cpu(cpu) \
if (cpu < 0 || cpu >= NumProcessors){ \
printk("open_pic.c:%d: illegal cpu %d\n", __LINE__, cpu); \
show_stack(NULL
); }
dump_stack(
); }
#else
#define check_arg_ipi(ipi) do {} while (0)
#define check_arg_timer(timer) do {} while (0)
...
...
@@ -317,7 +317,7 @@ void __init openpic_init(int linux_irq_offset)
openpic_reset
();
#endif
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic enter"
,
0x122
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
:
enter"
,
0x122
);
t
=
openpic_read
(
&
OpenPIC
->
Global
.
Feature_Reporting0
);
switch
(
t
&
OPENPIC_FEATURE_VERSION_MASK
)
{
...
...
@@ -351,7 +351,7 @@ void __init openpic_init(int linux_irq_offset)
open_pic_irq_offset
=
linux_irq_offset
;
/* Initialize timer interrupts */
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic timer"
,
0x3ba
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
:
timer"
,
0x3ba
);
for
(
i
=
0
;
i
<
OPENPIC_NUM_TIMERS
;
i
++
)
{
/* Disabled, Priority 0 */
openpic_inittimer
(
i
,
0
,
OPENPIC_VEC_TIMER
+
i
+
linux_irq_offset
);
...
...
@@ -361,7 +361,7 @@ void __init openpic_init(int linux_irq_offset)
#ifdef CONFIG_SMP
/* Initialize IPI interrupts */
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic ipi"
,
0x3bb
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
:
ipi"
,
0x3bb
);
for
(
i
=
0
;
i
<
OPENPIC_NUM_IPI
;
i
++
)
{
/* Disabled, Priority 10..13 */
openpic_initipi
(
i
,
10
+
i
,
OPENPIC_VEC_IPI
+
i
+
linux_irq_offset
);
...
...
@@ -374,7 +374,7 @@ void __init openpic_init(int linux_irq_offset)
#endif
/* Initialize external interrupts */
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
ext
"
,
0x3bc
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
: external
"
,
0x3bc
);
openpic_set_priority
(
0xf
);
...
...
@@ -389,7 +389,7 @@ void __init openpic_init(int linux_irq_offset)
openpic_disable_irq
(
i
+
linux_irq_offset
);
/*
* We find the vale from either the InitSenses table
* We find the val
u
e from either the InitSenses table
* or assume a negative polarity level interrupt.
*/
sense
=
(
i
<
OpenPIC_NumInitSenses
)
?
OpenPIC_InitSenses
[
i
]
:
1
;
...
...
@@ -410,7 +410,7 @@ void __init openpic_init(int linux_irq_offset)
irq_desc
[
i
].
handler
=
&
open_pic
;
/* Initialize the spurious interrupt */
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic spurious"
,
0x3bd
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
:
spurious"
,
0x3bd
);
openpic_set_spurious
(
OPENPIC_VEC_SPURIOUS
+
linux_irq_offset
);
/* Initialize the cascade */
...
...
@@ -426,7 +426,7 @@ void __init openpic_init(int linux_irq_offset)
#endif
openpic_set_priority
(
0
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic exit"
,
0x222
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"openpic
:
exit"
,
0x222
);
}
#ifdef notused
...
...
arch/ppc/kernel/process.c
View file @
3ec53303
...
...
@@ -33,6 +33,7 @@
#include <linux/init.h>
#include <linux/prctl.h>
#include <linux/init_task.h>
#include <linux/module.h>
#include <asm/pgtable.h>
#include <asm/uaccess.h>
...
...
@@ -69,6 +70,8 @@ struct task_struct init_task = INIT_TASK(init_task);
/* only used to get secondary processor up */
struct
task_struct
*
current_set
[
NR_CPUS
]
=
{
&
init_task
,
};
static
void
show_tsk_stack
(
struct
task_struct
*
tsk
,
unsigned
long
sp
);
#undef SHOW_TASK_SWITCHES
#undef CHECK_STACK
...
...
@@ -264,15 +267,15 @@ void show_regs(struct pt_regs * regs)
printk
(
"TASK = %p[%d] '%s' "
,
current
,
current
->
pid
,
current
->
comm
);
printk
(
"Last syscall: %ld "
,
current
->
thread
.
last_syscall
);
printk
(
"
\n
last math %p last altivec %p"
,
last_task_used_math
,
last_task_used_altivec
);
#if defined(CONFIG_4xx) && defined(DCRN_PLB0_BEAR)
printk
(
"
\n
PLB0: bear= 0x%8.8x acr= 0x%8.8x besr= 0x%8.8x
\n
"
,
mfdcr
(
DCRN_P
O
B0_BEAR
),
mfdcr
(
DCRN_PLB0_ACR
),
mfdcr
(
DCRN_P
L
B0_BEAR
),
mfdcr
(
DCRN_PLB0_ACR
),
mfdcr
(
DCRN_PLB0_BESR
));
#endif
#if defined(CONFIG_4xx) && defined(DCRN_POB0_BEAR)
printk
(
"PLB0 to OPB: bear= 0x%8.8x besr0= 0x%8.8x besr1= 0x%8.8x
\n
"
,
mfdcr
(
DCRN_P
L
B0_BEAR
),
mfdcr
(
DCRN_POB0_BESR0
),
mfdcr
(
DCRN_P
O
B0_BEAR
),
mfdcr
(
DCRN_POB0_BESR0
),
mfdcr
(
DCRN_POB0_BESR1
));
#endif
...
...
@@ -291,7 +294,7 @@ void show_regs(struct pt_regs * regs)
break
;
}
printk
(
"
\n
"
);
show_
stack
((
unsigned
long
*
)
regs
->
gpr
[
1
]);
show_
tsk_stack
(
current
,
regs
->
gpr
[
1
]);
}
void
exit_thread
(
void
)
...
...
@@ -489,50 +492,61 @@ int sys_execve(unsigned long a0, unsigned long a1, unsigned long a2,
return
error
;
}
void
show_stack
(
unsigned
long
*
sp
)
void
show_trace_task
(
struct
task_struct
*
tsk
)
{
int
cnt
=
0
;
unsigned
long
i
;
if
(
sp
==
NULL
)
sp
=
(
unsigned
long
*
)
_get_SP
();
printk
(
"Call backtrace: "
);
for
(;;)
{
if
(
__get_user
(
sp
,
(
unsigned
long
**
)
sp
))
break
;
if
(
sp
==
NULL
)
break
;
if
(
__get_user
(
i
,
&
sp
[
1
]))
break
;
if
(
cnt
++
%
7
==
0
)
printk
(
"
\n
"
);
printk
(
"%08lX "
,
i
);
if
(
cnt
>
32
)
break
;
}
printk
(
"
\n
"
);
show_tsk_stack
(
tsk
,
tsk
->
thread
.
ksp
);
}
void
show_trace_task
(
struct
task_struct
*
tsk
)
void
dump_stack
(
void
)
{
unsigned
long
stack_top
=
(
unsigned
long
)
tsk
->
thread_info
+
THREAD_SIZE
;
unsigned
long
sp
,
prev_sp
;
show_tsk_stack
(
current
,
_get_SP
());
}
static
void
show_tsk_stack
(
struct
task_struct
*
tsk
,
unsigned
long
sp
)
{
unsigned
long
stack_top
,
prev_sp
,
ret
;
int
count
=
0
;
unsigned
long
next_exc
=
0
;
struct
pt_regs
*
regs
;
extern
char
ret_from_except
,
ret_from_except_full
,
ret_from_syscall
;
if
(
tsk
==
NULL
)
return
;
sp
=
(
unsigned
long
)
&
tsk
->
thread
.
ksp
;
do
{
prev_sp
=
sp
;
prev_sp
=
(
unsigned
long
)
(
tsk
->
thread_info
+
1
);
stack_top
=
(
unsigned
long
)
tsk
->
thread_info
+
THREAD_SIZE
;
while
(
count
<
16
&&
sp
>
prev_sp
&&
sp
<
stack_top
&&
(
sp
&
3
)
==
0
)
{
if
(
count
==
0
)
{
printk
(
"Call trace:"
);
#if CONFIG_KALLSYMS
printk
(
"
\n
"
);
#endif
}
else
{
if
(
next_exc
)
{
ret
=
next_exc
;
next_exc
=
0
;
}
else
ret
=
*
(
unsigned
long
*
)(
sp
+
4
);
printk
(
" [%08lx] "
,
ret
);
#if CONFIG_KALLSYMS
print_symbol
(
"%s"
,
ret
);
printk
(
"
\n
"
);
#endif
if
(
ret
==
(
unsigned
long
)
&
ret_from_except
||
ret
==
(
unsigned
long
)
&
ret_from_except_full
||
ret
==
(
unsigned
long
)
&
ret_from_syscall
)
{
/* sp + 16 points to an exception frame */
regs
=
(
struct
pt_regs
*
)
(
sp
+
16
);
if
(
sp
+
16
+
sizeof
(
*
regs
)
<=
stack_top
)
next_exc
=
regs
->
nip
;
}
}
++
count
;
sp
=
*
(
unsigned
long
*
)
sp
;
if
(
sp
<=
prev_sp
||
sp
>=
stack_top
||
(
sp
&
3
)
!=
0
)
break
;
}
#if !CONFIG_KALLSYMS
if
(
count
>
0
)
printk
(
"[%08lx] "
,
*
(
unsigned
long
*
)(
sp
+
4
));
}
while
(
++
count
<
16
);
if
(
count
>
1
)
printk
(
"
\n
"
);
#endif
}
#if 0
...
...
arch/ppc/kernel/signal.c
View file @
3ec53303
...
...
@@ -65,11 +65,11 @@ sys_sigsuspend(old_sigset_t mask, int p2, int p3, int p4, int p6, int p7,
sigset_t
saveset
;
mask
&=
_BLOCKABLE
;
spin_lock_irq
(
&
current
->
sig
mask_
lock
);
spin_lock_irq
(
&
current
->
sig
->
sig
lock
);
saveset
=
current
->
blocked
;
siginitset
(
&
current
->
blocked
,
mask
);
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sig
mask_
lock
);
spin_unlock_irq
(
&
current
->
sig
->
sig
lock
);
regs
->
result
=
-
EINTR
;
regs
->
ccr
|=
0x10000000
;
...
...
@@ -96,11 +96,11 @@ sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, int p3, int p4, int p6,
return
-
EFAULT
;
sigdelsetmask
(
&
newset
,
~
_BLOCKABLE
);
spin_lock_irq
(
&
current
->
sig
mask_
lock
);
spin_lock_irq
(
&
current
->
sig
->
sig
lock
);
saveset
=
current
->
blocked
;
current
->
blocked
=
newset
;
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sig
mask_
lock
);
spin_unlock_irq
(
&
current
->
sig
->
sig
lock
);
regs
->
result
=
-
EINTR
;
regs
->
ccr
|=
0x10000000
;
...
...
@@ -157,7 +157,7 @@ sys_sigaction(int sig, const struct old_sigaction *act,
* When we have signals to deliver, we set up on the
* user stack, going down from the original stack pointer:
* a sigregs struct
*
one or more sigcontext structs with
*
a sigcontext struct
* a gap of __SIGNAL_FRAMESIZE bytes
*
* Each of these things must be a multiple of 16 bytes in size.
...
...
@@ -196,7 +196,7 @@ int sys_rt_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8,
struct
pt_regs
*
regs
)
{
struct
rt_sigframe
*
rt_sf
;
struct
sigcontext
_struct
sigctx
;
struct
sigcontext
sigctx
;
struct
sigregs
*
sr
;
elf_gregset_t
saved_regs
;
/* an array of ELF_NGREG unsigned longs */
sigset_t
set
;
...
...
@@ -208,10 +208,10 @@ int sys_rt_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8,
||
copy_from_user
(
&
st
,
&
rt_sf
->
uc
.
uc_stack
,
sizeof
(
st
)))
goto
badframe
;
sigdelsetmask
(
&
set
,
~
_BLOCKABLE
);
spin_lock_irq
(
&
current
->
sig
mask_
lock
);
spin_lock_irq
(
&
current
->
sig
->
sig
lock
);
current
->
blocked
=
set
;
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sig
mask_
lock
);
spin_unlock_irq
(
&
current
->
sig
->
sig
lock
);
if
(
regs
->
msr
&
MSR_FP
)
giveup_fpu
(
current
);
...
...
@@ -297,12 +297,12 @@ setup_rt_frame(struct pt_regs *regs, struct sigregs *frame,
int
sys_sigreturn
(
int
r3
,
int
r4
,
int
r5
,
int
r6
,
int
r7
,
int
r8
,
struct
pt_regs
*
regs
)
{
struct
sigcontext
_struct
*
sc
,
sigctx
;
struct
sigcontext
*
sc
,
sigctx
;
struct
sigregs
*
sr
;
elf_gregset_t
saved_regs
;
/* an array of ELF_NGREG unsigned longs */
sigset_t
set
;
sc
=
(
struct
sigcontext
_struct
*
)(
regs
->
gpr
[
1
]
+
__SIGNAL_FRAMESIZE
);
sc
=
(
struct
sigcontext
*
)(
regs
->
gpr
[
1
]
+
__SIGNAL_FRAMESIZE
);
if
(
copy_from_user
(
&
sigctx
,
sc
,
sizeof
(
sigctx
)))
goto
badframe
;
...
...
@@ -311,10 +311,10 @@ int sys_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8,
set
.
sig
[
1
]
=
sigctx
.
_unused
[
3
];
#endif
sigdelsetmask
(
&
set
,
~
_BLOCKABLE
);
spin_lock_irq
(
&
current
->
sig
mask_
lock
);
spin_lock_irq
(
&
current
->
sig
->
sig
lock
);
current
->
blocked
=
set
;
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sig
mask_
lock
);
spin_unlock_irq
(
&
current
->
sig
->
sig
lock
);
if
(
regs
->
msr
&
MSR_FP
)
giveup_fpu
(
current
);
...
...
@@ -344,7 +344,7 @@ static void
setup_frame
(
struct
pt_regs
*
regs
,
struct
sigregs
*
frame
,
unsigned
long
newsp
)
{
struct
sigcontext
_struct
*
sc
=
(
struct
sigcontext_struc
t
*
)
newsp
;
struct
sigcontext
*
sc
=
(
struct
sigcontex
t
*
)
newsp
;
if
(
verify_area
(
VERIFY_WRITE
,
frame
,
sizeof
(
*
frame
)))
goto
badframe
;
...
...
@@ -387,7 +387,7 @@ static void
handle_signal
(
unsigned
long
sig
,
siginfo_t
*
info
,
sigset_t
*
oldset
,
struct
pt_regs
*
regs
,
unsigned
long
*
newspp
,
unsigned
long
frame
)
{
struct
sigcontext
_struct
*
sc
;
struct
sigcontext
*
sc
;
struct
rt_sigframe
*
rt_sf
;
struct
k_sigaction
*
ka
=
&
current
->
sig
->
action
[
sig
-
1
];
...
...
@@ -428,7 +428,7 @@ handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset,
}
else
{
/* Put a sigcontext on the stack */
*
newspp
-=
sizeof
(
*
sc
);
sc
=
(
struct
sigcontext
_struct
*
)
*
newspp
;
sc
=
(
struct
sigcontext
*
)
*
newspp
;
if
(
verify_area
(
VERIFY_WRITE
,
sc
,
sizeof
(
*
sc
)))
goto
badframe
;
...
...
@@ -446,11 +446,11 @@ handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset,
ka
->
sa
.
sa_handler
=
SIG_DFL
;
if
(
!
(
ka
->
sa
.
sa_flags
&
SA_NODEFER
))
{
spin_lock_irq
(
&
current
->
sig
mask_
lock
);
spin_lock_irq
(
&
current
->
sig
->
sig
lock
);
sigorsets
(
&
current
->
blocked
,
&
current
->
blocked
,
&
ka
->
sa
.
sa_mask
);
sigaddset
(
&
current
->
blocked
,
sig
);
recalc_sigpending
();
spin_unlock_irq
(
&
current
->
sig
mask_
lock
);
spin_unlock_irq
(
&
current
->
sig
->
sig
lock
);
}
return
;
...
...
arch/ppc/mm/hashtable.S
View file @
3ec53303
...
...
@@ -30,7 +30,7 @@
#include <asm/cputable.h>
#include <asm/ppc_asm.h>
#include <asm/thread_info.h>
#include
"asm-offsets.h"
#include
<asm/offsets.h>
#ifdef CONFIG_SMP
.
comm
mmu_hash_lock
,
4
...
...
@@ -144,9 +144,7 @@ retry:
#endif
/
*
Return
from
the
exception
*/
lwz
r4
,
_LINK
(
r11
)
lwz
r5
,
_CTR
(
r11
)
mtlr
r4
mtctr
r5
lwz
r0
,
GPR0
(
r11
)
lwz
r7
,
GPR7
(
r11
)
...
...
arch/ppc/platforms/4xx/Makefile
0 → 100644
View file @
3ec53303
#
# Makefile for the PowerPC 4xx linux kernel.
obj-$(CONFIG_ASH)
+=
ash.o
obj-$(CONFIG_CEDAR)
+=
cedar.o
obj-$(CONFIG_CPCI405)
+=
cpci405.o
obj-$(CONFIG_EP405)
+=
ep405.o
obj-$(CONFIG_OAK)
+=
oak.o
obj-$(CONFIG_REDWOOD_4)
+=
redwood.o
obj-$(CONFIG_REDWOOD_5)
+=
redwood5.o
obj-$(CONFIG_WALNUT)
+=
walnut.o
obj-$(CONFIG_NP405L)
+=
ibmnp405l.o
obj-$(CONFIG_405GP)
+=
ibm405gp.o
obj-$(CONFIG_REDWOOD_4)
+=
ibmstb3.o
obj-$(CONFIG_REDWOOD_5)
+=
ibmstb4.o
obj-$(CONFIG_NP405H)
+=
ibmnp405h.o
include
$(TOPDIR)/Rules.make
arch/ppc/platforms/ash.c
→
arch/ppc/platforms/
4xx/
ash.c
View file @
3ec53303
File moved
arch/ppc/platforms/ash.h
→
arch/ppc/platforms/
4xx/
ash.h
View file @
3ec53303
File moved
arch/ppc/platforms/
cede
r.c
→
arch/ppc/platforms/
4xx/ceda
r.c
View file @
3ec53303
File moved
arch/ppc/platforms/
cede
r.h
→
arch/ppc/platforms/
4xx/ceda
r.h
View file @
3ec53303
File moved
arch/ppc/platforms/cpci405.c
→
arch/ppc/platforms/
4xx/
cpci405.c
View file @
3ec53303
File moved
arch/ppc/platforms/cpci405.h
→
arch/ppc/platforms/
4xx/
cpci405.h
View file @
3ec53303
File moved
arch/ppc/platforms/ep405.c
→
arch/ppc/platforms/
4xx/
ep405.c
View file @
3ec53303
File moved
arch/ppc/platforms/ep405.h
→
arch/ppc/platforms/
4xx/
ep405.h
View file @
3ec53303
File moved
arch/ppc/platforms/ibm405gp.c
→
arch/ppc/platforms/
4xx/
ibm405gp.c
View file @
3ec53303
File moved
arch/ppc/platforms/ibm405gp.h
→
arch/ppc/platforms/
4xx/
ibm405gp.h
View file @
3ec53303
File moved
arch/ppc/platforms/ibm_ocp.h
→
arch/ppc/platforms/
4xx/
ibm_ocp.h
View file @
3ec53303
File moved
arch/ppc/platforms/ibmnp405h.c
→
arch/ppc/platforms/
4xx/
ibmnp405h.c
View file @
3ec53303
File moved
arch/ppc/platforms/ibmnp405h.h
→
arch/ppc/platforms/
4xx/
ibmnp405h.h
View file @
3ec53303
File moved
arch/ppc/platforms/ibmnp405l.c
→
arch/ppc/platforms/
4xx/
ibmnp405l.c
View file @
3ec53303
File moved
arch/ppc/platforms/ibmnp405l.h
→
arch/ppc/platforms/
4xx/
ibmnp405l.h
View file @
3ec53303
File moved
arch/ppc/platforms/ibmstb3.c
→
arch/ppc/platforms/
4xx/
ibmstb3.c
View file @
3ec53303
File moved
arch/ppc/platforms/ibmstb3.h
→
arch/ppc/platforms/
4xx/
ibmstb3.h
View file @
3ec53303
File moved
arch/ppc/platforms/ibmstb4.c
→
arch/ppc/platforms/
4xx/
ibmstb4.c
View file @
3ec53303
File moved
arch/ppc/platforms/ibmstb4.h
→
arch/ppc/platforms/
4xx/
ibmstb4.h
View file @
3ec53303
File moved
arch/ppc/platforms/redwood.c
→
arch/ppc/platforms/
4xx/
redwood.c
View file @
3ec53303
File moved
arch/ppc/platforms/redwood.h
→
arch/ppc/platforms/
4xx/
redwood.h
View file @
3ec53303
File moved
arch/ppc/platforms/redwood5.c
→
arch/ppc/platforms/
4xx/
redwood5.c
View file @
3ec53303
File moved
arch/ppc/platforms/redwood5.h
→
arch/ppc/platforms/
4xx/
redwood5.h
View file @
3ec53303
File moved
arch/ppc/platforms/walnut.c
→
arch/ppc/platforms/
4xx/
walnut.c
View file @
3ec53303
File moved
arch/ppc/platforms/walnut.h
→
arch/ppc/platforms/
4xx/
walnut.h
View file @
3ec53303
File moved
arch/ppc/platforms/Makefile
View file @
3ec53303
...
...
@@ -14,13 +14,6 @@ CFLAGS_pmac_setup.o += -I$(TOPDIR)/arch/$(ARCH)/mm
export-objs
:=
prep_setup.o
obj-$(CONFIG_CEDER)
+=
ceder.o ibmnp405l.o
obj-$(CONFIG_CPCI405)
+=
cpci405.o ibm405gp.o
obj-$(CONFIG_EP405)
+=
ep405.o ibm405gp.o
obj-$(CONFIG_REDWOOD_4)
+=
redwood.o ibmstb3.o
obj-$(CONFIG_REDWOOD_5)
+=
redwood5.o ibmstb4.o
obj-$(CONFIG_WALNUT)
+=
walnut.o ibm405gp.o
obj-$(CONFIG_ASH)
+=
ash.o ibmnp405h.o
obj-$(CONFIG_APUS)
+=
apus_setup.o
ifeq
($(CONFIG_APUS),y)
obj-$(CONFIG_PCI)
+=
apus_pci.o
...
...
arch/ppc/vmlinux.lds.S
View file @
3ec53303
...
...
@@ -147,6 +147,10 @@ SECTIONS
.
=
ALIGN
(
4096
)
;
__openfirmware_end
=
.
;
__start___kallsyms
=
.
; /* All kernel symbols */
__kallsyms
:
{
*(
__kallsyms
)
}
__stop___kallsyms
=
.
;
__bss_start
=
.
;
.
bss
:
{
...
...
@@ -155,6 +159,8 @@ SECTIONS
*(.
bss
)
*(
COMMON
)
}
__bss_stop
=
.
;
_end
=
.
;
PROVIDE
(
end
=
.
)
;
}
include/asm-ppc/hardirq.h
View file @
3ec53303
...
...
@@ -82,7 +82,7 @@ typedef struct {
#define irq_enter() (preempt_count() += HARDIRQ_OFFSET)
#if CONFIG_PREEMPT
# define in_atomic() (
preempt_count(
) != kernel_locked())
# define in_atomic() (
(preempt_count() & ~PREEMPT_ACTIVE
) != kernel_locked())
# define IRQ_EXIT_OFFSET (HARDIRQ_OFFSET-1)
#else
# define in_atomic() (preempt_count() != 0)
...
...
arch/ppc/platforms
/ibm405.h
→
include/asm-ppc
/ibm405.h
View file @
3ec53303
File moved
include/asm-ppc/sigcontext.h
View file @
3ec53303
...
...
@@ -4,7 +4,7 @@
#include <asm/ptrace.h>
struct
sigcontext
_struct
{
struct
sigcontext
{
unsigned
long
_unused
[
4
];
int
signal
;
unsigned
long
handler
;
...
...
include/asm-ppc/ucontext.h
View file @
3ec53303
...
...
@@ -7,7 +7,7 @@ struct ucontext {
unsigned
long
uc_flags
;
struct
ucontext
*
uc_link
;
stack_t
uc_stack
;
struct
sigcontext
_struct
uc_mcontext
;
struct
sigcontext
uc_mcontext
;
sigset_t
uc_sigmask
;
/* mask last for extensibility */
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment