2009-12-13 19:21:38

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support

As of commit ee18d64c1f632043a02e6f5ba5e045bb26a5465f ("KEYS: Add a keyctl to
install a process's session keyring on its parent [try #6]"), CONFIG_KEYS=y
fails to build on architectures that haven't implemented TIF_NOTIFY_RESUME yet:

security/keys/keyctl.c: In function 'keyctl_session_to_parent':
security/keys/keyctl.c:1312: error: 'TIF_NOTIFY_RESUME' undeclared (first use in this function)
security/keys/keyctl.c:1312: error: (Each undeclared identifier is reported only once
security/keys/keyctl.c:1312: error: for each function it appears in.)

Make KEYCTL_SESSION_TO_PARENT depend on TIF_NOTIFY_RESUME until blackfin,
m68k, and xtensa have implemented it.

Signed-off-by: Geert Uytterhoeven <[email protected]>
Cc: [email protected]
---
1. This fixes a regression in 2.6.32.
2. Long-time build issues like this make linux-next miss newer build
problems.

security/keys/keyctl.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index 06ec722..3a9ad87 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -1236,6 +1236,7 @@ long keyctl_get_security(key_serial_t keyid,
*/
long keyctl_session_to_parent(void)
{
+#ifdef TIF_NOTIFY_RESUME
struct task_struct *me, *parent;
const struct cred *mycred, *pcred;
struct cred *cred, *oldcred;
@@ -1326,6 +1327,15 @@ not_permitted:
error_keyring:
key_ref_put(keyring_r);
return ret;
+
+#else /* !TIF_NOTIFY_RESUME */
+ /*
+ * To be removed when TIF_NOTIFY_RESUME has been implemented on
+ * blackfin/m68k/xtensa
+ */
+#warning TIF_NOTIFY_RESUME not implemented
+ return -EOPNOTSUPP;
+#endif /* !TIF_NOTIFY_RESUME */
}

/*****************************************************************************/
--
1.6.0.4

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


2009-12-13 21:29:56

by James Morris

[permalink] [raw]
Subject: Re: [PATCH] Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support

On Sun, 13 Dec 2009, Geert Uytterhoeven wrote:

> As of commit ee18d64c1f632043a02e6f5ba5e045bb26a5465f ("KEYS: Add a keyctl to
> install a process's session keyring on its parent [try #6]"), CONFIG_KEYS=y
> fails to build on architectures that haven't implemented TIF_NOTIFY_RESUME yet:
>
> security/keys/keyctl.c: In function 'keyctl_session_to_parent':
> security/keys/keyctl.c:1312: error: 'TIF_NOTIFY_RESUME' undeclared (first use in this function)
> security/keys/keyctl.c:1312: error: (Each undeclared identifier is reported only once
> security/keys/keyctl.c:1312: error: for each function it appears in.)
>
> Make KEYCTL_SESSION_TO_PARENT depend on TIF_NOTIFY_RESUME until blackfin,
> m68k, and xtensa have implemented it.
>
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> Cc: [email protected]

Looks ok to me -- once we have an ack from David, I'll add it to my tree
and push to Linus with another fix.

> ---
> 1. This fixes a regression in 2.6.32.
> 2. Long-time build issues like this make linux-next miss newer build
> problems.
>
> security/keys/keyctl.c | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
> index 06ec722..3a9ad87 100644
> --- a/security/keys/keyctl.c
> +++ b/security/keys/keyctl.c
> @@ -1236,6 +1236,7 @@ long keyctl_get_security(key_serial_t keyid,
> */
> long keyctl_session_to_parent(void)
> {
> +#ifdef TIF_NOTIFY_RESUME
> struct task_struct *me, *parent;
> const struct cred *mycred, *pcred;
> struct cred *cred, *oldcred;
> @@ -1326,6 +1327,15 @@ not_permitted:
> error_keyring:
> key_ref_put(keyring_r);
> return ret;
> +
> +#else /* !TIF_NOTIFY_RESUME */
> + /*
> + * To be removed when TIF_NOTIFY_RESUME has been implemented on
> + * blackfin/m68k/xtensa
> + */
> +#warning TIF_NOTIFY_RESUME not implemented
> + return -EOPNOTSUPP;
> +#endif /* !TIF_NOTIFY_RESUME */
> }
>
> /*****************************************************************************/
> --
> 1.6.0.4
>
> 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
>

--
James Morris
<[email protected]>

2009-12-13 22:36:32

by David Howells

[permalink] [raw]
Subject: Re: [PATCH] Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support

Geert Uytterhoeven <[email protected]> wrote:

> +#warning TIF_NOTIFY_RESUME not implemented
> + return -EOPNOTSUPP;

I wonder if it should printk() too.

David

2009-12-14 00:21:46

by Brad Boyer

[permalink] [raw]
Subject: Re: [PATCH] Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support

On Sun, Dec 13, 2009 at 10:36:16PM +0000, David Howells wrote:
> Geert Uytterhoeven <[email protected]> wrote:
>
> > +#warning TIF_NOTIFY_RESUME not implemented
> > + return -EOPNOTSUPP;
>
> I wonder if it should printk() too.

I would think something like WARN_ONCE() or something rate limited would
be more appropriate.

Brad Boyer
[email protected]

2009-12-14 01:50:10

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH] Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support

On Sun, Dec 13, 2009 at 14:21, Geert Uytterhoeven wrote:
> As of commit ee18d64c1f632043a02e6f5ba5e045bb26a5465f ("KEYS: Add a keyctl to
> install a process's session keyring on its parent [try #6]"), CONFIG_KEYS=y
> fails to build on architectures that haven't implemented TIF_NOTIFY_RESUME yet:
>
> security/keys/keyctl.c: In function 'keyctl_session_to_parent':
> security/keys/keyctl.c:1312: error: 'TIF_NOTIFY_RESUME' undeclared (first use in this function)
> security/keys/keyctl.c:1312: error: (Each undeclared identifier is reported only once
> security/keys/keyctl.c:1312: error: for each function it appears in.)
>
> Make KEYCTL_SESSION_TO_PARENT depend on TIF_NOTIFY_RESUME until blackfin,
> m68k, and xtensa have implemented it.

i'll be pushing a patch for 2.6.32 to add notify support to Blackfin ;)

but othewise, Acked-by: Mike Frysinger <[email protected]>
-mike

2009-12-15 20:26:25

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH] Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support

On Sun, Dec 13, 2009 at 14:21, Geert Uytterhoeven wrote:
> +       /*
> +        * To be removed when TIF_NOTIFY_RESUME has been implemented on
> +        * blackfin/m68k/xtensa

if you feel like respinning, you can drop the "blackfin" part as ive
pushed support for 2.6.33
-mike