All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Jens Axboe <axboe@kernel.dk>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Hannes Reinecke <hare@suse.com>,
	Matthew Wilcox <willy@infradead.org>,
	David Hildenbrand <david@redhat.com>,
	Nikolay Borisov <nborisov@suse.com>,
	linux-block <linux-block@vger.kernel.org>,
	Linux FS-devel Mailing List <linux-fsdevel@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] io_uring: fix big-endian compat signal mask handling
Date: Mon, 25 Mar 2019 17:13:05 -0700	[thread overview]
Message-ID: <1553559185.2929.20.camel@HansenPartnership.com> (raw)
In-Reply-To: <CAK8P3a0u3SAehvBiRuE-a4=qiAsyDgv0yuuCWc-nQhiTENRCAg@mail.gmail.com>

On Mon, 2019-03-25 at 17:24 +0100, Arnd Bergmann wrote:
> On Mon, Mar 25, 2019 at 5:19 PM James Bottomley
> <James.Bottomley@hansenpartnership.com> wrote:
> 
> > > --- a/fs/io_uring.c
> > > +++ b/fs/io_uring.c
> > > @@ -1968,7 +1968,15 @@ static int io_cqring_wait(struct
> > > io_ring_ctx
> > > *ctx, int min_events,
> > >               return 0;
> > > 
> > >       if (sig) {
> > > -             ret = set_user_sigmask(sig, &ksigmask, &sigsaved,
> > > sigsz);
> > > +#ifdef CONFIG_COMPAT
> > > +             if (in_compat_syscall())
> > > +                     ret = set_compat_user_sigmask((const
> > > compat_sigset_t __user *)sig,
> > > +                                                   &ksigmask,
> > > &sigsaved, sigsz);
> > > +             else
> > > +#endif
> > 
> > This looks a bit suboptimal: shouldn't in_compat_syscall() be hard
> > coded to return 0 if CONFIG_COMPAT isn't defined?  That way the
> > compiler can do the correct optimization and we don't have to
> > litter #ifdefs and worry about undefined variables and other
> > things.
> 
> The check can be outside of the #ifdef, but set_compat_user_sigmask
> is not declared then.

Right, but shouldn't it be declared?  I thought BUILD_BUG_ON had nice
magic that allowed it to work here (meaning if the compiler doesn't
eliminate the branch we get a build bug).

> I think for the future we can consider just moving the compat logic
> into set_user_sigmask(), which would simplify most of the callers,
> but that seemed to invasive as a bugfix for 5.1.

Well, that too.  I've just been on a recent bender to stop #ifdefs
after I saw what some people were doing with them.

James


  reply	other threads:[~2019-03-26  0:13 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-25 14:34 [PATCH 1/2] io_uring: fix big-endian compat signal mask handling Arnd Bergmann
2019-03-25 14:47 ` [PATCH 2/2] arch: add pidfd and io_uring syscalls everywhere Arnd Bergmann
2019-03-25 14:47   ` Arnd Bergmann
2019-03-25 14:47   ` Arnd Bergmann
2019-03-25 14:47   ` Arnd Bergmann
2019-03-25 14:47   ` Arnd Bergmann
2019-03-25 17:37   ` Paul Burton
2019-03-25 17:37     ` Paul Burton
2019-03-25 17:37     ` Paul Burton
2019-03-25 17:37     ` Paul Burton
2019-03-25 17:37     ` Paul Burton
2019-03-26  8:40     ` Arnd Bergmann
2019-03-26  8:40       ` Arnd Bergmann
2019-03-26  8:40       ` Arnd Bergmann
2019-03-26  8:40       ` Arnd Bergmann
2019-03-26  8:40       ` Arnd Bergmann
2019-03-30  9:42   ` Heiko Carstens
2019-03-30  9:42     ` Heiko Carstens
2019-03-30  9:42     ` Heiko Carstens
2019-03-30  9:42     ` Heiko Carstens
2019-03-30  9:42     ` Heiko Carstens
2019-03-31  9:47   ` Michael Ellerman
2019-03-31  9:47     ` Michael Ellerman
2019-03-31  9:47     ` Michael Ellerman
2019-03-31  9:47     ` Michael Ellerman
2019-03-31  9:47     ` Michael Ellerman
2019-03-31  9:47     ` Michael Ellerman
2019-03-31 16:28     ` Arnd Bergmann
2019-03-31 16:28       ` Arnd Bergmann
2019-03-31 16:28       ` Arnd Bergmann
2019-03-31 16:28       ` Arnd Bergmann
2019-03-31 16:28       ` Arnd Bergmann
2019-04-03  1:19       ` Michael Ellerman
2019-04-03  1:19         ` Michael Ellerman
2019-04-03  1:19         ` Michael Ellerman
2019-04-03  1:19         ` Michael Ellerman
2019-04-03  1:19         ` Michael Ellerman
2019-04-01  8:19   ` Geert Uytterhoeven
2019-04-01  8:19     ` Geert Uytterhoeven
2019-04-01  8:19     ` Geert Uytterhoeven
2019-04-01  8:19     ` Geert Uytterhoeven
2019-04-01  8:19     ` Geert Uytterhoeven
2019-04-03  2:47   ` Michael Ellerman
2019-04-03  2:47     ` Michael Ellerman
2019-04-03  2:47     ` Michael Ellerman
2019-04-03  2:47     ` Michael Ellerman
2019-04-03  2:47     ` Michael Ellerman
2019-04-03  2:47     ` Michael Ellerman
2019-04-03 11:11     ` Will Deacon
2019-04-03 11:11       ` Will Deacon
2019-04-03 11:11       ` Will Deacon
2019-04-03 11:11       ` Will Deacon
2019-04-03 11:11       ` Will Deacon
2019-04-03 13:49       ` Jens Axboe
2019-04-03 13:49         ` Jens Axboe
2019-04-03 13:49         ` Jens Axboe
2019-04-03 13:49         ` Jens Axboe
2019-04-03 13:49         ` Jens Axboe
2019-04-03 15:19         ` Will Deacon
2019-04-03 15:19           ` Will Deacon
2019-04-03 15:19           ` Will Deacon
2019-04-03 15:19           ` Will Deacon
2019-04-03 15:19           ` Will Deacon
2019-04-03 15:39           ` Jens Axboe
2019-04-03 15:39             ` Jens Axboe
2019-04-03 15:39             ` Jens Axboe
2019-04-03 15:39             ` Jens Axboe
2019-04-03 15:39             ` Jens Axboe
2019-04-03 15:49             ` Will Deacon
2019-04-03 15:49               ` Will Deacon
2019-04-03 15:49               ` Will Deacon
2019-04-03 15:49               ` Will Deacon
2019-04-03 15:49               ` Will Deacon
2019-04-03 15:51               ` Jens Axboe
2019-04-03 15:51                 ` Jens Axboe
2019-04-03 15:51                 ` Jens Axboe
2019-04-03 15:51                 ` Jens Axboe
2019-04-03 15:51                 ` Jens Axboe
2019-04-04  6:08         ` Michael Ellerman
2019-04-04  6:08           ` Michael Ellerman
2019-04-04  6:08           ` Michael Ellerman
2019-04-04  6:08           ` Michael Ellerman
2019-04-04  6:08           ` Michael Ellerman
2019-03-25 16:05 ` [PATCH 1/2] io_uring: fix big-endian compat signal mask handling Jens Axboe
2019-03-25 16:11   ` Arnd Bergmann
2019-03-25 16:15     ` Jens Axboe
2019-03-25 16:19 ` James Bottomley
2019-03-25 16:23   ` Jens Axboe
2019-03-25 16:24   ` Arnd Bergmann
2019-03-26  0:13     ` James Bottomley [this message]
2019-03-26  8:35       ` Arnd Bergmann

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=1553559185.2929.20.camel@HansenPartnership.com \
    --to=james.bottomley@hansenpartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=axboe@kernel.dk \
    --cc=david@redhat.com \
    --cc=hare@suse.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nborisov@suse.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.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.