[Qemu-devel] [PATCH] memory: fix flatview_access_valid RCU read lock/unlock imbalance

Paolo Bonzini posted 1 patch 7 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180307130238.19358-1-pbonzini@redhat.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test docker-quick@centos6 passed
Test ppcbe passed
Test ppcle passed
Test s390x passed
exec.c | 1 -
1 file changed, 1 deletion(-)
[Qemu-devel] [PATCH] memory: fix flatview_access_valid RCU read lock/unlock imbalance
Posted by Paolo Bonzini 7 years, 11 months ago
Fixes: 11e732a5ed46903f997985bed4c3767ca28a7eb6
Reported-by: Cornelia Huck <cohuck@redhat.com>
Reported-by: luigi burdo <intermediadc@hotmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 exec.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/exec.c b/exec.c
index 604f03c535..a9181e6417 100644
--- a/exec.c
+++ b/exec.c
@@ -3393,7 +3393,6 @@ static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
         if (!memory_access_is_direct(mr, is_write)) {
             l = memory_access_size(mr, l, addr);
             if (!memory_region_access_valid(mr, xlat, l, is_write)) {
-                rcu_read_unlock();
                 return false;
             }
         }
-- 
2.14.3


Re: [Qemu-devel] [PATCH] memory: fix flatview_access_valid RCU read lock/unlock imbalance
Posted by Cornelia Huck 7 years, 11 months ago
On Wed,  7 Mar 2018 14:02:38 +0100
Paolo Bonzini <pbonzini@redhat.com> wrote:

> Fixes: 11e732a5ed46903f997985bed4c3767ca28a7eb6
> Reported-by: Cornelia Huck <cohuck@redhat.com>
> Reported-by: luigi burdo <intermediadc@hotmail.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  exec.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/exec.c b/exec.c
> index 604f03c535..a9181e6417 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3393,7 +3393,6 @@ static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
>          if (!memory_access_is_direct(mr, is_write)) {
>              l = memory_access_size(mr, l, addr);
>              if (!memory_region_access_valid(mr, xlat, l, is_write)) {
> -                rcu_read_unlock();
>                  return false;
>              }
>          }

Thanks, that fixes master for me.

Tested-by: Cornelia Huck <cohuck@redhat.com>

Re: [Qemu-devel] [PATCH] memory: fix flatview_access_valid RCU read lock/unlock imbalance
Posted by Thomas Huth 7 years, 11 months ago
On 07.03.2018 14:02, Paolo Bonzini wrote:
> Fixes: 11e732a5ed46903f997985bed4c3767ca28a7eb6
> Reported-by: Cornelia Huck <cohuck@redhat.com>
> Reported-by: luigi burdo <intermediadc@hotmail.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  exec.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/exec.c b/exec.c
> index 604f03c535..a9181e6417 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3393,7 +3393,6 @@ static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
>          if (!memory_access_is_direct(mr, is_write)) {
>              l = memory_access_size(mr, l, addr);
>              if (!memory_region_access_valid(mr, xlat, l, is_write)) {
> -                rcu_read_unlock();
>                  return false;
>              }
>          }
> 

Thanks, this seems to fix the problem with the sam640ex and 40p machines.

Tested-by: Thomas Huth <thuth@redhat.com>

Re: [Qemu-devel] [PATCH] memory: fix flatview_access_valid RCU read lock/unlock imbalance
Posted by Peter Maydell 7 years, 11 months ago
On 7 March 2018 at 13:29, Thomas Huth <thuth@redhat.com> wrote:
> On 07.03.2018 14:02, Paolo Bonzini wrote:
>> Fixes: 11e732a5ed46903f997985bed4c3767ca28a7eb6
>> Reported-by: Cornelia Huck <cohuck@redhat.com>
>> Reported-by: luigi burdo <intermediadc@hotmail.com>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>>  exec.c | 1 -
>>  1 file changed, 1 deletion(-)
>>
>> diff --git a/exec.c b/exec.c
>> index 604f03c535..a9181e6417 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -3393,7 +3393,6 @@ static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
>>          if (!memory_access_is_direct(mr, is_write)) {
>>              l = memory_access_size(mr, l, addr);
>>              if (!memory_region_access_valid(mr, xlat, l, is_write)) {
>> -                rcu_read_unlock();
>>                  return false;
>>              }
>>          }
>>
>
> Thanks, this seems to fix the problem with the sam640ex and 40p machines.
>
> Tested-by: Thomas Huth <thuth@redhat.com>

Thanks, applied to master since I ran into this too.

-- PMM