arch/arm64: Move group_addrenv to arm64_syscall_switch
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
parent
6898409d04
commit
f9479885ba
@ -133,15 +133,6 @@ void up_block_task(struct tcb_s *tcb, tstate_t task_state)
|
|||||||
{
|
{
|
||||||
struct tcb_s *nexttcb = this_task();
|
struct tcb_s *nexttcb = this_task();
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ADDRENV
|
|
||||||
/* Make sure that the address environment for the previously
|
|
||||||
* running task is closed down gracefully (data caches dump,
|
|
||||||
* MMU flushed) and set up the address environment for the new
|
|
||||||
* thread at the head of the ready-to-run list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
group_addrenv(nexttcb);
|
|
||||||
#endif
|
|
||||||
/* Reset scheduler parameters */
|
/* Reset scheduler parameters */
|
||||||
|
|
||||||
nxsched_resume_scheduler(nexttcb);
|
nxsched_resume_scheduler(nexttcb);
|
||||||
|
@ -142,16 +142,6 @@ void up_exit(int status)
|
|||||||
|
|
||||||
nxsched_resume_scheduler(tcb);
|
nxsched_resume_scheduler(tcb);
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ADDRENV
|
|
||||||
/* Make sure that the address environment for the previously running
|
|
||||||
* task is closed down gracefully (data caches dump, MMU flushed) and
|
|
||||||
* set up the address environment for the new thread at the head of
|
|
||||||
* the ready-to-run list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
group_addrenv(tcb);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Then switch contexts */
|
/* Then switch contexts */
|
||||||
|
|
||||||
arm64_fullcontextrestore(tcb->xcp.regs);
|
arm64_fullcontextrestore(tcb->xcp.regs);
|
||||||
|
@ -96,15 +96,6 @@ void up_release_pending(void)
|
|||||||
{
|
{
|
||||||
struct tcb_s *nexttcb = this_task();
|
struct tcb_s *nexttcb = this_task();
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ADDRENV
|
|
||||||
/* Make sure that the address environment for the previously
|
|
||||||
* running task is closed down gracefully (data caches dump,
|
|
||||||
* MMU flushed) and set up the address environment for the new
|
|
||||||
* thread at the head of the ready-to-run list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
group_addrenv(nexttcb);
|
|
||||||
#endif
|
|
||||||
/* Update scheduler parameters */
|
/* Update scheduler parameters */
|
||||||
|
|
||||||
nxsched_resume_scheduler(nexttcb);
|
nxsched_resume_scheduler(nexttcb);
|
||||||
|
@ -151,15 +151,6 @@ void up_reprioritize_rtr(struct tcb_s *tcb, uint8_t priority)
|
|||||||
{
|
{
|
||||||
struct tcb_s *nexttcb = this_task();
|
struct tcb_s *nexttcb = this_task();
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ADDRENV
|
|
||||||
/* Make sure that the address environment for the previously
|
|
||||||
* running task is closed down gracefully (data caches dump,
|
|
||||||
* MMU flushed) and set up the address environment for the new
|
|
||||||
* thread at the head of the ready-to-run list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
group_addrenv(nexttcb);
|
|
||||||
#endif
|
|
||||||
/* Update scheduler parameters */
|
/* Update scheduler parameters */
|
||||||
|
|
||||||
nxsched_resume_scheduler(nexttcb);
|
nxsched_resume_scheduler(nexttcb);
|
||||||
|
@ -202,10 +202,20 @@ uint64_t *arm64_syscall_switch(uint64_t * regs)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Restore the cpu lock */
|
|
||||||
|
|
||||||
if ((uint64_t *)f_regs != ret_regs)
|
if ((uint64_t *)f_regs != ret_regs)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_ARCH_ADDRENV
|
||||||
|
/* Make sure that the address environment for the previously
|
||||||
|
* running task is closed down gracefully (data caches dump,
|
||||||
|
* MMU flushed) and set up the address environment for the new
|
||||||
|
* thread at the head of the ready-to-run list.
|
||||||
|
*/
|
||||||
|
|
||||||
|
group_addrenv(NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Restore the cpu lock */
|
||||||
|
|
||||||
restore_critical_section();
|
restore_critical_section();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,15 +115,6 @@ void up_unblock_task(struct tcb_s *tcb)
|
|||||||
{
|
{
|
||||||
struct tcb_s *nexttcb = this_task();
|
struct tcb_s *nexttcb = this_task();
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ADDRENV
|
|
||||||
/* Make sure that the address environment for the previously
|
|
||||||
* running task is closed down gracefully (data caches dump,
|
|
||||||
* MMU flushed) and set up the address environment for the new
|
|
||||||
* thread at the head of the ready-to-run list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
group_addrenv(nexttcb);
|
|
||||||
#endif
|
|
||||||
/* Update scheduler parameters */
|
/* Update scheduler parameters */
|
||||||
|
|
||||||
nxsched_resume_scheduler(nexttcb);
|
nxsched_resume_scheduler(nexttcb);
|
||||||
|
Loading…
Reference in New Issue
Block a user