Commit 5e2027e2 authored by David S. Miller's avatar David S. Miller

[SPARC]: Add restart_block to thread_info.

parent bf79d5d0
...@@ -44,18 +44,23 @@ struct thread_info { ...@@ -44,18 +44,23 @@ struct thread_info {
unsigned long kpc; unsigned long kpc;
unsigned long kpsr; unsigned long kpsr;
unsigned long kwim; unsigned long kwim;
struct restart_block restart_block;
}; };
/* /*
* macros/functions for gaining access to the thread information structure * macros/functions for gaining access to the thread information structure
*/ */
#define INIT_THREAD_INFO(tsk) \ #define INIT_THREAD_INFO(tsk) \
{ \ { \
uwinmask: 0, \ .uwinmask = 0, \
task: &tsk, \ .task = &tsk, \
exec_domain: &default_exec_domain, \ .exec_domain = &default_exec_domain, \
flags: 0, \ .flags = 0, \
cpu: 0, \ .cpu = 0, \
.restart_block = { \
.fn = do_no_restart_syscall, \
},
} }
#define init_thread_info (init_thread_union.thread_info) #define init_thread_info (init_thread_union.thread_info)
...@@ -110,6 +115,7 @@ BTFIXUPDEF_CALL(void, free_thread_info, struct thread_info *) ...@@ -110,6 +115,7 @@ BTFIXUPDEF_CALL(void, free_thread_info, struct thread_info *)
#define TI_KPC 0x24 /* kpc (ldd'ed with kpc) */ #define TI_KPC 0x24 /* kpc (ldd'ed with kpc) */
#define TI_KPSR 0x28 /* kpsr */ #define TI_KPSR 0x28 /* kpsr */
#define TI_KWIM 0x2c /* kwim (ldd'ed with kpsr) */ #define TI_KWIM 0x2c /* kwim (ldd'ed with kpsr) */
#define TI_RESTART_BLOCK 0x30
#define PREEMPT_ACTIVE 0x4000000 #define PREEMPT_ACTIVE 0x4000000
......
...@@ -62,6 +62,8 @@ struct thread_info { ...@@ -62,6 +62,8 @@ struct thread_info {
__u64 cee_stuff; __u64 cee_stuff;
struct restart_block restart_block;
unsigned long fpregs[0] __attribute__ ((aligned(64))); unsigned long fpregs[0] __attribute__ ((aligned(64)));
}; };
...@@ -94,6 +96,7 @@ struct thread_info { ...@@ -94,6 +96,7 @@ struct thread_info {
#define TI_KERN_CNTD1 0x00000488 #define TI_KERN_CNTD1 0x00000488
#define TI_PCR 0x00000490 #define TI_PCR 0x00000490
#define TI_CEE_STUFF 0x00000498 #define TI_CEE_STUFF 0x00000498
#define TI_RESTART_BLOCK 0x000004a0
#define TI_FPREGS 0x000004c0 #define TI_FPREGS 0x000004c0
/* We embed this in the uppermost byte of thread_info->flags */ /* We embed this in the uppermost byte of thread_info->flags */
...@@ -121,10 +124,13 @@ struct thread_info { ...@@ -121,10 +124,13 @@ struct thread_info {
#define INIT_THREAD_INFO(tsk) \ #define INIT_THREAD_INFO(tsk) \
{ \ { \
task: &tsk, \ .task = &tsk, \
flags: ((unsigned long)ASI_P) << TI_FLAG_CURRENT_DS_SHIFT, \ .flags = ((unsigned long)ASI_P) << TI_FLAG_CURRENT_DS_SHIFT, \
exec_domain: &default_exec_domain, \ .exec_domain = &default_exec_domain, \
preempt_count: 1, \ .preempt_count = 1, \
.restart_block = { \
.fn = do_no_restart_syscall, \
}, \
} }
#define init_thread_info (init_thread_union.thread_info) #define init_thread_info (init_thread_union.thread_info)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment