Re: [Qemu-devel] [RFC PATCH v3 03/30] This patch adds a condition before overwriting exception_index fields.

2018-01-11 Thread Pavel Dovgalyuk
> From: Paolo Bonzini [mailto:pbonz...@redhat.com]
> On 11/01/2018 09:25, Pavel Dovgalyuk wrote:
> > It is needed when exception_index is already set to some meaningful value.
> >
> > Signed-off-by: Pavel Dovgalyuk 
> > Signed-off-by: Paolo Bonzini 
> > ---
> >  accel/tcg/cpu-exec.c |5 -
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
> > index 280200f..9cc6972 100644
> > --- a/accel/tcg/cpu-exec.c
> > +++ b/accel/tcg/cpu-exec.c
> > @@ -585,6 +585,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
> >  else {
> >  if (cc->cpu_exec_interrupt(cpu, interrupt_request)) {
> >  replay_interrupt();
> > +cpu->exception_index = -1;
> >  *last_tb = NULL;
> >  }
> >  /* The target hook may have updated the 
> > 'cpu->interrupt_request';
> > @@ -606,7 +607,9 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
> >  if (unlikely(atomic_read(&cpu->exit_request)
> >  || (use_icount && cpu->icount_decr.u16.low + cpu->icount_extra == 
> > 0))) {
> >  atomic_set(&cpu->exit_request, 0);
> > -cpu->exception_index = EXCP_INTERRUPT;
> > +if (cpu->exception_index == -1) {
> > +cpu->exception_index = EXCP_INTERRUPT;
> > +}
> >  return true;
> >  }
> >
> >
> 
> Where does my S-o-b come from? :)

Because you proposed first version of this code, I think.


Pavel Dovgalyuk




Re: [Qemu-devel] [RFC PATCH v3 03/30] This patch adds a condition before overwriting exception_index fields.

2018-01-11 Thread Paolo Bonzini
On 11/01/2018 09:25, Pavel Dovgalyuk wrote:
> It is needed when exception_index is already set to some meaningful value.
> 
> Signed-off-by: Pavel Dovgalyuk 
> Signed-off-by: Paolo Bonzini 
> ---
>  accel/tcg/cpu-exec.c |5 -
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
> index 280200f..9cc6972 100644
> --- a/accel/tcg/cpu-exec.c
> +++ b/accel/tcg/cpu-exec.c
> @@ -585,6 +585,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
>  else {
>  if (cc->cpu_exec_interrupt(cpu, interrupt_request)) {
>  replay_interrupt();
> +cpu->exception_index = -1;
>  *last_tb = NULL;
>  }
>  /* The target hook may have updated the 'cpu->interrupt_request';
> @@ -606,7 +607,9 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
>  if (unlikely(atomic_read(&cpu->exit_request)
>  || (use_icount && cpu->icount_decr.u16.low + cpu->icount_extra == 
> 0))) {
>  atomic_set(&cpu->exit_request, 0);
> -cpu->exception_index = EXCP_INTERRUPT;
> +if (cpu->exception_index == -1) {
> +cpu->exception_index = EXCP_INTERRUPT;
> +}
>  return true;
>  }
>  
> 

Where does my S-o-b come from? :)

Paolo



[Qemu-devel] [RFC PATCH v3 03/30] This patch adds a condition before overwriting exception_index fields.

2018-01-11 Thread Pavel Dovgalyuk
It is needed when exception_index is already set to some meaningful value.

Signed-off-by: Pavel Dovgalyuk 
Signed-off-by: Paolo Bonzini 
---
 accel/tcg/cpu-exec.c |5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index 280200f..9cc6972 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -585,6 +585,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
 else {
 if (cc->cpu_exec_interrupt(cpu, interrupt_request)) {
 replay_interrupt();
+cpu->exception_index = -1;
 *last_tb = NULL;
 }
 /* The target hook may have updated the 'cpu->interrupt_request';
@@ -606,7 +607,9 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
 if (unlikely(atomic_read(&cpu->exit_request)
 || (use_icount && cpu->icount_decr.u16.low + cpu->icount_extra == 0))) 
{
 atomic_set(&cpu->exit_request, 0);
-cpu->exception_index = EXCP_INTERRUPT;
+if (cpu->exception_index == -1) {
+cpu->exception_index = EXCP_INTERRUPT;
+}
 return true;
 }