From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38681) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2hDJ-0003fc-OJ for qemu-devel@nongnu.org; Fri, 26 Jul 2013 08:33:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V2hDH-0000H5-KW for qemu-devel@nongnu.org; Fri, 26 Jul 2013 08:33:41 -0400 Received: from cantor2.suse.de ([195.135.220.15]:55980 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2hDH-0000Gy-An for qemu-devel@nongnu.org; Fri, 26 Jul 2013 08:33:39 -0400 Message-ID: <51F26CA0.1070803@suse.de> Date: Fri, 26 Jul 2013 14:33:36 +0200 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1374778221-24011-1-git-send-email-sw@weilnetz.de> In-Reply-To: <1374778221-24011-1-git-send-email-sw@weilnetz.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] kvm: Change prototype of kvm_update_guest_debug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil Cc: Paolo Bonzini , Marcelo Tosatti , qemu-devel , Gleb Natapov Am 25.07.2013 20:50, schrieb Stefan Weil: > Passing a CPUState pointer instead of a CPUArchState pointer eliminates > the last target dependent data type in sysemu/kvm.h. >=20 > It also simplifies the code. >=20 > Signed-off-by: Stefan Weil > --- >=20 > With this patch (and a previous one which is already queued), > kvm.h can be included without errors from "poisoned" names. Thanks for doing this, it was on my TODO list. If Paolo acks, I would happily put that in qom-cpu for final 1.6 pull. Which other queued patch are you referring to? Andreas >=20 > exec.c | 5 ++--- > include/sysemu/kvm.h | 2 +- > kvm-all.c | 17 +++++------------ > kvm-stub.c | 2 +- > target-i386/kvm.c | 2 +- > 5 files changed, 10 insertions(+), 18 deletions(-) >=20 > diff --git a/exec.c b/exec.c > index 7997002..68ffb6b 100644 > --- a/exec.c > +++ b/exec.c > @@ -590,15 +590,14 @@ void cpu_breakpoint_remove_all(CPUArchState *env,= int mask) > void cpu_single_step(CPUState *cpu, int enabled) > { > #if defined(TARGET_HAS_ICE) > - CPUArchState *env =3D cpu->env_ptr; > - > if (cpu->singlestep_enabled !=3D enabled) { > cpu->singlestep_enabled =3D enabled; > if (kvm_enabled()) { > - kvm_update_guest_debug(env, 0); > + kvm_update_guest_debug(cpu, 0); > } else { > /* must flush all the translated code to avoid inconsisten= cies */ > /* XXX: only flush what is necessary */ > + CPUArchState *env =3D cpu->env_ptr; > tb_flush(env); > } > } > diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h > index f8ac448..de74411 100644 > --- a/include/sysemu/kvm.h > +++ b/include/sysemu/kvm.h > @@ -174,7 +174,7 @@ int kvm_insert_breakpoint(CPUState *cpu, target_ulo= ng addr, > int kvm_remove_breakpoint(CPUState *cpu, target_ulong addr, > target_ulong len, int type); > void kvm_remove_all_breakpoints(CPUState *cpu); > -int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_t= rap); > +int kvm_update_guest_debug(CPUState *cpu, unsigned long reinject_trap)= ; > #ifndef _WIN32 > int kvm_set_signal_mask(CPUState *cpu, const sigset_t *sigset); > #endif > diff --git a/kvm-all.c b/kvm-all.c > index 4fb4ccb..716860f 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1883,9 +1883,8 @@ static void kvm_invoke_set_guest_debug(void *data= ) > &dbg_data->dbg); > } > =20 > -int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_t= rap) > +int kvm_update_guest_debug(CPUState *cpu, unsigned long reinject_trap) > { > - CPUState *cpu =3D ENV_GET_CPU(env); > struct kvm_set_guest_debug_data data; > =20 > data.dbg.control =3D reinject_trap; > @@ -1935,9 +1934,7 @@ int kvm_insert_breakpoint(CPUState *cpu, target_u= long addr, > } > =20 > for (cpu =3D first_cpu; cpu !=3D NULL; cpu =3D cpu->next_cpu) { > - CPUArchState *env =3D cpu->env_ptr; > - > - err =3D kvm_update_guest_debug(env, 0); > + err =3D kvm_update_guest_debug(cpu, 0); > if (err) { > return err; > } > @@ -1977,9 +1974,7 @@ int kvm_remove_breakpoint(CPUState *cpu, target_u= long addr, > } > =20 > for (cpu =3D first_cpu; cpu !=3D NULL; cpu =3D cpu->next_cpu) { > - CPUArchState *env =3D cpu->env_ptr; > - > - err =3D kvm_update_guest_debug(env, 0); > + err =3D kvm_update_guest_debug(cpu, 0); > if (err) { > return err; > } > @@ -2007,15 +2002,13 @@ void kvm_remove_all_breakpoints(CPUState *cpu) > kvm_arch_remove_all_hw_breakpoints(); > =20 > for (cpu =3D first_cpu; cpu !=3D NULL; cpu =3D cpu->next_cpu) { > - CPUArchState *env =3D cpu->env_ptr; > - > - kvm_update_guest_debug(env, 0); > + kvm_update_guest_debug(cpu, 0); > } > } > =20 > #else /* !KVM_CAP_SET_GUEST_DEBUG */ > =20 > -int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_t= rap) > +int kvm_update_guest_debug(CPUState *cpu, unsigned long reinject_trap) > { > return -EINVAL; > } > diff --git a/kvm-stub.c b/kvm-stub.c > index 7b2233a..771360b 100644 > --- a/kvm-stub.c > +++ b/kvm-stub.c > @@ -78,7 +78,7 @@ void kvm_setup_guest_memory(void *start, size_t size) > { > } > =20 > -int kvm_update_guest_debug(CPUArchState *env, unsigned long reinject_t= rap) > +int kvm_update_guest_debug(CPUState *cpu, unsigned long reinject_trap) > { > return -ENOSYS; > } > diff --git a/target-i386/kvm.c b/target-i386/kvm.c > index 3c9d10a..376fc70 100644 > --- a/target-i386/kvm.c > +++ b/target-i386/kvm.c > @@ -1618,7 +1618,7 @@ static int kvm_guest_debug_workarounds(X86CPU *cp= u) > */ > if (reinject_trap || > (!kvm_has_robust_singlestep() && cs->singlestep_enabled)) { > - ret =3D kvm_update_guest_debug(env, reinject_trap); > + ret =3D kvm_update_guest_debug(cs, reinject_trap); > } > return ret; > } >=20 --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg