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
Kirill Smelkov
linux
Commits
b8d9598c
Commit
b8d9598c
authored
Aug 19, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
parents
01c314a0
83c4e437
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
231 additions
and
207 deletions
+231
-207
arch/sparc/kernel/sparc_ksyms.c
arch/sparc/kernel/sparc_ksyms.c
+3
-2
arch/sparc64/kernel/Makefile
arch/sparc64/kernel/Makefile
+1
-1
arch/sparc64/kernel/traps.c
arch/sparc64/kernel/traps.c
+3
-0
arch/sparc64/kernel/una_asm.S
arch/sparc64/kernel/una_asm.S
+153
-0
arch/sparc64/kernel/unaligned.c
arch/sparc64/kernel/unaligned.c
+59
-202
include/asm-sparc64/thread_info.h
include/asm-sparc64/thread_info.h
+5
-0
scripts/mod/modpost.c
scripts/mod/modpost.c
+7
-2
No files found.
arch/sparc/kernel/sparc_ksyms.c
View file @
b8d9598c
...
...
@@ -98,8 +98,9 @@ extern void ___rw_write_enter(void);
* The module references will be fixed up by module_frob_arch_sections.
*/
#define DOT_ALIAS2(__ret, __x, __arg1, __arg2) \
extern __ret __x(__arg1, __arg2) \
__attribute__((weak, alias("." # __x)));
extern __ret __x(__arg1, __arg2); \
asm(".weak " #__x);\
asm(#__x "=." #__x);
DOT_ALIAS2
(
int
,
div
,
int
,
int
)
DOT_ALIAS2
(
int
,
mul
,
int
,
int
)
...
...
arch/sparc64/kernel/Makefile
View file @
b8d9598c
...
...
@@ -8,7 +8,7 @@ EXTRA_CFLAGS := -Werror
extra-y
:=
head.o init_task.o vmlinux.lds
obj-y
:=
process.o setup.o cpu.o idprom.o
\
traps.o devices.o auxio.o
\
traps.o devices.o auxio.o
una_asm.o
\
irq.o ptrace.o time.o sys_sparc.o signal.o
\
unaligned.o central.o pci.o starfire.o semaphore.o
\
power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o
...
...
arch/sparc64/kernel/traps.c
View file @
b8d9598c
...
...
@@ -2127,6 +2127,9 @@ void __init trap_init(void)
TI_PRE_COUNT
!=
offsetof
(
struct
thread_info
,
preempt_count
)
||
TI_NEW_CHILD
!=
offsetof
(
struct
thread_info
,
new_child
)
||
TI_SYS_NOERROR
!=
offsetof
(
struct
thread_info
,
syscall_noerror
)
||
TI_RESTART_BLOCK
!=
offsetof
(
struct
thread_info
,
restart_block
)
||
TI_KUNA_REGS
!=
offsetof
(
struct
thread_info
,
kern_una_regs
)
||
TI_KUNA_INSN
!=
offsetof
(
struct
thread_info
,
kern_una_insn
)
||
TI_FPREGS
!=
offsetof
(
struct
thread_info
,
fpregs
)
||
(
TI_FPREGS
&
(
64
-
1
)))
thread_info_offsets_are_bolixed_dave
();
...
...
arch/sparc64/kernel/una_asm.S
0 → 100644
View file @
b8d9598c
/*
una_asm
.
S
:
Kernel
unaligned
trap
assembler
helpers
.
*
*
Copyright
(
C
)
1996
,
2005
David
S
.
Miller
(
davem
@
davemloft
.
net
)
*
Copyright
(
C
)
1996
,
1997
Jakub
Jelinek
(
jj
@
sunsite
.
mff
.
cuni
.
cz
)
*/
.
text
kernel_unaligned_trap_fault
:
call
kernel_mna_trap_fault
nop
retl
nop
.
size
kern_unaligned_trap_fault
,
.
-
kern_unaligned_trap_fault
.
globl
__do_int_store
__do_int_store
:
rd
%
asi
,
%
o4
wr
%
o3
,
0
,
%
asi
ldx
[%
o2
],
%
g3
cmp
%
o1
,
2
be
,
pn
%
icc
,
2
f
cmp
%
o1
,
4
be
,
pt
%
icc
,
1
f
srlx
%
g3
,
24
,
%
g2
srlx
%
g3
,
56
,
%
g1
srlx
%
g3
,
48
,
%
g7
4
:
stba
%
g1
,
[%
o0
]
%
asi
srlx
%
g3
,
40
,
%
g1
5
:
stba
%
g7
,
[%
o0
+
1
]
%
asi
srlx
%
g3
,
32
,
%
g7
6
:
stba
%
g1
,
[%
o0
+
2
]
%
asi
7
:
stba
%
g7
,
[%
o0
+
3
]
%
asi
srlx
%
g3
,
16
,
%
g1
8
:
stba
%
g2
,
[%
o0
+
4
]
%
asi
srlx
%
g3
,
8
,
%
g7
9
:
stba
%
g1
,
[%
o0
+
5
]
%
asi
10
:
stba
%
g7
,
[%
o0
+
6
]
%
asi
ba
,
pt
%
xcc
,
0
f
11
:
stba
%
g3
,
[%
o0
+
7
]
%
asi
1
:
srl
%
g3
,
16
,
%
g7
12
:
stba
%
g2
,
[%
o0
]
%
asi
srl
%
g3
,
8
,
%
g2
13
:
stba
%
g7
,
[%
o0
+
1
]
%
asi
14
:
stba
%
g2
,
[%
o0
+
2
]
%
asi
ba
,
pt
%
xcc
,
0
f
15
:
stba
%
g3
,
[%
o0
+
3
]
%
asi
2
:
srl
%
g3
,
8
,
%
g2
16
:
stba
%
g2
,
[%
o0
]
%
asi
17
:
stba
%
g3
,
[%
o0
+
1
]
%
asi
0
:
wr
%
o4
,
0x0
,
%
asi
retl
nop
.
size
__do_int_store
,
.
-
__do_int_store
.
section
__ex_table
.
word
4
b
,
kernel_unaligned_trap_fault
.
word
5
b
,
kernel_unaligned_trap_fault
.
word
6
b
,
kernel_unaligned_trap_fault
.
word
7
b
,
kernel_unaligned_trap_fault
.
word
8
b
,
kernel_unaligned_trap_fault
.
word
9
b
,
kernel_unaligned_trap_fault
.
word
10
b
,
kernel_unaligned_trap_fault
.
word
11
b
,
kernel_unaligned_trap_fault
.
word
12
b
,
kernel_unaligned_trap_fault
.
word
13
b
,
kernel_unaligned_trap_fault
.
word
14
b
,
kernel_unaligned_trap_fault
.
word
15
b
,
kernel_unaligned_trap_fault
.
word
16
b
,
kernel_unaligned_trap_fault
.
word
17
b
,
kernel_unaligned_trap_fault
.
previous
.
globl
do_int_load
do_int_load
:
rd
%
asi
,
%
o5
wr
%
o4
,
0
,
%
asi
cmp
%
o1
,
8
bge
,
pn
%
icc
,
9
f
cmp
%
o1
,
4
be
,
pt
%
icc
,
6
f
4
:
lduba
[%
o2
]
%
asi
,
%
g2
5
:
lduba
[%
o2
+
1
]
%
asi
,
%
g3
sll
%
g2
,
8
,
%
g2
brz
,
pt
%
o3
,
3
f
add
%
g2
,
%
g3
,
%
g2
sllx
%
g2
,
48
,
%
g2
srax
%
g2
,
48
,
%
g2
3
:
ba
,
pt
%
xcc
,
0
f
stx
%
g2
,
[%
o0
]
6
:
lduba
[%
o2
+
1
]
%
asi
,
%
g3
sll
%
g2
,
24
,
%
g2
7
:
lduba
[%
o2
+
2
]
%
asi
,
%
g7
sll
%
g3
,
16
,
%
g3
8
:
lduba
[%
o2
+
3
]
%
asi
,
%
g1
sll
%
g7
,
8
,
%
g7
or
%
g2
,
%
g3
,
%
g2
or
%
g7
,
%
g1
,
%
g7
or
%
g2
,
%
g7
,
%
g2
brnz
,
a
,
pt
%
o3
,
3
f
sra
%
g2
,
0
,
%
g2
3
:
ba
,
pt
%
xcc
,
0
f
stx
%
g2
,
[%
o0
]
9
:
lduba
[%
o2
]
%
asi
,
%
g2
10
:
lduba
[%
o2
+
1
]
%
asi
,
%
g3
sllx
%
g2
,
56
,
%
g2
11
:
lduba
[%
o2
+
2
]
%
asi
,
%
g7
sllx
%
g3
,
48
,
%
g3
12
:
lduba
[%
o2
+
3
]
%
asi
,
%
g1
sllx
%
g7
,
40
,
%
g7
sllx
%
g1
,
32
,
%
g1
or
%
g2
,
%
g3
,
%
g2
or
%
g7
,
%
g1
,
%
g7
13
:
lduba
[%
o2
+
4
]
%
asi
,
%
g3
or
%
g2
,
%
g7
,
%
g7
14
:
lduba
[%
o2
+
5
]
%
asi
,
%
g1
sllx
%
g3
,
24
,
%
g3
15
:
lduba
[%
o2
+
6
]
%
asi
,
%
g2
sllx
%
g1
,
16
,
%
g1
or
%
g7
,
%
g3
,
%
g7
16
:
lduba
[%
o2
+
7
]
%
asi
,
%
g3
sllx
%
g2
,
8
,
%
g2
or
%
g7
,
%
g1
,
%
g7
or
%
g2
,
%
g3
,
%
g2
or
%
g7
,
%
g2
,
%
g7
cmp
%
o1
,
8
be
,
a
,
pt
%
icc
,
0
f
stx
%
g7
,
[%
o0
]
srlx
%
g7
,
32
,
%
g2
sra
%
g7
,
0
,
%
g7
stx
%
g2
,
[%
o0
]
stx
%
g7
,
[%
o0
+
8
]
0
:
wr
%
o5
,
0x0
,
%
asi
retl
nop
.
size
__do_int_load
,
.
-
__do_int_load
.
section
__ex_table
.
word
4
b
,
kernel_unaligned_trap_fault
.
word
5
b
,
kernel_unaligned_trap_fault
.
word
6
b
,
kernel_unaligned_trap_fault
.
word
7
b
,
kernel_unaligned_trap_fault
.
word
8
b
,
kernel_unaligned_trap_fault
.
word
9
b
,
kernel_unaligned_trap_fault
.
word
10
b
,
kernel_unaligned_trap_fault
.
word
11
b
,
kernel_unaligned_trap_fault
.
word
12
b
,
kernel_unaligned_trap_fault
.
word
13
b
,
kernel_unaligned_trap_fault
.
word
14
b
,
kernel_unaligned_trap_fault
.
word
15
b
,
kernel_unaligned_trap_fault
.
word
16
b
,
kernel_unaligned_trap_fault
.
previous
arch/sparc64/kernel/unaligned.c
View file @
b8d9598c
This diff is collapsed.
Click to expand it.
include/asm-sparc64/thread_info.h
View file @
b8d9598c
...
...
@@ -68,6 +68,9 @@ struct thread_info {
struct
restart_block
restart_block
;
struct
pt_regs
*
kern_una_regs
;
unsigned
int
kern_una_insn
;
unsigned
long
fpregs
[
0
]
__attribute__
((
aligned
(
64
)));
};
...
...
@@ -103,6 +106,8 @@ struct thread_info {
#define TI_PCR 0x00000490
#define TI_CEE_STUFF 0x00000498
#define TI_RESTART_BLOCK 0x000004a0
#define TI_KUNA_REGS 0x000004c8
#define TI_KUNA_INSN 0x000004d0
#define TI_FPREGS 0x00000500
/* We embed this in the uppermost byte of thread_info->flags */
...
...
scripts/mod/modpost.c
View file @
b8d9598c
...
...
@@ -359,11 +359,16 @@ handle_modversions(struct module *mod, struct elf_info *info,
/* ignore __this_module, it will be resolved shortly */
if
(
strcmp
(
symname
,
MODULE_SYMBOL_PREFIX
"__this_module"
)
==
0
)
break
;
#ifdef STT_REGISTER
/* cope with newer glibc (2.3.4 or higher) STT_ definition in elf.h */
#if defined(STT_REGISTER) || defined(STT_SPARC_REGISTER)
/* add compatibility with older glibc */
#ifndef STT_SPARC_REGISTER
#define STT_SPARC_REGISTER STT_REGISTER
#endif
if
(
info
->
hdr
->
e_machine
==
EM_SPARC
||
info
->
hdr
->
e_machine
==
EM_SPARCV9
)
{
/* Ignore register directives. */
if
(
ELF_ST_TYPE
(
sym
->
st_info
)
==
STT_REGISTER
)
if
(
ELF_ST_TYPE
(
sym
->
st_info
)
==
STT_
SPARC_
REGISTER
)
break
;
}
#endif
...
...
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