Patchwork [v2,1/1] exec: Fix watchpoint implementation

login
register
mail settings
Submitter Meador Inge
Date Feb. 17, 2012, 5:03 p.m.
Message ID <1329498198-6009-1-git-send-email-meadori@codesourcery.com>
Download mbox | patch
Permalink /patch/141882/
State New
Headers show

Comments

Meador Inge - Feb. 17, 2012, 5:03 p.m.
Fix a bug introduced by commit 1ec9b909ff207a44d5ef2609cb4a2e3d449d485f
where 'watch_mem_write' was modified to fall-through to 'abort' on
every input.

Signed-off-by: Meador Inge <meadori@codesourcery.com>
---
* Changes since v1:
  - 'break' out of switch statement instead of 'return'.
 exec.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
Andreas Färber - Feb. 17, 2012, 5:06 p.m.
Am 17.02.2012 18:03, schrieb Meador Inge:
> Fix a bug introduced by commit 1ec9b909ff207a44d5ef2609cb4a2e3d449d485f
> where 'watch_mem_write' was modified to fall-through to 'abort' on
> every input.
> 
> Signed-off-by: Meador Inge <meadori@codesourcery.com>

Reviewed-by: Andreas Färber <afaerber@suse.de>

Andreas

> ---
> * Changes since v1:
>   - 'break' out of switch statement instead of 'return'.
>  exec.c |   12 +++++++++---
>  1 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index b81677a..f105b43 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3289,9 +3289,15 @@ static void watch_mem_write(void *opaque, target_phys_addr_t addr,
>  {
>      check_watchpoint(addr & ~TARGET_PAGE_MASK, ~(size - 1), BP_MEM_WRITE);
>      switch (size) {
> -    case 1: stb_phys(addr, val);
> -    case 2: stw_phys(addr, val);
> -    case 4: stl_phys(addr, val);
> +    case 1:
> +        stb_phys(addr, val);
> +        break;
> +    case 2:
> +        stw_phys(addr, val);
> +        break;
> +    case 4:
> +        stl_phys(addr, val);
> +        break;
>      default: abort();
>      }
>  }
Andreas Färber - Feb. 18, 2012, 4:33 p.m.
Am 17.02.2012 18:06, schrieb Andreas Färber:
> Am 17.02.2012 18:03, schrieb Meador Inge:
>> Fix a bug introduced by commit 1ec9b909ff207a44d5ef2609cb4a2e3d449d485f
>> where 'watch_mem_write' was modified to fall-through to 'abort' on
>> every input.
>>
>> Signed-off-by: Meador Inge <meadori@codesourcery.com>
> 
> Reviewed-by: Andreas Färber <afaerber@suse.de>

Actually I already reviewed such a fix by Max on Jan 29 (with breaks
from the start), and it's in his PULL request now. So this is again a
duplicate and shouldn't be applied.

If you want to remind maintainers of a patch that's been on the list but
has not yet been applied, the correct procedure is to add a Reviewed-by
or Acked-by tag if you haven't already, or to reply with a "Ping?"
otherwise.

Andreas

>> ---
>> * Changes since v1:
>>   - 'break' out of switch statement instead of 'return'.
>>  exec.c |   12 +++++++++---
>>  1 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/exec.c b/exec.c
>> index b81677a..f105b43 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -3289,9 +3289,15 @@ static void watch_mem_write(void *opaque, target_phys_addr_t addr,
>>  {
>>      check_watchpoint(addr & ~TARGET_PAGE_MASK, ~(size - 1), BP_MEM_WRITE);
>>      switch (size) {
>> -    case 1: stb_phys(addr, val);
>> -    case 2: stw_phys(addr, val);
>> -    case 4: stl_phys(addr, val);
>> +    case 1:
>> +        stb_phys(addr, val);
>> +        break;
>> +    case 2:
>> +        stw_phys(addr, val);
>> +        break;
>> +    case 4:
>> +        stl_phys(addr, val);
>> +        break;
>>      default: abort();
>>      }
>>  }
Meador Inge - Feb. 20, 2012, 2:11 p.m.
On 02/18/2012 10:33 AM, Andreas Färber wrote:

> Am 17.02.2012 18:06, schrieb Andreas Färber:
>> Am 17.02.2012 18:03, schrieb Meador Inge:
>>> Fix a bug introduced by commit 1ec9b909ff207a44d5ef2609cb4a2e3d449d485f
>>> where 'watch_mem_write' was modified to fall-through to 'abort' on
>>> every input.
>>>
>>> Signed-off-by: Meador Inge <meadori@codesourcery.com>
>>
>> Reviewed-by: Andreas Färber <afaerber@suse.de>
> 
> Actually I already reviewed such a fix by Max on Jan 29 (with breaks
> from the start), and it's in his PULL request now. So this is again a
> duplicate and shouldn't be applied.
> 
> If you want to remind maintainers of a patch that's been on the list but
> has not yet been applied, the correct procedure is to add a Reviewed-by
> or Acked-by tag if you haven't already, or to reply with a "Ping?"
> otherwise.

Ah, I missed that.  I will add a review tag to the other.  Thanks for the heads
up.

Patch

diff --git a/exec.c b/exec.c
index b81677a..f105b43 100644
--- a/exec.c
+++ b/exec.c
@@ -3289,9 +3289,15 @@  static void watch_mem_write(void *opaque, target_phys_addr_t addr,
 {
     check_watchpoint(addr & ~TARGET_PAGE_MASK, ~(size - 1), BP_MEM_WRITE);
     switch (size) {
-    case 1: stb_phys(addr, val);
-    case 2: stw_phys(addr, val);
-    case 4: stl_phys(addr, val);
+    case 1:
+        stb_phys(addr, val);
+        break;
+    case 2:
+        stw_phys(addr, val);
+        break;
+    case 4:
+        stl_phys(addr, val);
+        break;
     default: abort();
     }
 }