linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig
@ 2017-02-09 21:11 Bilal Amarni
  2017-02-10  8:15 ` Arnd Bergmann
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Bilal Amarni @ 2017-02-09 21:11 UTC (permalink / raw)
  To: dhowells
  Cc: arnd, james.l.morris, serge, keyrings, linux-kernel,
	linux-security-module, Bilal Amarni

CONFIG_KEYS_COMPAT is defined in arch-specific Kconfigs and is missing for
several 64-bit architectures : arm64, mips, parisc, tile.

At the moment and for those architectures, calling in 32-bit userspace the
keyctl syscall would return an ENOSYS error.

This patch moves the CONFIG_KEYS_COMPAT option to security/keys/Kconfig, to
make sure the compatibility wrapper is registered by default for any 64-bit
architecture as long as it is configured with CONFIG_COMPAT.

Signed-off-by: Bilal Amarni <bilal.amarni@gmail.com>
---
 arch/powerpc/Kconfig  | 5 -----
 arch/s390/Kconfig     | 3 ---
 arch/sparc/Kconfig    | 3 ---
 arch/x86/Kconfig      | 4 ----
 security/keys/Kconfig | 4 ++++
 5 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 281f4f1..176e20d 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -1128,11 +1128,6 @@ source "arch/powerpc/Kconfig.debug"
 
 source "security/Kconfig"
 
-config KEYS_COMPAT
-	bool
-	depends on COMPAT && KEYS
-	default y
-
 source "crypto/Kconfig"
 
 config PPC_LIB_RHEAP
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index c6722112..633f553 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -362,9 +362,6 @@ config COMPAT
 config SYSVIPC_COMPAT
 	def_bool y if COMPAT && SYSVIPC
 
-config KEYS_COMPAT
-	def_bool y if COMPAT && KEYS
-
 config SMP
 	def_bool y
 	prompt "Symmetric multi-processing support"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index cf4034c..2b07f0a 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -571,9 +571,6 @@ config SYSVIPC_COMPAT
 	depends on COMPAT && SYSVIPC
 	default y
 
-config KEYS_COMPAT
-	def_bool y if COMPAT && KEYS
-
 endmenu
 
 source "net/Kconfig"
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e487493..f93b6ba 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2768,10 +2768,6 @@ config COMPAT_FOR_U64_ALIGNMENT
 config SYSVIPC_COMPAT
 	def_bool y
 	depends on SYSVIPC
-
-config KEYS_COMPAT
-	def_bool y
-	depends on KEYS
 endif
 
 endmenu
diff --git a/security/keys/Kconfig b/security/keys/Kconfig
index d942c7c..f44d8be 100644
--- a/security/keys/Kconfig
+++ b/security/keys/Kconfig
@@ -20,6 +20,10 @@ config KEYS
 
 	  If you are unsure as to whether this is required, answer N.
 
+config KEYS_COMPAT
+	def_bool y
+	depends on COMPAT && KEYS
+
 config PERSISTENT_KEYRINGS
 	bool "Enable register of persistent per-UID keyrings"
 	depends on KEYS
-- 
2.7.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig
  2017-02-09 21:11 [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig Bilal Amarni
@ 2017-02-10  8:15 ` Arnd Bergmann
  2017-02-10 11:04 ` David Howells
  2017-03-29 19:20 ` Eric Biggers
  2 siblings, 0 replies; 7+ messages in thread
From: Arnd Bergmann @ 2017-02-10  8:15 UTC (permalink / raw)
  To: Bilal Amarni
  Cc: David Howells, james.l.morris, serge, keyrings,
	Linux Kernel Mailing List, linux-security-module

On Thu, Feb 9, 2017 at 10:11 PM, Bilal Amarni <bilal.amarni@gmail.com> wrote:
> CONFIG_KEYS_COMPAT is defined in arch-specific Kconfigs and is missing for
> several 64-bit architectures : arm64, mips, parisc, tile.
>
> At the moment and for those architectures, calling in 32-bit userspace the
> keyctl syscall would return an ENOSYS error.
>
> This patch moves the CONFIG_KEYS_COMPAT option to security/keys/Kconfig, to
> make sure the compatibility wrapper is registered by default for any 64-bit
> architecture as long as it is configured with CONFIG_COMPAT.
>
> Signed-off-by: Bilal Amarni <bilal.amarni@gmail.com>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig
  2017-02-09 21:11 [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig Bilal Amarni
  2017-02-10  8:15 ` Arnd Bergmann
@ 2017-02-10 11:04 ` David Howells
  2017-03-29 19:20 ` Eric Biggers
  2 siblings, 0 replies; 7+ messages in thread
From: David Howells @ 2017-02-10 11:04 UTC (permalink / raw)
  To: Bilal Amarni
  Cc: dhowells, arnd, james.l.morris, serge, keyrings, linux-kernel,
	linux-security-module

Bilal Amarni <bilal.amarni@gmail.com> wrote:

> CONFIG_KEYS_COMPAT is defined in arch-specific Kconfigs and is missing for
> several 64-bit architectures : arm64, mips, parisc, tile.
> 
> At the moment and for those architectures, calling in 32-bit userspace the
> keyctl syscall would return an ENOSYS error.
> 
> This patch moves the CONFIG_KEYS_COMPAT option to security/keys/Kconfig, to
> make sure the compatibility wrapper is registered by default for any 64-bit
> architecture as long as it is configured with CONFIG_COMPAT.
> 
> Signed-off-by: Bilal Amarni <bilal.amarni@gmail.com>

Applied.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: security/keys: add CONFIG_KEYS_COMPAT to Kconfig
  2017-02-09 21:11 [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig Bilal Amarni
  2017-02-10  8:15 ` Arnd Bergmann
  2017-02-10 11:04 ` David Howells
@ 2017-03-29 19:20 ` Eric Biggers
  2017-06-03  2:43   ` Eric Biggers
  2 siblings, 1 reply; 7+ messages in thread
From: Eric Biggers @ 2017-03-29 19:20 UTC (permalink / raw)
  To: Bilal Amarni
  Cc: dhowells, arnd, james.l.morris, serge, keyrings, linux-kernel,
	linux-security-module

On Thu,  9 Feb 2017 22:11:38 +0100, Bilal Amarni wrote:
> CONFIG_KEYS_COMPAT is defined in arch-specific Kconfigs and is missing for
> several 64-bit architectures : arm64, mips, parisc, tile.
> 
> At the moment and for those architectures, calling in 32-bit userspace the
> keyctl syscall would return an ENOSYS error.
> 
> This patch moves the CONFIG_KEYS_COMPAT option to security/keys/Kconfig, to
> make sure the compatibility wrapper is registered by default for any 64-bit
> architecture as long as it is configured with CONFIG_COMPAT.

David, where can I find the git branch this patch was applied to?  I don't see
it anywhere in security-keys or linux-security.

I recently added KEYS_COMPAT to arm64 (5c2a625937ba); that should be reverted
after this patch.

Also, I'd like to submit a follow-on patch that removes KEYS_COMPAT and simply
uses COMPAT.

And the parisc architecture doesn't use compat_sys_keyctl() in its compat
syscall table, so that should be fixed too (though that's not a new bug).

- Eric

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: security/keys: add CONFIG_KEYS_COMPAT to Kconfig
  2017-03-29 19:20 ` Eric Biggers
@ 2017-06-03  2:43   ` Eric Biggers
  2017-06-03  8:04     ` David Howells
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Biggers @ 2017-06-03  2:43 UTC (permalink / raw)
  To: dhowells
  Cc: Bilal Amarni, arnd, james.l.morris, serge, keyrings, linux-kernel,
	linux-security-module

On Wed, Mar 29, 2017 at 12:20:02PM -0700, Eric Biggers wrote:
> On Thu,  9 Feb 2017 22:11:38 +0100, Bilal Amarni wrote:
> > CONFIG_KEYS_COMPAT is defined in arch-specific Kconfigs and is missing for
> > several 64-bit architectures : arm64, mips, parisc, tile.
> > 
> > At the moment and for those architectures, calling in 32-bit userspace the
> > keyctl syscall would return an ENOSYS error.
> > 
> > This patch moves the CONFIG_KEYS_COMPAT option to security/keys/Kconfig, to
> > make sure the compatibility wrapper is registered by default for any 64-bit
> > architecture as long as it is configured with CONFIG_COMPAT.
> 
> David, where can I find the git branch this patch was applied to?  I don't see
> it anywhere in security-keys or linux-security.
> 
> I recently added KEYS_COMPAT to arm64 (5c2a625937ba); that should be reverted
> after this patch.
> 
> Also, I'd like to submit a follow-on patch that removes KEYS_COMPAT and simply
> uses COMPAT.
> 
> And the parisc architecture doesn't use compat_sys_keyctl() in its compat
> syscall table, so that should be fixed too (though that's not a new bug).
> 
> - Eric

This patch is in the "keys-fixes" branch now, but it doesn't remove KEYS_COMPAT
from arch/arm64/Kconfig.  David, can you fix it?  Thanks!

Eric

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: security/keys: add CONFIG_KEYS_COMPAT to Kconfig
  2017-06-03  2:43   ` Eric Biggers
@ 2017-06-03  8:04     ` David Howells
  2017-06-05  3:34       ` Eric Biggers
  0 siblings, 1 reply; 7+ messages in thread
From: David Howells @ 2017-06-03  8:04 UTC (permalink / raw)
  To: Eric Biggers
  Cc: dhowells, Bilal Amarni, arnd, james.l.morris, serge, keyrings,
	linux-kernel, linux-security-module

Eric Biggers <ebiggers3@gmail.com> wrote:

> This patch is in the "keys-fixes" branch now, but it doesn't remove KEYS_COMPAT
> from arch/arm64/Kconfig.  David, can you fix it?  Thanks!

Done.  See below.

David
---
commit 90fe15899ffa2f7c6dd9a7c257c840cfbd523aad
Author: Bilal Amarni <bilal.amarni@gmail.com>
Date:   Fri Jun 2 14:29:19 2017 +0100

    security/keys: add CONFIG_KEYS_COMPAT to Kconfig
    
    CONFIG_KEYS_COMPAT is defined in arch-specific Kconfigs and is missing for
    several 64-bit architectures : mips, parisc, tile.
    
    At the moment and for those architectures, calling in 32-bit userspace the
    keyctl syscall would return an ENOSYS error.
    
    This patch moves the CONFIG_KEYS_COMPAT option to security/keys/Kconfig, to
    make sure the compatibility wrapper is registered by default for any 64-bit
    architecture as long as it is configured with CONFIG_COMPAT.
    
    [DH: Modified to remove arm64 compat enablement also as requested by Eric
     Biggers]
    
    Signed-off-by: Bilal Amarni <bilal.amarni@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    cc: Eric Biggers <ebiggers3@gmail.com>

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 3dcd7ec69bca..b2024db225a9 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1084,10 +1084,6 @@ config SYSVIPC_COMPAT
 	def_bool y
 	depends on COMPAT && SYSVIPC
 
-config KEYS_COMPAT
-	def_bool y
-	depends on COMPAT && KEYS
-
 endmenu
 
 menu "Power management options"
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index f7c8f9972f61..83d2e0f43c26 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -1215,11 +1215,6 @@ source "arch/powerpc/Kconfig.debug"
 
 source "security/Kconfig"
 
-config KEYS_COMPAT
-	bool
-	depends on COMPAT && KEYS
-	default y
-
 source "crypto/Kconfig"
 
 config PPC_LIB_RHEAP
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index e161fafb495b..6967addc6a89 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -363,9 +363,6 @@ config COMPAT
 config SYSVIPC_COMPAT
 	def_bool y if COMPAT && SYSVIPC
 
-config KEYS_COMPAT
-	def_bool y if COMPAT && KEYS
-
 config SMP
 	def_bool y
 	prompt "Symmetric multi-processing support"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 58243b0d21c0..5bb7a403af02 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -573,9 +573,6 @@ config SYSVIPC_COMPAT
 	depends on COMPAT && SYSVIPC
 	default y
 
-config KEYS_COMPAT
-	def_bool y if COMPAT && KEYS
-
 endmenu
 
 source "net/Kconfig"
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 4ccfacc7232a..0efb4c9497bc 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2776,10 +2776,6 @@ config COMPAT_FOR_U64_ALIGNMENT
 config SYSVIPC_COMPAT
 	def_bool y
 	depends on SYSVIPC
-
-config KEYS_COMPAT
-	def_bool y
-	depends on KEYS
 endif
 
 endmenu
diff --git a/security/keys/Kconfig b/security/keys/Kconfig
index 6fd95f76bfae..00b7431a8aeb 100644
--- a/security/keys/Kconfig
+++ b/security/keys/Kconfig
@@ -20,6 +20,10 @@ config KEYS
 
 	  If you are unsure as to whether this is required, answer N.
 
+config KEYS_COMPAT
+	def_bool y
+	depends on COMPAT && KEYS
+
 config PERSISTENT_KEYRINGS
 	bool "Enable register of persistent per-UID keyrings"
 	depends on KEYS

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: security/keys: add CONFIG_KEYS_COMPAT to Kconfig
  2017-06-03  8:04     ` David Howells
@ 2017-06-05  3:34       ` Eric Biggers
  0 siblings, 0 replies; 7+ messages in thread
From: Eric Biggers @ 2017-06-05  3:34 UTC (permalink / raw)
  To: David Howells
  Cc: Bilal Amarni, arnd, james.l.morris, serge, keyrings, linux-kernel,
	linux-security-module

On Sat, Jun 03, 2017 at 09:04:42AM +0100, David Howells wrote:
> Eric Biggers <ebiggers3@gmail.com> wrote:
> 
> > This patch is in the "keys-fixes" branch now, but it doesn't remove KEYS_COMPAT
> > from arch/arm64/Kconfig.  David, can you fix it?  Thanks!
> 
> Done.  See below.
> 
> David
> ---

Looks good now, thanks.  (Except that as I mentioned before, I don't think we
need the KEYS_COMPAT option at all, but that can be another patch.)

Eric

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-06-05  3:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-09 21:11 [PATCH] security/keys: add CONFIG_KEYS_COMPAT to Kconfig Bilal Amarni
2017-02-10  8:15 ` Arnd Bergmann
2017-02-10 11:04 ` David Howells
2017-03-29 19:20 ` Eric Biggers
2017-06-03  2:43   ` Eric Biggers
2017-06-03  8:04     ` David Howells
2017-06-05  3:34       ` Eric Biggers

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