Patchwork suspend/resume not working on tip due to 59abb06

login
register
mail settings
Submitter Stefan Berger
Date Jan. 27, 2012, 9:27 p.m.
Message ID <4F2316C9.70807@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/138334/
State New
Headers show

Comments

Stefan Berger - Jan. 27, 2012, 9:27 p.m.
On 01/27/2012 04:10 PM, Stefan Berger wrote:
> After bisecting the following commit seems to be the culprit for the 
> suspend/resume problems that I am seeing with the current tip 
> (73093354418602a2ff5e43cb91a21b17fbf047d8).
>
> commit 59abb06198ee9471e29c970f294eae80c0b39be1
> Author: Blue Swirl <blauwirbel@gmail.com>
> Date:   Sun Jan 22 11:00:44 2012 +0000
>
> Once I revert this patch on the tip everything works fine again...
>
>    Stefan
>
>
And this patch here gets it to work:

  }
Blue Swirl - Jan. 28, 2012, 12:23 p.m.
On Fri, Jan 27, 2012 at 21:27, Stefan Berger <stefanb@linux.vnet.ibm.com> wrote:
> On 01/27/2012 04:10 PM, Stefan Berger wrote:
>>
>> After bisecting the following commit seems to be the culprit for the
>> suspend/resume problems that I am seeing with the current tip
>> (73093354418602a2ff5e43cb91a21b17fbf047d8).
>>
>> commit 59abb06198ee9471e29c970f294eae80c0b39be1
>> Author: Blue Swirl <blauwirbel@gmail.com>
>> Date:   Sun Jan 22 11:00:44 2012 +0000
>>
>> Once I revert this patch on the tip everything works fine again...
>>
>>   Stefan
>>
>>
> And this patch here gets it to work:
>
> diff --git a/exec-obsolete.h b/exec-obsolete.h
> index 03cf35e..a673386 100644
> --- a/exec-obsolete.h
> +++ b/exec-obsolete.h
> @@ -101,7 +101,7 @@ static inline void
> cpu_physical_memory_mask_dirty_range(ram_
>     end = start + length;
>     mask = ~dirty_flags;
>     p = ram_list.phys_dirty + (start >> TARGET_PAGE_BITS);
> -    for (addr = start; addr <= end; addr += TARGET_PAGE_SIZE) {
> +    for (addr = start; addr < end; addr += TARGET_PAGE_SIZE) {
>         *p++ &= mask;
>     }
>  }

Nice. Please add a description (something like "Fix suspend/resume
broken by off-by-one error in 7309...") and Signed-off-by: line.
Blue Swirl - Jan. 28, 2012, 5:57 p.m.
On Sat, Jan 28, 2012 at 12:23, Blue Swirl <blauwirbel@gmail.com> wrote:
> On Fri, Jan 27, 2012 at 21:27, Stefan Berger <stefanb@linux.vnet.ibm.com> wrote:
>> On 01/27/2012 04:10 PM, Stefan Berger wrote:
>>>
>>> After bisecting the following commit seems to be the culprit for the
>>> suspend/resume problems that I am seeing with the current tip
>>> (73093354418602a2ff5e43cb91a21b17fbf047d8).
>>>
>>> commit 59abb06198ee9471e29c970f294eae80c0b39be1
>>> Author: Blue Swirl <blauwirbel@gmail.com>
>>> Date:   Sun Jan 22 11:00:44 2012 +0000
>>>
>>> Once I revert this patch on the tip everything works fine again...
>>>
>>>   Stefan
>>>
>>>
>> And this patch here gets it to work:
>>
>> diff --git a/exec-obsolete.h b/exec-obsolete.h
>> index 03cf35e..a673386 100644
>> --- a/exec-obsolete.h
>> +++ b/exec-obsolete.h
>> @@ -101,7 +101,7 @@ static inline void
>> cpu_physical_memory_mask_dirty_range(ram_
>>     end = start + length;
>>     mask = ~dirty_flags;
>>     p = ram_list.phys_dirty + (start >> TARGET_PAGE_BITS);
>> -    for (addr = start; addr <= end; addr += TARGET_PAGE_SIZE) {
>> +    for (addr = start; addr < end; addr += TARGET_PAGE_SIZE) {
>>         *p++ &= mask;
>>     }
>>  }
>
> Nice. Please add a description (something like "Fix suspend/resume
> broken by off-by-one error in 7309...") and Signed-off-by: line.

On second thought, the code is also broken for case start =
(ram_addr_t)-TARGET_PAGE_SIZE, length = TARGET_PAGE_SIZE. I'll make
another patch.

Patch

diff --git a/exec-obsolete.h b/exec-obsolete.h
index 03cf35e..a673386 100644
--- a/exec-obsolete.h
+++ b/exec-obsolete.h
@@ -101,7 +101,7 @@  static inline void 
cpu_physical_memory_mask_dirty_range(ram_
      end = start + length;
      mask = ~dirty_flags;
      p = ram_list.phys_dirty + (start >> TARGET_PAGE_BITS);
-    for (addr = start; addr <= end; addr += TARGET_PAGE_SIZE) {
+    for (addr = start; addr < end; addr += TARGET_PAGE_SIZE) {
          *p++ &= mask;
      }