2019-05-16 12:11:07

by Arnd Bergmann

[permalink] [raw]
Subject: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

[back from vacation now, sorry for the late pull request for this merge window]

The following changes since commit 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b:

Linux 5.1-rc1 (2019-03-17 14:22:26 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
tags/asm-generic-nommu

for you to fetch changes up to 6edd1dbace0e8529ed167e8a5f9da63c0cc763cc:

asm-generic: optimize generic uaccess for 8-byte loads and stores
(2019-04-23 21:51:41 +0200)

----------------------------------------------------------------
asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

Christoph Hellwig writes:

This is a series doing two somewhat interwinded things. It improves
the asm-generic nommu uaccess helper to optionally be entirely generic
and not require any arch helpers for the actual uaccess. For the
generic uaccess.h to actually be generically useful I also had to kill
off the mess we made of <asm/segment.h>, which really shouldn't exist
on most architectures.

Signed-off-by: Arnd Bergmann <[email protected]>

----------------------------------------------------------------
Christoph Hellwig (4):
asm-generic: don't include <asm/segment.h> from <asm/uaccess.h>
arch: mostly remove <asm/segment.h>
asm-generic: provide entirely generic nommu uaccess
asm-generic: optimize generic uaccess for 8-byte loads and stores

arch/alpha/include/asm/segment.h | 6 ----
arch/alpha/kernel/smc37c669.c | 1 -
arch/alpha/kernel/smc37c93x.c | 1 -
arch/arc/include/asm/uaccess.h | 1 +
arch/arm/include/asm/Kbuild | 1 -
arch/arm64/include/asm/Kbuild | 1 -
arch/c6x/include/asm/Kbuild | 1 -
arch/h8300/Kconfig | 1 +
arch/h8300/include/asm/Kbuild | 1 +
arch/h8300/include/asm/uaccess.h | 55 ------------------------------------
arch/hexagon/include/asm/Kbuild | 1 -
arch/hexagon/include/asm/uaccess.h | 1 -
arch/ia64/include/asm/segment.h | 6 ----
arch/mips/include/asm/Kbuild | 1 -
arch/nds32/include/asm/Kbuild | 1 -
arch/nios2/include/asm/Kbuild | 1 -
arch/openrisc/include/asm/Kbuild | 1 -
arch/openrisc/kernel/ptrace.c | 1 -
arch/openrisc/kernel/setup.c | 1 -
arch/openrisc/kernel/traps.c | 1 -
arch/openrisc/mm/init.c | 1 -
arch/openrisc/mm/tlb.c | 1 -
arch/parisc/include/asm/Kbuild | 1 -
arch/s390/include/asm/segment.h | 5 ----
arch/s390/kernel/ptrace.c | 1 -
arch/unicore32/include/asm/Kbuild | 1 -
arch/xtensa/include/asm/segment.h | 16 -----------
include/asm-generic/segment.h | 9 ------
include/asm-generic/uaccess.h | 58 +++++++++++++++++++++++++++++++++++++-
lib/Kconfig | 4 +++
30 files changed, 64 insertions(+), 117 deletions(-)
delete mode 100644 arch/alpha/include/asm/segment.h
delete mode 100644 arch/h8300/include/asm/uaccess.h
delete mode 100644 arch/ia64/include/asm/segment.h
delete mode 100644 arch/s390/include/asm/segment.h
delete mode 100644 arch/xtensa/include/asm/segment.h
delete mode 100644 include/asm-generic/segment.h


2019-05-16 19:21:40

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

The pull request you sent on Thu, 16 May 2019 14:09:08 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git tags/asm-generic-nommu

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/27ebbf9d5bc0ab0a8ca875119e0ce4cd267fa2fc

Thank you!

--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

2019-05-16 21:41:30

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

On Thu, May 16, 2019 at 5:09 AM Arnd Bergmann <[email protected]> wrote:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
> tags/asm-generic-nommu

Interesting. I haven't seen this error before:

# gpg: Signature made Tue 23 Apr 2019 12:54:49 PM PDT
# gpg: using RSA key 60AB47FFC9095227
# gpg: bad data signature from key 60AB47FFC9095227: Wrong key usage
(0x00, 0x4)
# gpg: Can't check signature: Wrong key usage

I think it means that you signed it with a key that was marked for
encryption only or something like that.

But gpg being the wonderful self-explanatory great UX that it is, I
have no effin clue what it really means.

Looking at the git history, it turns out this has happened a before
from you, and in fact goes back to pull requests from 2012.

Either I just didn't notice - which sounds unlikely for something that
has been going on for 7+ years - or the actual check and error is new
to gpg, and I only notice it this merge window because I've upgraded
to F30.

Linus

2019-05-16 22:07:40

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

On Thu, May 16, 2019 at 1:34 PM Arnd Bergmann <[email protected]> wrote:
>
>
> I have reconfigured it locally now and pushed an identical tag with a
> new signature. Can you see if that gives you the same warning if you
> try to pull that?

No, same issue:

[torvalds@i7 linux]$ git fetch
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
tags/asm-generic-nommu
From ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
* tag asm-generic-nommu -> FETCH_HEAD
[torvalds@i7 linux]$ git verify-tag FETCH_HEAD
gpg: Signature made Thu 16 May 2019 01:28:54 PM PDT
gpg: using RSA key 60AB47FFC9095227
gpg: bad data signature from key 60AB47FFC9095227: Wrong key usage
(0x00, 0x4)
gpg: Can't check signature: Wrong key usage

That's the same key you used previously.

I think you have to do some gpg edit-key magic or something, and then
the key need to be refreshed.

But I really despise the usability of gpg, so what do I know?

Linus

2019-05-16 23:02:40

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

On Thu, May 16, 2019 at 3:49 PM Arnd Bergmann <[email protected]> wrote:
>
> Strangely, the copy I have on my local machine does have the 'S'
> flag. I sent it back to the server now.

Yup, now when I refreshed your key, I got an update, and your
signature looks all good.

Linus

2019-05-16 23:02:43

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

On Thu, May 16, 2019 at 11:53 PM James Bottomley
<[email protected]> wrote:
>
> On Thu, 2019-05-16 at 13:59 -0700, Linus Torvalds wrote:
> > On Thu, May 16, 2019 at 1:34 PM Arnd Bergmann <[email protected]> wrote:
> > >
> > >
> > > I have reconfigured it locally now and pushed an identical tag with
> > > a
> > > new signature. Can you see if that gives you the same warning if
> > > you
> > > try to pull that?
> >
> > No, same issue:
>
> The problem seems to be this:
>
> jejb@jarvis:~> gpg --list-keys 60AB47FFC9095227
> pub rsa4096 2011-10-27 [C]
> 88AFCD206B1611957187F16B60AB47FFC9095227
> sub rsa4096 2011-10-27 [E]
>
> Your key is a "Certification key" and you have an encryption subkey but
> no signing key at all. Usually you either have a signing subkey or
> your master key is both certification and signing ([CS] flags).
> Certification keys can only be used to certify other keys, they can't
> be used for signing, but I bet gpg is assuming that it can sign with
> the master key even if it doesn't possess the signing flag.

Strangely, the copy I have on my local machine does have the 'S'
flag. I sent it back to the server now.

> You can make your master key a signing key by doing
>
> gpg --expert --edit-key 60AB47FFC9095227
>
> Then doing
>
> gpg> change-usage
>
> and selecting "toggle sign"
>
> Or you could just add a signing subkey.

I had some problems with creating a subkey, probably because of
some misconfiguration. It seems to work now, so I created a new
signing subkey now for future use.

Thanks a lot!

Arnd

2019-05-17 00:04:22

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

On Thu, May 16, 2019 at 8:41 PM Linus Torvalds
<[email protected]> wrote:
>
> On Thu, May 16, 2019 at 5:09 AM Arnd Bergmann <[email protected]> wrote:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
> > tags/asm-generic-nommu
>
> Interesting. I haven't seen this error before:
>
> # gpg: Signature made Tue 23 Apr 2019 12:54:49 PM PDT
> # gpg: using RSA key 60AB47FFC9095227
> # gpg: bad data signature from key 60AB47FFC9095227: Wrong key usage
> (0x00, 0x4)
> # gpg: Can't check signature: Wrong key usage
>
> I think it means that you signed it with a key that was marked for
> encryption only or something like that.
>
> But gpg being the wonderful self-explanatory great UX that it is, I
> have no effin clue what it really means.

Same here.

> Looking at the git history, it turns out this has happened a before
> from you, and in fact goes back to pull requests from 2012.
>
> Either I just didn't notice - which sounds unlikely for something that
> has been going on for 7+ years - or the actual check and error is new
> to gpg, and I only notice it this merge window because I've upgraded
> to F30.

I have reconfigured it locally now and pushed an identical tag with a
new signature. Can you see if that gives you the same warning if you
try to pull that?

Arnd

2019-05-17 00:36:23

by James Bottomley

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

On Thu, 2019-05-16 at 13:59 -0700, Linus Torvalds wrote:
> On Thu, May 16, 2019 at 1:34 PM Arnd Bergmann <[email protected]> wrote:
> >
> >
> > I have reconfigured it locally now and pushed an identical tag with
> > a
> > new signature. Can you see if that gives you the same warning if
> > you
> > try to pull that?
>
> No, same issue:

The problem seems to be this:

jejb@jarvis:~> gpg --list-keys 60AB47FFC9095227
pub rsa4096 2011-10-27 [C]
88AFCD206B1611957187F16B60AB47FFC9095227
sub rsa4096 2011-10-27 [E]

Your key is a "Certification key" and you have an encryption subkey but
no signing key at all. Usually you either have a signing subkey or
your master key is both certification and signing ([CS] flags).
Certification keys can only be used to certify other keys, they can't
be used for signing, but I bet gpg is assuming that it can sign with
the master key even if it doesn't possess the signing flag.

You can make your master key a signing key by doing

gpg --expert --edit-key 60AB47FFC9095227

Then doing

gpg> change-usage

and selecting "toggle sign"

Or you could just add a signing subkey.

In either case you'll need to save and sign the changes and then push
to a keyserver for the rest of us to see it.

James

2019-05-17 08:56:14

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [GIT PULL] asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers

Hi Linus,

On Fri, May 17, 2019 at 12:06 AM Linus Torvalds
<[email protected]> wrote:
> On Thu, May 16, 2019 at 1:34 PM Arnd Bergmann <[email protected]> wrote:
> > I have reconfigured it locally now and pushed an identical tag with a
> > new signature. Can you see if that gives you the same warning if you
> > try to pull that?
>
> No, same issue:
>
> [torvalds@i7 linux]$ git fetch
> git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
> tags/asm-generic-nommu
> From ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
> * tag asm-generic-nommu -> FETCH_HEAD
> [torvalds@i7 linux]$ git verify-tag FETCH_HEAD
> gpg: Signature made Thu 16 May 2019 01:28:54 PM PDT
> gpg: using RSA key 60AB47FFC9095227
> gpg: bad data signature from key 60AB47FFC9095227: Wrong key usage
> (0x00, 0x4)
> gpg: Can't check signature: Wrong key usage

Works fine here.

Oh, I do have the recommended cronjob:
https://www.kernel.org/doc/html/latest/process/maintainer-pgp-guide.html#set-up-a-refresh-cronjob

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds