* [PATCH] target/hppa: lock both words of function descriptor
@ 2023-09-16 13:52 Mikulas Patocka
2023-09-16 16:18 ` Helge Deller
0 siblings, 1 reply; 5+ messages in thread
From: Mikulas Patocka @ 2023-09-16 13:52 UTC (permalink / raw)
To: Richard Henderson, Helge Deller, John David Anglin
Cc: qemu-devel, linux-parisc
The code in setup_rt_frame reads two words at haddr, but locks only one.
This patch fixes it to lock both.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
---
linux-user/hppa/signal.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
Index: qemu/linux-user/hppa/signal.c
===================================================================
--- qemu.orig/linux-user/hppa/signal.c
+++ qemu/linux-user/hppa/signal.c
@@ -149,12 +149,11 @@ void setup_rt_frame(int sig, struct targ
target_ulong *fdesc, dest;
haddr &= -4;
- if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
+ if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1)))
goto give_sigsegv;
- }
__get_user(dest, fdesc);
__get_user(env->gr[19], fdesc + 1);
- unlock_user_struct(fdesc, haddr, 1);
+ unlock_user(fdesc, haddr, 0);
haddr = dest;
}
env->iaoq_f = haddr;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] target/hppa: lock both words of function descriptor
2023-09-16 13:52 [PATCH] target/hppa: lock both words of function descriptor Mikulas Patocka
@ 2023-09-16 16:18 ` Helge Deller
2023-09-16 16:32 ` [PATCH v2] qemu-hppa: " Mikulas Patocka
2023-09-16 17:17 ` [PATCH] target/hppa: " Richard Henderson
0 siblings, 2 replies; 5+ messages in thread
From: Helge Deller @ 2023-09-16 16:18 UTC (permalink / raw)
To: Mikulas Patocka, Richard Henderson, John David Anglin
Cc: qemu-devel, linux-parisc
On 9/16/23 15:52, Mikulas Patocka wrote:
> The code in setup_rt_frame reads two words at haddr, but locks only one.
> This patch fixes it to lock both.
>
> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
>
> ---
> linux-user/hppa/signal.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> Index: qemu/linux-user/hppa/signal.c
> ===================================================================
> --- qemu.orig/linux-user/hppa/signal.c
> +++ qemu/linux-user/hppa/signal.c
> @@ -149,12 +149,11 @@ void setup_rt_frame(int sig, struct targ
> target_ulong *fdesc, dest;
>
> haddr &= -4;
> - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
> + if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1)))
> goto give_sigsegv;
> - }
Patch is Ok, but I think the qemu coding style is to keep the { } braces, even
if they are unnecessary (as in this case).
Acked-by: Helge Deller <deller@gmx.de>
> __get_user(dest, fdesc);
> __get_user(env->gr[19], fdesc + 1);
> - unlock_user_struct(fdesc, haddr, 1);
> + unlock_user(fdesc, haddr, 0);
> haddr = dest;
> }
> env->iaoq_f = haddr;
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] qemu-hppa: lock both words of function descriptor
2023-09-16 16:18 ` Helge Deller
@ 2023-09-16 16:32 ` Mikulas Patocka
2023-09-16 17:17 ` [PATCH] target/hppa: " Richard Henderson
1 sibling, 0 replies; 5+ messages in thread
From: Mikulas Patocka @ 2023-09-16 16:32 UTC (permalink / raw)
To: Helge Deller
Cc: Richard Henderson, John David Anglin, qemu-devel, linux-parisc
On Sat, 16 Sep 2023, Helge Deller wrote:
> On 9/16/23 15:52, Mikulas Patocka wrote:
> > The code in setup_rt_frame reads two words at haddr, but locks only one.
> > This patch fixes it to lock both.
> >
> > Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
> >
> > ---
> > linux-user/hppa/signal.c | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > Index: qemu/linux-user/hppa/signal.c
> > ===================================================================
> > --- qemu.orig/linux-user/hppa/signal.c
> > +++ qemu/linux-user/hppa/signal.c
> > @@ -149,12 +149,11 @@ void setup_rt_frame(int sig, struct targ
> > target_ulong *fdesc, dest;
> >
> > haddr &= -4;
> > - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
> > + if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 *
> > sizeof(target_ulong), 1)))
> > goto give_sigsegv;
> > - }
>
> Patch is Ok, but I think the qemu coding style is to keep the { } braces, even
> if they are unnecessary (as in this case).
>
> Acked-by: Helge Deller <deller@gmx.de>
OK, here I resend it:
From: Mikulas Patocka <mpatocka@redhat.com>
The code in setup_rt_frame reads two words at haddr, but locks only one.
This patch fixes it to lock both.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Acked-by: Helge Deller <deller@gmx.de>
---
linux-user/hppa/signal.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: qemu/linux-user/hppa/signal.c
===================================================================
--- qemu.orig/linux-user/hppa/signal.c
+++ qemu/linux-user/hppa/signal.c
@@ -149,12 +149,12 @@ void setup_rt_frame(int sig, struct targ
target_ulong *fdesc, dest;
haddr &= -4;
- if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
+ if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1))) {
goto give_sigsegv;
}
__get_user(dest, fdesc);
__get_user(env->gr[19], fdesc + 1);
- unlock_user_struct(fdesc, haddr, 1);
+ unlock_user(fdesc, haddr, 0);
haddr = dest;
}
env->iaoq_f = haddr;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] target/hppa: lock both words of function descriptor
2023-09-16 16:18 ` Helge Deller
2023-09-16 16:32 ` [PATCH v2] qemu-hppa: " Mikulas Patocka
@ 2023-09-16 17:17 ` Richard Henderson
2023-09-16 18:06 ` Helge Deller
1 sibling, 1 reply; 5+ messages in thread
From: Richard Henderson @ 2023-09-16 17:17 UTC (permalink / raw)
To: Helge Deller, Mikulas Patocka, John David Anglin; +Cc: qemu-devel, linux-parisc
On 9/16/23 09:18, Helge Deller wrote:
> On 9/16/23 15:52, Mikulas Patocka wrote:
>> The code in setup_rt_frame reads two words at haddr, but locks only one.
>> This patch fixes it to lock both.
>>
>> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
>>
>> ---
>> linux-user/hppa/signal.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> Index: qemu/linux-user/hppa/signal.c
>> ===================================================================
>> --- qemu.orig/linux-user/hppa/signal.c
>> +++ qemu/linux-user/hppa/signal.c
>> @@ -149,12 +149,11 @@ void setup_rt_frame(int sig, struct targ
>> target_ulong *fdesc, dest;
>>
>> haddr &= -4;
>> - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
>> + if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1)))
>> goto give_sigsegv;
>> - }
>
> Patch is Ok, but I think the qemu coding style is to keep the { } braces, even
> if they are unnecessary (as in this case).
Coding style also separates the assignment from the if condition.
r~
>
> Acked-by: Helge Deller <deller@gmx.de>
>
>> __get_user(dest, fdesc);
>> __get_user(env->gr[19], fdesc + 1);
>> - unlock_user_struct(fdesc, haddr, 1);
>> + unlock_user(fdesc, haddr, 0);
>> haddr = dest;
>> }
>> env->iaoq_f = haddr;
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] target/hppa: lock both words of function descriptor
2023-09-16 17:17 ` [PATCH] target/hppa: " Richard Henderson
@ 2023-09-16 18:06 ` Helge Deller
0 siblings, 0 replies; 5+ messages in thread
From: Helge Deller @ 2023-09-16 18:06 UTC (permalink / raw)
To: Richard Henderson, Mikulas Patocka, John David Anglin
Cc: qemu-devel, linux-parisc
On 9/16/23 19:17, Richard Henderson wrote:
> On 9/16/23 09:18, Helge Deller wrote:
>> On 9/16/23 15:52, Mikulas Patocka wrote:
>>> The code in setup_rt_frame reads two words at haddr, but locks only one.
>>> This patch fixes it to lock both.
>>>
>>> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
>>>
>>> ---
>>> linux-user/hppa/signal.c | 5 ++---
>>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>>
>>> Index: qemu/linux-user/hppa/signal.c
>>> ===================================================================
>>> --- qemu.orig/linux-user/hppa/signal.c
>>> +++ qemu/linux-user/hppa/signal.c
>>> @@ -149,12 +149,11 @@ void setup_rt_frame(int sig, struct targ
>>> target_ulong *fdesc, dest;
>>>
>>> haddr &= -4;
>>> - if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
>>> + if (!(fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1)))
>>> goto give_sigsegv;
>>> - }
>>
>> Patch is Ok, but I think the qemu coding style is to keep the { } braces, even
>> if they are unnecessary (as in this case).
>
> Coding style also separates the assignment from the if condition.
I'll fix it up.
Thanks!
Helge
>
> r~
>
>>
>> Acked-by: Helge Deller <deller@gmx.de>
>>
>>> __get_user(dest, fdesc);
>>> __get_user(env->gr[19], fdesc + 1);
>>> - unlock_user_struct(fdesc, haddr, 1);
>>> + unlock_user(fdesc, haddr, 0);
>>> haddr = dest;
>>> }
>>> env->iaoq_f = haddr;
>>>
>>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-09-16 18:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-16 13:52 [PATCH] target/hppa: lock both words of function descriptor Mikulas Patocka
2023-09-16 16:18 ` Helge Deller
2023-09-16 16:32 ` [PATCH v2] qemu-hppa: " Mikulas Patocka
2023-09-16 17:17 ` [PATCH] target/hppa: " Richard Henderson
2023-09-16 18:06 ` Helge Deller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).