Hi all, After merging the keys tree, today's linux-next build (x86_64 allmodconfig) failed like this: In file included from include/linux/keyctl.h:11, from include/linux/key.h:35, from include/linux/cred.h:13, from fs/verity/signature.c:10: fs/verity/signature.c: In function 'fsverity_init_signature': include/uapi/linux/keyctl.h:52:24: warning: passing argument 5 of 'keyring_alloc' makes pointer from integer without a cast [-Wint-conversion] 52 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ | ^ | | | int fs/verity/signature.c:140:25: note: in expansion of macro 'KEY_POS_SEARCH' 140 | current_cred(), KEY_POS_SEARCH | | ^~~~~~~~~~~~~~ In file included from include/linux/cred.h:13, from fs/verity/signature.c:10: include/linux/key.h:390:20: note: expected 'struct key_acl *' but argument is of type 'int' 390 | extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, | ^~~~~~~~~~~~~ fs/crypto/keysetup_v1.c: In function 'find_and_lock_process_key': fs/crypto/keysetup_v1.c:107:8: error: too few arguments to function 'request_key' 107 | key = request_key(&key_type_logon, description, NULL); | ^~~~~~~~~~~ In file included from include/keys/user-type.h:11, from fs/crypto/keysetup_v1.c:25: include/linux/key.h:321:27: note: declared here 321 | static inline struct key *request_key(struct key_type *type, | ^~~~~~~~~~~ In file included from include/linux/keyctl.h:11, from include/linux/key.h:35, from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: fs/crypto/keyring.c: In function 'allocate_filesystem_keyring': include/uapi/linux/keyctl.h:52:24: warning: passing argument 5 of 'keyring_alloc' makes pointer from integer without a cast [-Wint-conversion] 52 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ | ^ | | | int fs/crypto/keyring.c:208:21: note: in expansion of macro 'KEY_POS_SEARCH' 208 | current_cred(), KEY_POS_SEARCH | | ^~~~~~~~~~~~~~ In file included from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: include/linux/key.h:390:20: note: expected 'struct key_acl *' but argument is of type 'int' 390 | extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, | ^~~~~~~~~~~~~ In file included from include/linux/keyctl.h:11, from include/linux/key.h:35, from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: fs/crypto/keyring.c: In function 'allocate_master_key_users_keyring': include/uapi/linux/keyctl.h:52:24: warning: passing argument 5 of 'keyring_alloc' makes pointer from integer without a cast [-Wint-conversion] 52 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ | ^ | | | int fs/crypto/keyring.c:252:21: note: in expansion of macro 'KEY_POS_SEARCH' 252 | current_cred(), KEY_POS_SEARCH | | ^~~~~~~~~~~~~~ In file included from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: include/linux/key.h:390:20: note: expected 'struct key_acl *' but argument is of type 'int' 390 | extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, | ^~~~~~~~~~~~~ In file included from include/linux/keyctl.h:11, from include/linux/key.h:35, from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: fs/crypto/keyring.c: In function 'add_master_key_user': include/uapi/linux/keyctl.h:52:24: warning: passing argument 6 of 'key_alloc' makes pointer from integer without a cast [-Wint-conversion] 52 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ | ^ | | | int fs/crypto/keyring.c:290:8: note: in expansion of macro 'KEY_POS_SEARCH' 290 | KEY_POS_SEARCH | KEY_USR_VIEW, 0, NULL); | ^~~~~~~~~~~~~~ In file included from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: include/linux/key.h:256:20: note: expected 'struct key_acl *' but argument is of type 'int' 256 | extern struct key *key_alloc(struct key_type *type, | ^~~~~~~~~ In file included from include/linux/keyctl.h:11, from include/linux/key.h:35, from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: fs/crypto/keyring.c: In function 'add_new_master_key': include/uapi/linux/keyctl.h:52:24: warning: passing argument 6 of 'key_alloc' makes pointer from integer without a cast [-Wint-conversion] 52 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ | ^ | | | int fs/crypto/keyring.c:362:4: note: in expansion of macro 'KEY_POS_SEARCH' 362 | KEY_POS_SEARCH | KEY_USR_SEARCH | KEY_USR_VIEW, | ^~~~~~~~~~~~~~ In file included from include/linux/key-type.h:11, from fs/crypto/keyring.c:22: include/linux/key.h:256:20: note: expected 'struct key_acl *' but argument is of type 'int' 256 | extern struct key *key_alloc(struct key_type *type, | ^~~~~~~~~ drivers/md/dm-verity-verify-sig.c: In function 'verity_verify_get_sig_from_key': drivers/md/dm-verity-verify-sig.c:38:8: error: too few arguments to function 'request_key' 38 | key = request_key(&key_type_user, | ^~~~~~~~~~~ In file included from include/keys/user-type.h:11, from drivers/md/dm-verity-verify-sig.c:10: include/linux/key.h:321:27: note: declared here 321 | static inline struct key *request_key(struct key_type *type, | ^~~~~~~~~~~ Caused by API updates in the keys tree without fixups of their uses. The keys tree is now based on v5.5-rc3 ... The callis to keyring_alloc() in fs/verity/signature.c and fs/crypto/keyring.c were added in v5.4-rc1. As were the calls to request_key() in fs/crypto/keysetup_v1.c and drivers/md/dm-verity-verify-sig.c. I have used the keys tree from next-20191211 again today. -- Cheers, Stephen Rothwell