[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 1/1] exec: Fix watchpoint implementation
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH v1 1/1] exec: Fix watchpoint implementation |
Date: |
Fri, 17 Feb 2012 17:44:59 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2012-02-17 17:36, Meador Inge wrote:
> On 02/17/2012 10:28 AM, Jan Kiszka wrote:
>
>> On 2012-02-17 17:23, Meador Inge wrote:
>>> 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 <address@hidden>
>>> ---
>>> exec.c | 6 +++---
>>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/exec.c b/exec.c
>>> index b81677a..fe8b2d1 100644
>>> --- a/exec.c
>>> +++ b/exec.c
>>> @@ -3289,9 +3289,9 @@ 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: return stb_phys(addr, val);
>>> + case 2: return stw_phys(addr, val);
>>> + case 4: return stl_phys(addr, val);
>>> default: abort();
>>> }
>>> }
>>
>> You likely wanted to introduce breaks here, no...?
>
> I see both styles in 'exec.c'. An example similar to the above is:
There is a lot of legacy code in QEMU. Better look at CODING_STYLE when
in doubt.
>
> static void subpage_ram_write(void *opaque, target_phys_addr_t addr,
> uint64_t value, unsigned size)
> {
> ram_addr_t raddr = addr;
> void *ptr = qemu_get_ram_ptr(raddr);
> switch (size) {
> case 1: return stb_p(ptr, value);
> case 2: return stw_p(ptr, value);
> case 4: return stl_p(ptr, value);
> default: abort();
> }
> }
>
> I will switch to the 'break' style if that is more consistent with the general
> coding convention.
That's also nonsense: neither st*_p nor st*_phys return anything else
than void.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux