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.

-- PMM

Reply via email to