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
306cf7f1
Commit
306cf7f1
authored
Dec 01, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/home/davem/BK/sparc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
2aceefe4
167f66d3
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
82 additions
and
56 deletions
+82
-56
arch/sparc/kernel/sparc_ksyms.c
arch/sparc/kernel/sparc_ksyms.c
+4
-2
arch/sparc/kernel/sys_sunos.c
arch/sparc/kernel/sys_sunos.c
+2
-0
arch/sparc/kernel/tick14.c
arch/sparc/kernel/tick14.c
+1
-0
arch/sparc/mm/iommu.c
arch/sparc/mm/iommu.c
+2
-2
arch/sparc64/Makefile
arch/sparc64/Makefile
+5
-0
arch/sparc64/kernel/smp.c
arch/sparc64/kernel/smp.c
+39
-39
arch/sparc64/kernel/sys_sparc32.c
arch/sparc64/kernel/sys_sparc32.c
+2
-1
arch/sparc64/solaris/ioctl.c
arch/sparc64/solaris/ioctl.c
+2
-0
drivers/serial/sunzilog.c
drivers/serial/sunzilog.c
+3
-2
fs/xfs/support/move.c
fs/xfs/support/move.c
+1
-0
include/asm-sparc/elf.h
include/asm-sparc/elf.h
+1
-1
include/asm-sparc/hardirq.h
include/asm-sparc/hardirq.h
+1
-0
include/asm-sparc/io.h
include/asm-sparc/io.h
+0
-3
include/asm-sparc/irq.h
include/asm-sparc/irq.h
+1
-1
include/asm-sparc/page.h
include/asm-sparc/page.h
+3
-0
include/asm-sparc64/irq.h
include/asm-sparc64/irq.h
+1
-1
include/asm-sparc64/rwsem.h
include/asm-sparc64/rwsem.h
+1
-1
include/asm-sparc64/system.h
include/asm-sparc64/system.h
+9
-3
sound/core/ioctl32/ioctl32.c
sound/core/ioctl32/ioctl32.c
+1
-0
sound/core/ioctl32/rawmidi32.c
sound/core/ioctl32/rawmidi32.c
+1
-0
sound/core/ioctl32/seq32.c
sound/core/ioctl32/seq32.c
+1
-0
sound/core/ioctl32/timer32.c
sound/core/ioctl32/timer32.c
+1
-0
No files found.
arch/sparc/kernel/sparc_ksyms.c
View file @
306cf7f1
...
...
@@ -90,11 +90,13 @@ extern void dump_thread(struct pt_regs *, struct user *);
#define EXPORT_SYMBOL_DOT(sym) \
extern int __sparc_dot_ ## sym (int) __asm__("." #sym); \
__EXPORT_SYMBOL(__sparc_dot_ ## sym, "." #sym)
const struct kernel_symbol __ksymtab___sparc_dot_##sym \
__attribute__((section("__ksymtab"))) \
= { (unsigned long)&__sparc_dot_##sym , "." #sym }
#define EXPORT_SYMBOL_PRIVATE(sym) \
extern int __sparc_priv_ ## sym (int) __asm__("__" #sym); \
const struct
module
_symbol __export_priv_##sym \
const struct
kernel
_symbol __export_priv_##sym \
__attribute__((section("__ksymtab"))) = \
{ (unsigned long) &__sparc_priv_ ## sym, "__" #sym }
...
...
arch/sparc/kernel/sys_sunos.c
View file @
306cf7f1
...
...
@@ -34,6 +34,8 @@
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <net/sock.h>
#include <asm/uaccess.h>
#ifndef KERNEL_DS
#include <linux/segment.h>
...
...
arch/sparc/kernel/tick14.c
View file @
306cf7f1
...
...
@@ -16,6 +16,7 @@
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/timex.h>
#include <linux/interrupt.h>
#include <asm/oplib.h>
#include <asm/segment.h>
...
...
arch/sparc/mm/iommu.c
View file @
306cf7f1
...
...
@@ -192,9 +192,9 @@ static void iommu_get_scsi_sgl_pflush(struct scatterlist *sg, int sz, struct sbu
{
unsigned
long
page
,
oldpage
=
0
;
while
(
sz
>
=
0
)
{
while
(
sz
!
=
0
)
{
--
sz
;
page
=
(
(
unsigned
long
)
sg
[
sz
].
offset
)
&
PAGE_MASK
;
page
=
(
unsigned
long
)
page_address
(
sg
[
sz
].
page
)
;
if
(
oldpage
==
page
)
page
+=
PAGE_SIZE
;
/* We flushed that page already */
while
(
page
<
(
unsigned
long
)(
page_address
(
sg
[
sz
].
page
)
+
sg
[
sz
].
offset
+
sg
[
sz
].
length
))
{
...
...
arch/sparc64/Makefile
View file @
306cf7f1
...
...
@@ -19,6 +19,7 @@ CC := $(shell if gcc -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then e
NEW_GCC
:=
$(
shell
if
$(CC)
-m64
-mcmodel
=
medlow
-S
-o
/dev/null
-xc
/dev/null
>
/dev/null 2>&1
;
then
echo
y
;
else
echo
n
;
fi
;
)
NEW_GAS
:=
$(
shell
if
$(LD)
-V
2>&1 |
grep
'elf64_sparc'
>
/dev/null
;
then
echo
y
;
else
echo
n
;
fi
)
UNDECLARED_REGS
:=
$(
shell
if
$(CC)
-c
-x
assembler /dev/null
-Wa
,--help |
grep
undeclared-regs
>
/dev/null
;
then
echo
y
;
else
echo
n
;
fi
;
)
INLINE_LIMIT
:=
$(
shell
if
$(CC)
-m64
-finline-limit
=
100000
-S
-o
/dev/null
-xc
/dev/null
>
/dev/null 2>&1
;
then
echo
y
;
else
echo
n
;
fi
;
)
export
NEW_GCC
...
...
@@ -51,6 +52,10 @@ else
AFLAGS
+=
-m64
-mcpu
=
ultrasparc
$(CC_UNDECL)
endif
ifeq
($(INLINE_LIMIT),y)
CFLAGS
:=
$(CFLAGS)
-finline-limit
=
100000
endif
ifeq
($(CONFIG_MCOUNT),y)
CFLAGS
:=
$(
subst
-fomit-frame-pointer
,,
$(CFLAGS)
)
CFLAGS
:=
$(CFLAGS)
-pg
...
...
arch/sparc64/kernel/smp.c
View file @
306cf7f1
...
...
@@ -145,28 +145,28 @@ void __init smp_callin(void)
* purposes. Also workaround BB_ERRATA_1 by doing a dummy
* read back of %tick after writing it.
*/
__asm__
__volatile__
(
"
sethi %%hi(0x80000000), %%g1
ba,pt %%xcc, 1f
sllx %%g1, 32, %%g1
.align 64
1: rd %%tick, %%g2
add %%g2, 6, %%g2
andn %%g2, %%g1, %%g2
wrpr %%g2, 0, %%tick
rdpr %%tick, %%g0"
__asm__
__volatile__
(
"sethi %%hi(0x80000000), %%g1
\n\t
"
"ba,pt %%xcc, 1f
\n\t
"
" sllx %%g1, 32, %%g1
\n\t
"
".align 64
\n
"
"1: rd %%tick, %%g2
\n\t
"
"add %%g2, 6, %%g2
\n\t
"
"andn %%g2, %%g1, %%g2
\n\t
"
"wrpr %%g2, 0, %%tick
\n\t
"
"
rdpr %%tick, %%g0"
:
/* no outputs */
:
/* no inputs */
:
"g1"
,
"g2"
);
if
(
SPARC64_USE_STICK
)
{
/* Let the user get at STICK too. */
__asm__
__volatile__
(
"
sethi %%hi(0x80000000), %%g1
sllx %%g1, 32, %%g1
rd %%asr24, %%g2
andn %%g2, %%g1, %%g2
wr %%g2, 0, %%asr24"
__asm__
__volatile__
(
"sethi %%hi(0x80000000), %%g1
\n\t
"
"sllx %%g1, 32, %%g1
\n\t
"
"rd %%asr24, %%g2
\n\t
"
"andn %%g2, %%g1, %%g2
\n\t
"
"
wr %%g2, 0, %%asr24"
:
/* no outputs */
:
/* no inputs */
:
"g1"
,
"g2"
);
...
...
@@ -283,18 +283,18 @@ static void spitfire_xcall_helper(u64 data0, u64 data1, u64 data2, u64 pstate, u
* ADDR 0x20) for the dummy read. -DaveM
*/
tmp
=
0x40
;
__asm__
__volatile__
(
"
wrpr %1, %2, %%pstate
stxa %4, [%0] %3
stxa %5, [%0+%8] %3
add %0, %8, %0
stxa %6, [%0+%8] %3
membar #Sync
stxa %%g0, [%7] %3
membar #Sync
mov 0x20, %%g1
ldxa [%%g1] 0x7f, %%g0
membar #Sync"
__asm__
__volatile__
(
"wrpr %1, %2, %%pstate
\n\t
"
"stxa %4, [%0] %3
\n\t
"
"stxa %5, [%0+%8] %3
\n\t
"
"add %0, %8, %0
\n\t
"
"stxa %6, [%0+%8] %3
\n\t
"
"membar #Sync
\n\t
"
"stxa %%g0, [%7] %3
\n\t
"
"membar #Sync
\n\t
"
"mov 0x20, %%g1
\n\t
"
"ldxa [%%g1] 0x7f, %%g0
\n\t
"
"
membar #Sync"
:
"=r"
(
tmp
)
:
"r"
(
pstate
),
"i"
(
PSTATE_IE
),
"i"
(
ASI_INTR_W
),
"r"
(
data0
),
"r"
(
data1
),
"r"
(
data2
),
"r"
(
target
),
...
...
@@ -1054,21 +1054,21 @@ static void __init smp_setup_percpu_timer(void)
* read back from %tick_cmpr right after writing to it. -DaveM
*/
if
(
!
SPARC64_USE_STICK
)
{
__asm__
__volatile__
(
"
rd %%tick, %%g1
ba,pt %%xcc, 1f
add %%g1, %0, %%g1
.align 64
1: wr %%g1, 0x0, %%tick_cmpr
rd %%tick_cmpr, %%g0"
__asm__
__volatile__
(
"rd %%tick, %%g1
\n\t
"
"ba,pt %%xcc, 1f
\n\t
"
" add %%g1, %0, %%g1
\n\t
"
".align 64
\n
"
"1: wr %%g1, 0x0, %%tick_cmpr
\n\t
"
"
rd %%tick_cmpr, %%g0"
:
/* no outputs */
:
"r"
(
current_tick_offset
)
:
"g1"
);
}
else
{
__asm__
__volatile__
(
"
rd %%asr24, %%g1
add %%g1, %0, %%g1
wr %%g1, 0x0, %%asr25"
__asm__
__volatile__
(
"rd %%asr24, %%g1
\n\t
"
"add %%g1, %0, %%g1
\n\t
"
"
wr %%g1, 0x0, %%asr25"
:
/* no outputs */
:
"r"
(
current_tick_offset
)
:
"g1"
);
...
...
arch/sparc64/kernel/sys_sparc32.c
View file @
306cf7f1
...
...
@@ -51,6 +51,7 @@
#include <linux/sysctl.h>
#include <linux/binfmts.h>
#include <linux/dnotify.h>
#include <linux/security.h>
#include <asm/types.h>
#include <asm/ipc.h>
...
...
@@ -1096,7 +1097,7 @@ static long do_readv_writev32(int type, struct file *file,
/* VERIFY_WRITE actually means a read, as we write to user space */
if
((
retval
+
(
type
==
VERIFY_WRITE
))
>
0
)
dnotify_parent
(
file
->
f_dentry
,
(
type
==
VERIFY_WRITE
)
?
DN_
MODIFY
:
DN_ACCESS
);
(
type
==
VERIFY_WRITE
)
?
DN_
ACCESS
:
DN_MODIFY
);
return
retval
;
}
...
...
arch/sparc64/solaris/ioctl.c
View file @
306cf7f1
...
...
@@ -369,6 +369,7 @@ static inline int solaris_sockmod(unsigned int fd, unsigned int cmd, u32 arg)
case
106
:
/* SI_GETINTRANSIT */
case
107
:
/* SI_TCL_LINK */
case
108
:
/* SI_TCL_UNLINK */
;
}
return
TNOTSUPPORT
;
}
...
...
@@ -456,6 +457,7 @@ static inline int solaris_timod(unsigned int fd, unsigned int cmd, u32 arg,
case
145
:
/* TI_GETPEERNAME */
case
146
:
/* TI_SETMYNAME */
case
147
:
/* TI_SETPEERNAME */
;
}
return
TNOTSUPPORT
;
}
...
...
drivers/serial/sunzilog.c
View file @
306cf7f1
...
...
@@ -1586,8 +1586,9 @@ static void __init sunzilog_init_hw(void)
}
else
{
/* Normal serial TTY. */
up
->
parity_mask
=
0xff
;
up
->
curregs
[
R3
]
=
RxENAB
;
up
->
curregs
[
R5
]
=
TxENAB
;
up
->
curregs
[
R4
]
=
PAR_EVEN
|
X16CLK
|
SB1
;
up
->
curregs
[
R3
]
=
RxENAB
|
Rx8
;
up
->
curregs
[
R5
]
=
TxENAB
|
Tx8
;
up
->
curregs
[
R9
]
=
NV
|
MIE
;
up
->
curregs
[
R10
]
=
NRZ
;
up
->
curregs
[
R11
]
=
TCBR
|
RCBR
;
...
...
fs/xfs/support/move.c
View file @
306cf7f1
...
...
@@ -30,6 +30,7 @@
* http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
*/
#include <linux/errno.h>
#include <asm/uaccess.h>
#include <xfs_types.h>
...
...
include/asm-sparc/elf.h
View file @
306cf7f1
...
...
@@ -56,7 +56,7 @@ typedef struct {
}
elf_fpregset_t
;
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread
_info->
kregs); 1; })
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread
.
kregs); 1; })
/*
* This is used to ensure we don't load something for the wrong architecture.
...
...
include/asm-sparc/hardirq.h
View file @
306cf7f1
...
...
@@ -11,6 +11,7 @@
#include <linux/threads.h>
#include <linux/brlock.h>
#include <linux/spinlock.h>
#include <linux/cache.h>
/* entry.S is sensitive to the offsets of these fields */
/* XXX P3 Is it? */
typedef
struct
{
...
...
include/asm-sparc/io.h
View file @
306cf7f1
...
...
@@ -187,9 +187,6 @@ extern unsigned long sbus_ioremap(struct resource *res, unsigned long offset,
extern
void
sbus_iounmap
(
unsigned
long
vaddr
,
unsigned
long
size
);
#define virt_to_phys(x) __pa((unsigned long)(x))
#define phys_to_virt(x) __va((unsigned long)(x))
/*
* At the moment, we do not use CMOS_READ anywhere outside of rtc.c,
* so rtc_port is static in it. This should not change unless a new
...
...
include/asm-sparc/irq.h
View file @
306cf7f1
...
...
@@ -19,7 +19,7 @@
BTFIXUPDEF_CALL
(
char
*
,
__irq_itoa
,
unsigned
int
)
#define __irq_itoa(irq) BTFIXUP_CALL(__irq_itoa)(irq)
#define NR_IRQS 1
5
#define NR_IRQS 1
6
#define irq_cannonicalize(irq) (irq)
...
...
include/asm-sparc/page.h
View file @
306cf7f1
...
...
@@ -174,6 +174,9 @@ extern __inline__ int get_order(unsigned long size)
#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
#define virt_to_phys(x) __pa((unsigned long)(x))
#define phys_to_virt(x) __va((unsigned long)(x))
#define pfn_to_page(pfn) (mem_map + (pfn))
#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT))
...
...
include/asm-sparc64/irq.h
View file @
306cf7f1
...
...
@@ -110,7 +110,7 @@ static __inline__ char *__irq_itoa(unsigned int irq)
return
buff
;
}
#define NR_IRQS 1
5
#define NR_IRQS 1
6
#define irq_cannonicalize(irq) (irq)
extern
void
disable_irq
(
unsigned
int
);
...
...
include/asm-sparc64/rwsem.h
View file @
306cf7f1
...
...
@@ -279,7 +279,7 @@ static __inline__ int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
"mov %%g7, %0
\n\t
"
:
"=&r"
(
tmp
)
:
"0"
(
tmp
),
"r"
(
sem
)
:
"g5"
,
"g7"
,
"memory"
);
:
"g5"
,
"g7"
,
"memory"
,
"cc"
);
return
tmp
+
delta
;
}
...
...
include/asm-sparc64/system.h
View file @
306cf7f1
...
...
@@ -164,6 +164,11 @@ do { spin_unlock_irq(&(prev)->switch_lock); \
* not preserve it's value. Hairy, but it lets us remove 2 loads
* and 2 stores in this critical code path. -DaveM
*/
#if __GNUC__ >= 3
#define EXTRA_CLOBBER ,"%l1"
#else
#define EXTRA_CLOBBER
#endif
#define switch_to(prev, next, last) \
do { if (test_thread_flag(TIF_PERFCTR)) { \
unsigned long __tmp; \
...
...
@@ -209,10 +214,11 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \
: "0" (next->thread_info), \
"i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_FLAGS), "i" (TI_CWP), \
"i" (_TIF_NEWCHILD), "i" (TI_TASK) \
: "cc", "g1", "g2", "g3", "g5", "g7", \
"l2", "l3", "l4", "l5", "l6", "l7", \
: "cc", \
"g1", "g2", "g3", "g5", "g7", \
"l2", "l3", "l4", "l5", "l6", "l7", \
"i0", "i1", "i2", "i3", "i4", "i5", \
"o0", "o1", "o2", "o3", "o4", "o5",
"o7");
\
"o0", "o1", "o2", "o3", "o4", "o5",
"o7" EXTRA_CLOBBER);
\
/* If you fuck with this, update ret_from_syscall code too. */
\
if (test_thread_flag(TIF_PERFCTR)) { \
write_pcr(current_thread_info()->pcr_reg); \
...
...
sound/core/ioctl32/ioctl32.c
View file @
306cf7f1
...
...
@@ -24,6 +24,7 @@
#include <linux/init.h>
#include <linux/time.h>
#include <linux/slab.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <sound/core.h>
#include <sound/control.h>
...
...
sound/core/ioctl32/rawmidi32.c
View file @
306cf7f1
...
...
@@ -20,6 +20,7 @@
#include <sound/driver.h>
#include <linux/time.h>
#include <linux/fs.h>
#include <sound/core.h>
#include <sound/rawmidi.h>
#include <asm/uaccess.h>
...
...
sound/core/ioctl32/seq32.c
View file @
306cf7f1
...
...
@@ -20,6 +20,7 @@
#include <sound/driver.h>
#include <linux/time.h>
#include <linux/fs.h>
#include <sound/core.h>
#include <sound/timer.h>
#include <asm/uaccess.h>
...
...
sound/core/ioctl32/timer32.c
View file @
306cf7f1
...
...
@@ -20,6 +20,7 @@
#include <sound/driver.h>
#include <linux/time.h>
#include <linux/fs.h>
#include <sound/core.h>
#include <sound/timer.h>
#include <asm/uaccess.h>
...
...
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