diff mbox series

xen:arm: we never get into schedule_tail() with prev==current

Message ID 1557309578-6436-1-git-send-email-andrii.anisov@gmail.com (mailing list archive)
State New, archived
Headers show
Series xen:arm: we never get into schedule_tail() with prev==current | expand

Commit Message

Andrii Anisov May 8, 2019, 9:59 a.m. UTC
From: Andrii Anisov <andrii_anisov@epam.com>

ARM's schedule_tail() is called from two places: context_switch() and
continue_new_vcpu(). Both functions are always called with
prev!=current. So replace the correspondent check in schedule_tail()
with ASSERT() which is the development (debug) build guard.

Signed-off-by: Andrii Anisov <andrii_anisov@epam.com>
---
 xen/arch/arm/domain.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Dario Faggioli May 8, 2019, 11:25 a.m. UTC | #1
On Wed, 2019-05-08 at 12:59 +0300, Andrii Anisov wrote:
> From: Andrii Anisov <andrii_anisov@epam.com>
> 
> ARM's schedule_tail() is called from two places: context_switch() and
> continue_new_vcpu(). Both functions are always called with
> prev!=current. So replace the correspondent check in schedule_tail()
> with ASSERT() which is the development (debug) build guard.
> 
> Signed-off-by: Andrii Anisov <andrii_anisov@epam.com>
>
FWIW,

Reviewed-by: Dario Faggioli <dfaggioli@suse.com>

Thanks and Regards
Julien Grall May 16, 2019, 3:48 p.m. UTC | #2
Hi,

On 08/05/2019 12:25, Dario Faggioli wrote:
> On Wed, 2019-05-08 at 12:59 +0300, Andrii Anisov wrote:
>> From: Andrii Anisov <andrii_anisov@epam.com>
>>
>> ARM's schedule_tail() is called from two places: context_switch() and
>> continue_new_vcpu(). Both functions are always called with
>> prev!=current. So replace the correspondent check in schedule_tail()
>> with ASSERT() which is the development (debug) build guard.
>>
>> Signed-off-by: Andrii Anisov <andrii_anisov@epam.com>
>>
> FWIW,
> 
> Reviewed-by: Dario Faggioli <dfaggioli@suse.com>

Acked-by: Julien Grall <julien.grall@arm.com>

I have now committed the patch.

Cheers,
diff mbox series

Patch

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 6dc633e..721d40e 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -305,6 +305,8 @@  static void update_runstate_area(struct vcpu *v)
 
 static void schedule_tail(struct vcpu *prev)
 {
+    ASSERT(prev != current);
+
     ctxt_switch_from(prev);
 
     ctxt_switch_to(current);
@@ -313,8 +315,7 @@  static void schedule_tail(struct vcpu *prev)
 
     context_saved(prev);
 
-    if ( prev != current )
-        update_runstate_area(current);
+    update_runstate_area(current);
 
     /* Ensure that the vcpu has an up-to-date time base. */
     update_vcpu_system_time(current);