From: David Howells Make key_serial() an inline function rather than a macro if CONFIG_KEYS=y. This prevents double evaluation of the key pointer and also provides better type checking. Signed-off-by: David Howells Signed-off-by: Andrew Morton --- include/linux/key.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff -puN include/linux/key.h~keys-make-key_serial-a-function-if-config_keys=y include/linux/key.h --- a/include/linux/key.h~keys-make-key_serial-a-function-if-config_keys=y +++ a/include/linux/key.h @@ -264,7 +264,10 @@ extern int keyring_add_key(struct key *k extern struct key *key_lookup(key_serial_t id); -#define key_serial(key) ((key) ? (key)->serial : 0) +static inline key_serial_t key_serial(struct key *key) +{ + return key ? key->serial : 0; +} #ifdef CONFIG_SYSCTL extern ctl_table key_sysctls[]; _