On Thu, Dec 06, 2012 at 05:27:44PM +0800, li guang wrote: > 在 2012-12-06四的 09:23 +0000,Peter Maydell写道: > > On 6 December 2012 09:16, li guang <lig.f...@cn.fujitsu.com> wrote: > > > 在 2012-12-06四的 08:54 +0000,Peter Maydell写道: > > >> On 6 December 2012 03:03, liguang <lig.f...@cn.fujitsu.com> wrote: > > >> > Signed-off-by: liguang <lig.f...@cn.fujitsu.com> > > >> > --- a/target-i386/seg_helper.c > > >> > +++ b/target-i386/seg_helper.c > > >> > @@ -465,9 +465,9 @@ static void switch_tss(CPUX86State *env, int > > >> > tss_selector, > > >> > > > >> > #ifndef CONFIG_USER_ONLY > > >> > /* reset local breakpoints */ > > >> > - if (env->dr[7] & 0x55) { > > >> > - for (i = 0; i < 4; i++) { > > >> > - if (hw_breakpoint_enabled(env->dr[7], i) == 0x1) { > > >> > + if (env->dr[7] & DR7_LOCAL_BP_MASK) { > > >> > + for (i = 0; i < DR7_MAX_BP; i++) { > > >> > + if (hw_breakpoint_enabled(env->dr[7], i)) { > > >> > hw_breakpoint_remove(env, i); > > >> > } > > >> > } > > >> > > >> This is still wrong. > > > > > > do you mean the use of 'hw_breakpoint_enabled'? or others? > > > maybe a mistake, I change it to 'hw_local_breakpoint_enabled'. > > > if it is I'll re-send a corrected patch. > > > > I mean that in the comments on the previous version of this > > patchseet we explained that this check is specifically checking > > for whether the breakpoint is enabled locally, and that your > > change to just returning bool broke this. And in this version > > of the patch there is still exactly the same problem. > > why broke? > this function just ask if breakpoint 'i' was enable, > so we answer enabled or not? 2 simple cases, any problem?
I don't read this patch from the starting. But Peter, do you mean the return value matters here? I see the original version compares the return value with 0x1, do you mean we *need* this comparsion here? Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667 Homepage: http://people.cs.nctu.edu.tw/~chenwj