Commit 469ff8f7 authored by Mat Martineau's avatar Mat Martineau

KEYS: Use a typedef for restrict_link function pointers

This pointer type needs to be returned from a lookup function, and
without a typedef the syntax gets cumbersome.
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
parent 73cdd290
...@@ -1032,10 +1032,7 @@ payload contents" for more information. ...@@ -1032,10 +1032,7 @@ payload contents" for more information.
struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid, struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid,
const struct cred *cred, const struct cred *cred,
key_perm_t perm, key_perm_t perm,
int (*restrict_link)(struct key *, key_restrict_link_func_t restrict_link,
const struct key_type *,
unsigned long,
const union key_payload *),
unsigned long flags, unsigned long flags,
struct key *dest); struct key *dest);
......
...@@ -127,6 +127,10 @@ static inline bool is_key_possessed(const key_ref_t key_ref) ...@@ -127,6 +127,10 @@ static inline bool is_key_possessed(const key_ref_t key_ref)
return (unsigned long) key_ref & 1UL; return (unsigned long) key_ref & 1UL;
} }
typedef int (*key_restrict_link_func_t)(struct key *keyring,
const struct key_type *type,
const union key_payload *payload);
/*****************************************************************************/ /*****************************************************************************/
/* /*
* authentication token / access credential / keyring * authentication token / access credential / keyring
...@@ -215,9 +219,7 @@ struct key { ...@@ -215,9 +219,7 @@ struct key {
* overrides this, allowing the kernel to add extra keys without * overrides this, allowing the kernel to add extra keys without
* restriction. * restriction.
*/ */
int (*restrict_link)(struct key *keyring, key_restrict_link_func_t restrict_link;
const struct key_type *type,
const union key_payload *payload);
}; };
extern struct key *key_alloc(struct key_type *type, extern struct key *key_alloc(struct key_type *type,
...@@ -226,9 +228,7 @@ extern struct key *key_alloc(struct key_type *type, ...@@ -226,9 +228,7 @@ extern struct key *key_alloc(struct key_type *type,
const struct cred *cred, const struct cred *cred,
key_perm_t perm, key_perm_t perm,
unsigned long flags, unsigned long flags,
int (*restrict_link)(struct key *, key_restrict_link_func_t restrict_link);
const struct key_type *,
const union key_payload *));
#define KEY_ALLOC_IN_QUOTA 0x0000 /* add to quota, reject if would overrun */ #define KEY_ALLOC_IN_QUOTA 0x0000 /* add to quota, reject if would overrun */
...@@ -304,9 +304,7 @@ extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid ...@@ -304,9 +304,7 @@ extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid
const struct cred *cred, const struct cred *cred,
key_perm_t perm, key_perm_t perm,
unsigned long flags, unsigned long flags,
int (*restrict_link)(struct key *, key_restrict_link_func_t restrict_link,
const struct key_type *,
const union key_payload *),
struct key *dest); struct key *dest);
extern int restrict_link_reject(struct key *keyring, extern int restrict_link_reject(struct key *keyring,
......
...@@ -225,9 +225,7 @@ static inline void key_alloc_serial(struct key *key) ...@@ -225,9 +225,7 @@ static inline void key_alloc_serial(struct key *key)
struct key *key_alloc(struct key_type *type, const char *desc, struct key *key_alloc(struct key_type *type, const char *desc,
kuid_t uid, kgid_t gid, const struct cred *cred, kuid_t uid, kgid_t gid, const struct cred *cred,
key_perm_t perm, unsigned long flags, key_perm_t perm, unsigned long flags,
int (*restrict_link)(struct key *, key_restrict_link_func_t restrict_link)
const struct key_type *,
const union key_payload *))
{ {
struct key_user *user = NULL; struct key_user *user = NULL;
struct key *key; struct key *key;
...@@ -806,9 +804,7 @@ key_ref_t key_create_or_update(key_ref_t keyring_ref, ...@@ -806,9 +804,7 @@ key_ref_t key_create_or_update(key_ref_t keyring_ref,
struct key *keyring, *key = NULL; struct key *keyring, *key = NULL;
key_ref_t key_ref; key_ref_t key_ref;
int ret; int ret;
int (*restrict_link)(struct key *, key_restrict_link_func_t restrict_link = NULL;
const struct key_type *,
const union key_payload *) = NULL;
/* look up the key type to see if it's one of the registered kernel /* look up the key type to see if it's one of the registered kernel
* types */ * types */
......
...@@ -492,9 +492,7 @@ static long keyring_read(const struct key *keyring, ...@@ -492,9 +492,7 @@ static long keyring_read(const struct key *keyring,
struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid,
const struct cred *cred, key_perm_t perm, const struct cred *cred, key_perm_t perm,
unsigned long flags, unsigned long flags,
int (*restrict_link)(struct key *, key_restrict_link_func_t restrict_link,
const struct key_type *,
const union key_payload *),
struct key *dest) struct key *dest)
{ {
struct key *keyring; struct key *keyring;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment