Skip to content

Commit ab7c828

Browse files
author
Linus Torvalds
committed
Merge bk://are.twiddle.net/axp-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
2 parents 6c94e37 + 4964368 commit ab7c828

File tree

11 files changed

+87
-97
lines changed

11 files changed

+87
-97
lines changed

arch/alpha/kernel/asm-offsets.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ void foo(void)
3131
DEFINE(TASK_TGID, offsetof(struct task_struct, tgid));
3232
BLANK();
3333

34+
DEFINE(SIZEOF_PT_REGS, sizeof(struct pt_regs));
3435
DEFINE(PT_PTRACED, PT_PTRACED);
3536
DEFINE(CLONE_VM, CLONE_VM);
3637
DEFINE(CLONE_UNTRACED, CLONE_UNTRACED);

arch/alpha/kernel/head.S

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
#include <linux/config.h>
1111
#include <asm/system.h>
12+
#include <asm/asm_offsets.h>
1213

1314
.globl swapper_pg_dir
1415
.globl _stext
@@ -25,7 +26,7 @@ __start:
2526
/* We need to get current_task_info loaded up... */
2627
lda $8,init_thread_union
2728
/* ... and find our stack ... */
28-
lda $30,0x4000($8)
29+
lda $30,0x4000 - SIZEOF_PT_REGS($8)
2930
/* ... and then we can start the kernel. */
3031
jsr $26,start_kernel
3132
call_pal PAL_halt

arch/alpha/kernel/systbls.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,7 @@ sys_call_table:
442442
.quad sys_clock_gettime /* 420 */
443443
.quad sys_clock_getres
444444
.quad sys_clock_nanosleep
445+
.quad sys_semtimedop
445446

446447
.size sys_call_table, . - sys_call_table
447448
.type sys_call_table, @object

arch/alpha/kernel/traps.c

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -485,9 +485,9 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
485485
" extwh %2,%3,%2\n"
486486
"3:\n"
487487
".section __ex_table,\"a\"\n"
488-
" .gprel32 1b\n"
488+
" .long 1b - .\n"
489489
" lda %1,3b-1b(%0)\n"
490-
" .gprel32 2b\n"
490+
" .long 2b - .\n"
491491
" lda %2,3b-2b(%0)\n"
492492
".previous"
493493
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -505,9 +505,9 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
505505
" extlh %2,%3,%2\n"
506506
"3:\n"
507507
".section __ex_table,\"a\"\n"
508-
" .gprel32 1b\n"
508+
" .long 1b - .\n"
509509
" lda %1,3b-1b(%0)\n"
510-
" .gprel32 2b\n"
510+
" .long 2b - .\n"
511511
" lda %2,3b-2b(%0)\n"
512512
".previous"
513513
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -525,9 +525,9 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
525525
" extqh %2,%3,%2\n"
526526
"3:\n"
527527
".section __ex_table,\"a\"\n"
528-
" .gprel32 1b\n"
528+
" .long 1b - .\n"
529529
" lda %1,3b-1b(%0)\n"
530-
" .gprel32 2b\n"
530+
" .long 2b - .\n"
531531
" lda %2,3b-2b(%0)\n"
532532
".previous"
533533
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -554,13 +554,13 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
554554
"4: stq_u %1,0(%5)\n"
555555
"5:\n"
556556
".section __ex_table,\"a\"\n"
557-
" .gprel32 1b\n"
557+
" .long 1b - .\n"
558558
" lda %2,5b-1b(%0)\n"
559-
" .gprel32 2b\n"
559+
" .long 2b - .\n"
560560
" lda %1,5b-2b(%0)\n"
561-
" .gprel32 3b\n"
561+
" .long 3b - .\n"
562562
" lda $31,5b-3b(%0)\n"
563-
" .gprel32 4b\n"
563+
" .long 4b - .\n"
564564
" lda $31,5b-4b(%0)\n"
565565
".previous"
566566
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2),
@@ -584,13 +584,13 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
584584
"4: stq_u %1,0(%5)\n"
585585
"5:\n"
586586
".section __ex_table,\"a\"\n"
587-
" .gprel32 1b\n"
587+
" .long 1b - .\n"
588588
" lda %2,5b-1b(%0)\n"
589-
" .gprel32 2b\n"
589+
" .long 2b - .\n"
590590
" lda %1,5b-2b(%0)\n"
591-
" .gprel32 3b\n"
591+
" .long 3b - .\n"
592592
" lda $31,5b-3b(%0)\n"
593-
" .gprel32 4b\n"
593+
" .long 4b - .\n"
594594
" lda $31,5b-4b(%0)\n"
595595
".previous"
596596
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2),
@@ -614,13 +614,13 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
614614
"4: stq_u %1,0(%5)\n"
615615
"5:\n"
616616
".section __ex_table,\"a\"\n\t"
617-
" .gprel32 1b\n"
617+
" .long 1b - .\n"
618618
" lda %2,5b-1b(%0)\n"
619-
" .gprel32 2b\n"
619+
" .long 2b - .\n"
620620
" lda %1,5b-2b(%0)\n"
621-
" .gprel32 3b\n"
621+
" .long 3b - .\n"
622622
" lda $31,5b-3b(%0)\n"
623-
" .gprel32 4b\n"
623+
" .long 4b - .\n"
624624
" lda $31,5b-4b(%0)\n"
625625
".previous"
626626
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2),
@@ -845,9 +845,9 @@ do_entUnaUser(void * va, unsigned long opcode,
845845
" extwh %2,%3,%2\n"
846846
"3:\n"
847847
".section __ex_table,\"a\"\n"
848-
" .gprel32 1b\n"
848+
" .long 1b - .\n"
849849
" lda %1,3b-1b(%0)\n"
850-
" .gprel32 2b\n"
850+
" .long 2b - .\n"
851851
" lda %2,3b-2b(%0)\n"
852852
".previous"
853853
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -865,9 +865,9 @@ do_entUnaUser(void * va, unsigned long opcode,
865865
" extlh %2,%3,%2\n"
866866
"3:\n"
867867
".section __ex_table,\"a\"\n"
868-
" .gprel32 1b\n"
868+
" .long 1b - .\n"
869869
" lda %1,3b-1b(%0)\n"
870-
" .gprel32 2b\n"
870+
" .long 2b - .\n"
871871
" lda %2,3b-2b(%0)\n"
872872
".previous"
873873
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -885,9 +885,9 @@ do_entUnaUser(void * va, unsigned long opcode,
885885
" extqh %2,%3,%2\n"
886886
"3:\n"
887887
".section __ex_table,\"a\"\n"
888-
" .gprel32 1b\n"
888+
" .long 1b - .\n"
889889
" lda %1,3b-1b(%0)\n"
890-
" .gprel32 2b\n"
890+
" .long 2b - .\n"
891891
" lda %2,3b-2b(%0)\n"
892892
".previous"
893893
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -905,9 +905,9 @@ do_entUnaUser(void * va, unsigned long opcode,
905905
" extlh %2,%3,%2\n"
906906
"3:\n"
907907
".section __ex_table,\"a\"\n"
908-
" .gprel32 1b\n"
908+
" .long 1b - .\n"
909909
" lda %1,3b-1b(%0)\n"
910-
" .gprel32 2b\n"
910+
" .long 2b - .\n"
911911
" lda %2,3b-2b(%0)\n"
912912
".previous"
913913
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -925,9 +925,9 @@ do_entUnaUser(void * va, unsigned long opcode,
925925
" extqh %2,%3,%2\n"
926926
"3:\n"
927927
".section __ex_table,\"a\"\n"
928-
" .gprel32 1b\n"
928+
" .long 1b - .\n"
929929
" lda %1,3b-1b(%0)\n"
930-
" .gprel32 2b\n"
930+
" .long 2b - .\n"
931931
" lda %2,3b-2b(%0)\n"
932932
".previous"
933933
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2)
@@ -954,13 +954,13 @@ do_entUnaUser(void * va, unsigned long opcode,
954954
"4: stq_u %1,0(%5)\n"
955955
"5:\n"
956956
".section __ex_table,\"a\"\n"
957-
" .gprel32 1b\n"
957+
" .long 1b - .\n"
958958
" lda %2,5b-1b(%0)\n"
959-
" .gprel32 2b\n"
959+
" .long 2b - .\n"
960960
" lda %1,5b-2b(%0)\n"
961-
" .gprel32 3b\n"
961+
" .long 3b - .\n"
962962
" lda $31,5b-3b(%0)\n"
963-
" .gprel32 4b\n"
963+
" .long 4b - .\n"
964964
" lda $31,5b-4b(%0)\n"
965965
".previous"
966966
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2),
@@ -988,13 +988,13 @@ do_entUnaUser(void * va, unsigned long opcode,
988988
"4: stq_u %1,0(%5)\n"
989989
"5:\n"
990990
".section __ex_table,\"a\"\n"
991-
" .gprel32 1b\n"
991+
" .long 1b - .\n"
992992
" lda %2,5b-1b(%0)\n"
993-
" .gprel32 2b\n"
993+
" .long 2b - .\n"
994994
" lda %1,5b-2b(%0)\n"
995-
" .gprel32 3b\n"
995+
" .long 3b - .\n"
996996
" lda $31,5b-3b(%0)\n"
997-
" .gprel32 4b\n"
997+
" .long 4b - .\n"
998998
" lda $31,5b-4b(%0)\n"
999999
".previous"
10001000
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2),
@@ -1022,13 +1022,13 @@ do_entUnaUser(void * va, unsigned long opcode,
10221022
"4: stq_u %1,0(%5)\n"
10231023
"5:\n"
10241024
".section __ex_table,\"a\"\n\t"
1025-
" .gprel32 1b\n"
1025+
" .long 1b - .\n"
10261026
" lda %2,5b-1b(%0)\n"
1027-
" .gprel32 2b\n"
1027+
" .long 2b - .\n"
10281028
" lda %1,5b-2b(%0)\n"
1029-
" .gprel32 3b\n"
1029+
" .long 3b - .\n"
10301030
" lda $31,5b-3b(%0)\n"
1031-
" .gprel32 4b\n"
1031+
" .long 4b - .\n"
10321032
" lda $31,5b-4b(%0)\n"
10331033
".previous"
10341034
: "=r"(error), "=&r"(tmp1), "=&r"(tmp2),

arch/alpha/lib/csum_partial_copy.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ __asm__ __volatile__("insqh %1,%2,%0":"=r" (z):"r" (x),"r" (y))
4646
"1: ldq_u %0,%2\n" \
4747
"2:\n" \
4848
".section __ex_table,\"a\"\n" \
49-
" .gprel32 1b\n" \
49+
" .long 1b - .\n" \
5050
" lda %0,2b-1b(%1)\n" \
5151
".previous" \
5252
: "=r"(x), "=r"(__guu_err) \
@@ -61,7 +61,7 @@ __asm__ __volatile__("insqh %1,%2,%0":"=r" (z):"r" (x),"r" (y))
6161
"1: stq_u %2,%1\n" \
6262
"2:\n" \
6363
".section __ex_table,\"a\"\n" \
64-
" .gprel32 1b" \
64+
" .long 1b - ." \
6565
" lda $31,2b-1b(%0)\n" \
6666
".previous" \
6767
: "=r"(__puu_err) \

arch/alpha/lib/memmove.S

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@
1111
.set noreorder
1212
.text
1313

14+
.align 4
15+
.globl bcopy
16+
.ent bcopy
17+
bcopy:
18+
mov $16,$0
19+
mov $17,$16
20+
mov $0,$17
21+
.end bcopy
22+
1423
.align 4
1524
.globl memmove
1625
.ent memmove

include/asm-alpha/ptrace.h

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,8 @@ struct switch_stack {
7171
#define instruction_pointer(regs) ((regs)->pc)
7272
extern void show_regs(struct pt_regs *);
7373

74-
/*
75-
* TODO: if kernel-only threads do not have a dummy pt_regs structure at the
76-
* top of the stack, this would cause kernel stack corruption. Either check
77-
* first that we're not dealing with a kernel thread or change the kernel
78-
* stacks to allocate a dummy pt_regs structure.
79-
*/
80-
81-
#define alpha_task_regs(task) ((struct pt_regs *) \
82-
((long) task->thread_info + PAGE_SIZE) - 1)
74+
#define alpha_task_regs(task) \
75+
((struct pt_regs *) ((long) (task)->thread_info + 2*PAGE_SIZE) - 1)
8376

8477
#define force_successful_syscall_return() (alpha_task_regs(current)->r0 = 0)
8578

include/asm-alpha/string.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#define __HAVE_ARCH_MEMCPY
1414
extern void * memcpy(void *, const void *, size_t);
1515
#define __HAVE_ARCH_MEMMOVE
16+
#define __HAVE_ARCH_BCOPY
1617
extern void * memmove(void *, const void *, size_t);
1718

1819
/* For backward compatibility with modules. Unused otherwise. */

0 commit comments

Comments
 (0)