* [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).