From: Al Viro <viro@ZenIV.linux.org.uk>
To: Grant Grundler <grantgrundler@gmail.com>
Cc: linux-parisc@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-arch@vger.kernel.org
Subject: Re: [parisc] double restarts on multiple signal arrivals
Date: Fri, 18 May 2012 19:57:12 +0100 [thread overview]
Message-ID: <20120518185712.GT22082@ZenIV.linux.org.uk> (raw)
In-Reply-To: <CAP6odjiS+oH7ajnHcyBJwm9bCTZxDJ7w02JeCuWW_UF3Fm49xw@mail.gmail.com>
On Fri, May 18, 2012 at 11:05:46AM -0700, Grant Grundler wrote:
> On Fri, May 18, 2012 at 10:58 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> ...
> >?Except for that mess with multiple
> > pending signals, the value we have in r28 on syscall entry doesn't
> > seem to affect the syscall behaviour... ?Some HPUX compat fun?
>
> We stopped trying to support HPUX compat support probably 8 or so
> years ago. Since HP didn't care, no one else did either. So no need
> to consider it now.
In any case, it doesn't look like something that might be HPUX-related -
there r28 is not used for arguments or syscall number either, as far
as I can tell...
That's a side story, in any case; whatever the reason for restoring
r28, it only masks the bug with double restarts. If you enter syscall
with r28 equal to e.g. -ERESTARTNOINTR, get the same value from sys_whatever()
and have a couple of pending signals, you will have syscall_restart()
called twice, each time seeing regs->gr[28] == -ERESTARTNOINTR and leaving
it unchanged. regs->gr[31] will be decremented by 8 on each of those
calls, first time back to your syscall (correctly), then to the entry point
of the first handler minus 8.
next prev parent reply other threads:[~2012-05-18 18:57 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-18 17:58 [parisc] double restarts on multiple signal arrivals Al Viro
2012-05-18 18:05 ` Grant Grundler
2012-05-18 18:05 ` Grant Grundler
2012-05-18 18:57 ` Al Viro [this message]
2012-05-18 19:56 ` Al Viro
2012-05-18 20:12 ` Grant Grundler
2012-05-18 20:12 ` Grant Grundler
2012-05-18 20:15 ` Carlos O'Donell
2012-05-18 20:15 ` Carlos O'Donell
2012-05-18 22:24 ` Al Viro
2012-05-19 1:36 ` Carlos O'Donell
2012-05-19 1:36 ` Carlos O'Donell
2012-05-19 5:26 ` Al Viro
2012-05-19 13:37 ` Al Viro
2012-05-19 13:37 ` Al Viro
2012-05-20 8:40 ` Al Viro
2012-05-20 9:04 ` Al Viro
2012-05-20 18:46 ` John David Anglin
2012-05-20 20:38 ` Carlos O'Donell
2012-05-20 20:38 ` Carlos O'Donell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120518185712.GT22082@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=grantgrundler@gmail.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.