Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 321867
b: refs/heads/master
c: 7e30ed6
h: refs/heads/master
i:
  321865: 01f7d38
  321863: ea8e710
v: v3
  • Loading branch information
Matthew Garrett committed Aug 17, 2012
1 parent 47d1f12 commit e1eb0fc
Show file tree
Hide file tree
Showing 81 changed files with 1,497 additions and 1,514 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 807b5169e230b264b7db099f5c694e7df2ff3790
refs/heads/master: 7e30ed6bdd91ae73c34fc37b57fcccc8640641f9
12 changes: 6 additions & 6 deletions trunk/Documentation/devicetree/bindings/regulator/tps6586x.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ Required properties:
- regulators: list of regulators provided by this controller, must have
property "regulator-compatible" to match their hardware counterparts:
sm[0-2], ldo[0-9] and ldo_rtc
- vin-sm0-supply: The input supply for the SM0.
- vin-sm1-supply: The input supply for the SM1.
- vin-sm2-supply: The input supply for the SM2.
- sm0-supply: The input supply for the SM0.
- sm1-supply: The input supply for the SM1.
- sm2-supply: The input supply for the SM2.
- vinldo01-supply: The input supply for the LDO1 and LDO2
- vinldo23-supply: The input supply for the LDO2 and LDO3
- vinldo4-supply: The input supply for the LDO4
Expand All @@ -30,9 +30,9 @@ Example:
#gpio-cells = <2>;
gpio-controller;

vin-sm0-supply = <&some_reg>;
vin-sm1-supply = <&some_reg>;
vin-sm2-supply = <&some_reg>;
sm0-supply = <&some_reg>;
sm1-supply = <&some_reg>;
sm2-supply = <&some_reg>;
vinldo01-supply = <...>;
vinldo23-supply = <...>;
vinldo4-supply = <...>;
Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/alpha/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ config ALPHA
select ARCH_HAVE_NMI_SAFE_CMPXCHG
select GENERIC_SMP_IDLE_THREAD
select GENERIC_CMOS_UPDATE
select GENERIC_STRNCPY_FROM_USER
select GENERIC_STRNLEN_USER
help
The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory,
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/alpha/include/asm/atomic.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
*/


#define ATOMIC_INIT(i) { (i) }
#define ATOMIC64_INIT(i) { (i) }
#define ATOMIC_INIT(i) ( (atomic_t) { (i) } )
#define ATOMIC64_INIT(i) ( (atomic64_t) { (i) } )

#define atomic_read(v) (*(volatile int *)&(v)->counter)
#define atomic64_read(v) (*(volatile long *)&(v)->counter)
Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/alpha/include/asm/fpu.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
#ifndef __ASM_ALPHA_FPU_H
#define __ASM_ALPHA_FPU_H

#ifdef __KERNEL__
#include <asm/special_insns.h>
#endif

/*
* Alpha floating-point control register defines:
Expand Down
5 changes: 1 addition & 4 deletions trunk/arch/alpha/include/asm/ptrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,7 @@ struct switch_stack {
#define task_pt_regs(task) \
((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1)

#define current_pt_regs() \
((struct pt_regs *) ((char *)current_thread_info() + 2*PAGE_SIZE) - 1)

#define force_successful_syscall_return() (current_pt_regs()->r0 = 0)
#define force_successful_syscall_return() (task_pt_regs(current)->r0 = 0)

#endif

Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/alpha/include/asm/socket.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,9 @@
/* Instruct lower device to use last 4-bytes of skb data as FCS */
#define SO_NOFCS 43

#ifdef __KERNEL__
/* O_NONBLOCK clashes with the bits used for socket types. Therefore we
* have to define SOCK_NONBLOCK to a different value here.
*/
#define SOCK_NONBLOCK 0x40000000
#endif /* __KERNEL__ */

#endif /* _ASM_SOCKET_H */
34 changes: 29 additions & 5 deletions trunk/arch/alpha/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -433,12 +433,36 @@ clear_user(void __user *to, long len)
#undef __module_address
#undef __module_call

#define user_addr_max() \
(segment_eq(get_fs(), USER_DS) ? TASK_SIZE : ~0UL)
/* Returns: -EFAULT if exception before terminator, N if the entire
buffer filled, else strlen. */

extern long strncpy_from_user(char *dest, const char __user *src, long count);
extern __must_check long strlen_user(const char __user *str);
extern __must_check long strnlen_user(const char __user *str, long n);
extern long __strncpy_from_user(char *__to, const char __user *__from, long __to_len);

extern inline long
strncpy_from_user(char *to, const char __user *from, long n)
{
long ret = -EFAULT;
if (__access_ok((unsigned long)from, 0, get_fs()))
ret = __strncpy_from_user(to, from, n);
return ret;
}

/* Returns: 0 if bad, string length+1 (memory size) of string if ok */
extern long __strlen_user(const char __user *);

extern inline long strlen_user(const char __user *str)
{
return access_ok(VERIFY_READ,str,0) ? __strlen_user(str) : 0;
}

/* Returns: 0 if exception before NUL or reaching the supplied limit (N),
* a value greater than N if the limit would be exceeded, else strlen. */
extern long __strnlen_user(const char __user *, long);

extern inline long strnlen_user(const char __user *str, long n)
{
return access_ok(VERIFY_READ,str,0) ? __strnlen_user(str, n) : 0;
}

/*
* About the exception table:
Expand Down
4 changes: 1 addition & 3 deletions trunk/arch/alpha/include/asm/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -465,12 +465,10 @@
#define __NR_setns 501
#define __NR_accept4 502
#define __NR_sendmmsg 503
#define __NR_process_vm_readv 504
#define __NR_process_vm_writev 505

#ifdef __KERNEL__

#define NR_SYSCALLS 506
#define NR_SYSCALLS 504

#define __ARCH_WANT_OLD_READDIR
#define __ARCH_WANT_STAT64
Expand Down
55 changes: 0 additions & 55 deletions trunk/arch/alpha/include/asm/word-at-a-time.h

This file was deleted.

3 changes: 3 additions & 0 deletions trunk/arch/alpha/kernel/alpha_ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ EXPORT_SYMBOL(alpha_write_fp_reg_s);

/* entry.S */
EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(kernel_execve);

/* Networking helper routines. */
EXPORT_SYMBOL(csum_tcpudp_magic);
Expand All @@ -73,6 +74,8 @@ EXPORT_SYMBOL(alpha_fp_emul);
*/
EXPORT_SYMBOL(__copy_user);
EXPORT_SYMBOL(__do_clear_user);
EXPORT_SYMBOL(__strncpy_from_user);
EXPORT_SYMBOL(__strnlen_user);

/*
* SMP-specific symbols.
Expand Down
161 changes: 161 additions & 0 deletions trunk/arch/alpha/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,58 @@ kernel_thread:
br ret_to_kernel
.end kernel_thread

/*
* kernel_execve(path, argv, envp)
*/
.align 4
.globl kernel_execve
.ent kernel_execve
kernel_execve:
/* We can be called from a module. */
ldgp $gp, 0($27)
lda $sp, -(32+SIZEOF_PT_REGS+8)($sp)
.frame $sp, 32+SIZEOF_PT_REGS+8, $26, 0
stq $26, 0($sp)
stq $16, 8($sp)
stq $17, 16($sp)
stq $18, 24($sp)
.prologue 1

lda $16, 32($sp)
lda $17, 0
lda $18, SIZEOF_PT_REGS
bsr $26, memset !samegp

/* Avoid the HAE being gratuitously wrong, which would cause us
to do the whole turn off interrupts thing and restore it. */
ldq $2, alpha_mv+HAE_CACHE
stq $2, 152+32($sp)

ldq $16, 8($sp)
ldq $17, 16($sp)
ldq $18, 24($sp)
lda $19, 32($sp)
bsr $26, do_execve !samegp

ldq $26, 0($sp)
bne $0, 1f /* error! */

/* Move the temporary pt_regs struct from its current location
to the top of the kernel stack frame. See copy_thread for
details for a normal process. */
lda $16, 0x4000 - SIZEOF_PT_REGS($8)
lda $17, 32($sp)
lda $18, SIZEOF_PT_REGS
bsr $26, memmove !samegp

/* Take that over as our new stack frame and visit userland! */
lda $sp, 0x4000 - SIZEOF_PT_REGS($8)
br $31, ret_from_sys_call

1: lda $sp, 32+SIZEOF_PT_REGS+8($sp)
ret
.end kernel_execve


/*
* Special system calls. Most of these are special in that they either
Expand Down Expand Up @@ -744,6 +796,115 @@ sys_rt_sigreturn:
br ret_from_sys_call
.end sys_rt_sigreturn

.align 4
.globl sys_sethae
.ent sys_sethae
sys_sethae:
.prologue 0
stq $16, 152($sp)
ret
.end sys_sethae

.align 4
.globl osf_getpriority
.ent osf_getpriority
osf_getpriority:
lda $sp, -16($sp)
stq $26, 0($sp)
.prologue 0

jsr $26, sys_getpriority

ldq $26, 0($sp)
blt $0, 1f

/* Return value is the unbiased priority, i.e. 20 - prio.
This does result in negative return values, so signal
no error by writing into the R0 slot. */
lda $1, 20
stq $31, 16($sp)
subl $1, $0, $0
unop

1: lda $sp, 16($sp)
ret
.end osf_getpriority

.align 4
.globl sys_getxuid
.ent sys_getxuid
sys_getxuid:
.prologue 0
ldq $2, TI_TASK($8)
ldq $3, TASK_CRED($2)
ldl $0, CRED_UID($3)
ldl $1, CRED_EUID($3)
stq $1, 80($sp)
ret
.end sys_getxuid

.align 4
.globl sys_getxgid
.ent sys_getxgid
sys_getxgid:
.prologue 0
ldq $2, TI_TASK($8)
ldq $3, TASK_CRED($2)
ldl $0, CRED_GID($3)
ldl $1, CRED_EGID($3)
stq $1, 80($sp)
ret
.end sys_getxgid

.align 4
.globl sys_getxpid
.ent sys_getxpid
sys_getxpid:
.prologue 0
ldq $2, TI_TASK($8)

/* See linux/kernel/timer.c sys_getppid for discussion
about this loop. */
ldq $3, TASK_GROUP_LEADER($2)
ldq $4, TASK_REAL_PARENT($3)
ldl $0, TASK_TGID($2)
1: ldl $1, TASK_TGID($4)
#ifdef CONFIG_SMP
mov $4, $5
mb
ldq $3, TASK_GROUP_LEADER($2)
ldq $4, TASK_REAL_PARENT($3)
cmpeq $4, $5, $5
beq $5, 1b
#endif
stq $1, 80($sp)
ret
.end sys_getxpid

.align 4
.globl sys_alpha_pipe
.ent sys_alpha_pipe
sys_alpha_pipe:
lda $sp, -16($sp)
stq $26, 0($sp)
.prologue 0

mov $31, $17
lda $16, 8($sp)
jsr $26, do_pipe_flags

ldq $26, 0($sp)
bne $0, 1f

/* The return values are in $0 and $20. */
ldl $1, 12($sp)
ldl $0, 8($sp)

stq $1, 80+16($sp)
1: lda $sp, 16($sp)
ret
.end sys_alpha_pipe

.align 4
.globl sys_execve
.ent sys_execve
Expand Down
Loading

0 comments on commit e1eb0fc

Please sign in to comment.