tree:
https://android.googlesource.com/kernel/common android-4.19
head: cd46498a220773ccff35104a8de2463adf761267
commit: 040942fc50b20325bb56737c32b303268bb6f35c [1/5] ANDROID: Initial commit of
Incremental FS
config: arm-randconfig-c002-20210908 (attached as .config)
compiler: clang version 14.0.0 (
https://github.com/llvm/llvm-project
261cbe98c38f8c1ee1a482fe76511110e790f58a)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
git remote add android-common
https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-4.19
git checkout 040942fc50b20325bb56737c32b303268bb6f35c
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=arm
SHELL=/bin/bash M=crypto/asymmetric_keys
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from crypto/asymmetric_keys/asymmetric_type.c:13:
In file included from include/keys/asymmetric-subtype.h:18:
> include/keys/asymmetric-type.h:76:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_key_ids];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
In file included from crypto/asymmetric_keys/asymmetric_type.c:13:
> include/keys/asymmetric-subtype.h:52:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_subtype];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
In file included from crypto/asymmetric_keys/asymmetric_type.c:14:
> include/keys/asymmetric-parser.h:31:22: warning: declaration of
'struct key_preparsed_payload' will not be visible outside of this function
[-Wvisibility]
int (*parse)(struct key_preparsed_payload *prep);
^
crypto/asymmetric_keys/asymmetric_type.c:55:2: error: unknown type name
'key_ref_t'; did you mean 'key_perm_t'?
key_ref_t ref;
^~~~~~~~~
key_perm_t
include/linux/key.h:36:18: note: 'key_perm_t' declared here
typedef uint32_t key_perm_t;
^
> crypto/asymmetric_keys/asymmetric_type.c:88:8: error: implicit
declaration of function 'keyring_search' [-Werror,-Wimplicit-function-declaration]
ref = keyring_search(make_key_ref(keyring, 1),
^
> crypto/asymmetric_keys/asymmetric_type.c:90:13: warning:
incompatible integer to pointer conversion passing 'key_perm_t' (aka 'unsigned
int') to parameter of type 'const void *' [-Wint-conversion]
if (IS_ERR(ref))
^~~
include/linux/err.h:34:60: note: passing argument to parameter 'ptr' here
static inline bool __must_check IS_ERR(__force const void *ptr)
^
crypto/asymmetric_keys/asymmetric_type.c:91:59: warning: incompatible integer to
pointer conversion passing 'key_perm_t' (aka 'unsigned int') to parameter
of type 'const void *' [-Wint-conversion]
pr_debug("Request for key '%s' err %ld\n", req,
PTR_ERR(ref));
^~~
include/linux/printk.h:340:26: note: expanded from macro 'pr_debug'
dynamic_pr_debug(fmt, ##__VA_ARGS__)
^~~~~~~~~~~
include/linux/dynamic_debug.h:128:10: note: expanded from macro
'dynamic_pr_debug'
##__VA_ARGS__); \
^~~~~~~~~~~
include/linux/err.h:29:61: note: passing argument to parameter 'ptr' here
static inline long __must_check PTR_ERR(__force const void *ptr)
^
crypto/asymmetric_keys/asymmetric_type.c:94:13: warning: incompatible integer to
pointer conversion passing 'key_perm_t' (aka 'unsigned int') to parameter
of type 'const void *' [-Wint-conversion]
if (IS_ERR(ref)) {
^~~
include/linux/err.h:34:60: note: passing argument to parameter 'ptr' here
static inline bool __must_check IS_ERR(__force const void *ptr)
^
crypto/asymmetric_keys/asymmetric_type.c:95:19: warning: incompatible integer to
pointer conversion passing 'key_perm_t' (aka 'unsigned int') to parameter
of type 'const void *' [-Wint-conversion]
switch (PTR_ERR(ref)) {
^~~
include/linux/err.h:29:61: note: passing argument to parameter 'ptr' here
static inline long __must_check PTR_ERR(__force const void *ptr)
^
crypto/asymmetric_keys/asymmetric_type.c:102:20: warning: incompatible integer to
pointer conversion passing 'key_perm_t' (aka 'unsigned int') to parameter
of type 'const void *' [-Wint-conversion]
return ERR_CAST(ref);
^~~
include/linux/err.h:51:64: note: passing argument to parameter 'ptr' here
static inline void * __must_check ERR_CAST(__force const void *ptr)
^
> crypto/asymmetric_keys/asymmetric_type.c:251:24: warning:
declaration of 'struct key_match_data' will not be visible outside of this
function [-Wvisibility]
const struct
key_match_data *match_data)
^
> crypto/asymmetric_keys/asymmetric_type.c:254:55: error:
incomplete definition of type 'struct key_match_data'
const
struct asymmetric_key_id *match_id = match_data->preparsed;
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:251:24: note: forward declaration of
'struct key_match_data'
const struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:264:25: warning: declaration of 'struct
key_match_data' will not be visible outside of this function [-Wvisibility]
const struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:267:55: error: incomplete definition of type
'struct key_match_data'
const struct asymmetric_key_id *match_id = match_data->preparsed;
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:264:25: note: forward declaration of
'struct key_match_data'
const struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:286:49: warning: declaration of 'struct
key_match_data' will not be visible outside of this function [-Wvisibility]
static int asymmetric_key_match_preparse(struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:289:31: error: incomplete definition of type
'struct key_match_data'
const char *spec = match_data->raw_data;
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:286:49: note: forward declaration of
'struct key_match_data'
static int asymmetric_key_match_preparse(struct key_match_data *match_data)
^
> crypto/asymmetric_keys/asymmetric_type.c:291:9: error:
incompatible function pointer types initializing 'bool (*)(const struct key *, const
struct key_match_data *)' (aka '_Bool (*)(const struct key *, const struct
key_match_data *)') with an expression of type 'bool (const struct key *, const
struct key_match_data *)' (aka '_Bool (const struct key *, const struct
key_match_data *)') [-Werror,-Wincompatible-function-pointer-types]
bool (*cmp)(const struct key *, const struct key_match_data *) =
^
> crypto/asymmetric_keys/asymmetric_type.c:300:7: error:
incompatible function pointer types assigning to 'bool (*)(const struct key *, const
struct key_match_data *)' (aka '_Bool (*)(const struct key *, const struct
key_match_data *)') from 'bool (const struct key *, const struct key_match_data
*)' (aka '_Bool (const struct key *, const struct key_match_data *)')
[-Werror,-Wincompatible-function-pointer-types]
cmp =
asymmetric_key_cmp_partial;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
crypto/asymmetric_keys/asymmetric_type.c:313:12: error: incomplete definition of type
'struct key_match_data'
match_data->preparsed = match_id;
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:286:49: note: forward declaration of
'struct key_match_data'
static int asymmetric_key_match_preparse(struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:314:12: error: incomplete definition of type
'struct key_match_data'
match_data->cmp = cmp;
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:286:49: note: forward declaration of
'struct key_match_data'
static int asymmetric_key_match_preparse(struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:315:12: error: incomplete definition of type
'struct key_match_data'
match_data->lookup_type = KEYRING_SEARCH_LOOKUP_ITERATE;
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:286:49: note: forward declaration of
'struct key_match_data'
static int asymmetric_key_match_preparse(struct key_match_data *match_data)
^
> crypto/asymmetric_keys/asymmetric_type.c:315:28: error: use of
undeclared identifier 'KEYRING_SEARCH_LOOKUP_ITERATE'
match_data->lookup_type = KEYRING_SEARCH_LOOKUP_ITERATE;
^
crypto/asymmetric_keys/asymmetric_type.c:325:46: warning: declaration of 'struct
key_match_data' will not be visible outside of this function [-Wvisibility]
static void asymmetric_key_match_free(struct key_match_data *match_data)
^
crypto/asymmetric_keys/asymmetric_type.c:327:18: error: incomplete definition of type
'struct key_match_data'
kfree(match_data->preparsed);
~~~~~~~~~~^
crypto/asymmetric_keys/asymmetric_type.c:325:46: note: forward declaration of
'struct key_match_data'
static void asymmetric_key_match_free(struct key_match_data *match_data)
^
> crypto/asymmetric_keys/asymmetric_type.c:341:17: error:
incomplete definition of type 'struct key'
seq_puts(m,
key->description);
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/asymmetric_type.c:372:43: warning:
declaration of 'struct key_preparsed_payload' will not be visible outside of this
function [-Wvisibility]
static int asymmetric_key_preparse(struct
key_preparsed_payload *prep)
^
> crypto/asymmetric_keys/asymmetric_type.c:379:10: error:
incomplete definition of type 'struct key_preparsed_payload'
if
(prep->datalen == 0)
~~~~^
crypto/asymmetric_keys/asymmetric_type.c:372:43: note: forward declaration of
'struct key_preparsed_payload'
static int asymmetric_key_preparse(struct key_preparsed_payload *prep)
^
> crypto/asymmetric_keys/asymmetric_type.c:388:23: error:
incompatible pointer types passing 'struct key_preparsed_payload *' to parameter
of type 'struct key_preparsed_payload *' [-Werror,-Wincompatible-pointer-types]
ret = parser->parse(prep);
^~~~
crypto/asymmetric_keys/asymmetric_type.c:418:49: warning: declaration of 'struct
key_preparsed_payload' will not be visible outside of this function [-Wvisibility]
static void asymmetric_key_free_preparse(struct key_preparsed_payload *prep)
^
crypto/asymmetric_keys/asymmetric_type.c:420:47: error: incomplete definition of type
'struct key_preparsed_payload'
struct asymmetric_key_subtype *subtype = prep->payload.data[asym_subtype];
~~~~^
crypto/asymmetric_keys/asymmetric_type.c:418:49: note: forward declaration of
'struct key_preparsed_payload'
static void asymmetric_key_free_preparse(struct key_preparsed_payload *prep)
^
crypto/asymmetric_keys/asymmetric_type.c:421:40: error: incomplete definition of type
'struct key_preparsed_payload'
struct asymmetric_key_ids *kids = prep->payload.data[asym_key_ids];
~~~~^
crypto/asymmetric_keys/asymmetric_type.c:418:49: note: forward declaration of
'struct key_preparsed_payload'
static void asymmetric_key_free_preparse(struct key_preparsed_payload *prep)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
12 warnings and 20 errors generated.
--
In file included from crypto/asymmetric_keys/restrict.c:17:
In file included from crypto/asymmetric_keys/asymmetric_keys.h:12:
> include/keys/asymmetric-type.h:76:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_key_ids];
~~~^
include/crypto/public_key.h:49:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/restrict.c:91:15: error: incomplete
definition of type 'union key_payload'
sig =
payload->data[asym_auth];
~~~~~~~^
include/crypto/public_key.h:51:7: note: forward declaration of 'union
key_payload'
union key_payload;
^
> crypto/asymmetric_keys/restrict.c:107:58: error: incomplete
definition of type 'struct key'
if (use_builtin_keys &&
!test_bit(KEY_FLAG_BUILTIN, &key->flags))
~~~^
include/crypto/public_key.h:49:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/restrict.c:107:36: error: use of
undeclared identifier 'KEY_FLAG_BUILTIN'
if (use_builtin_keys
&& !test_bit(KEY_FLAG_BUILTIN, &key->flags))
^
crypto/asymmetric_keys/restrict.c:135:23: error: incomplete definition of type
'struct key'
else if (dest_keyring->type != &key_type_keyring)
~~~~~~~~~~~~^
include/crypto/public_key.h:49:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/restrict.c:135:34: error: use of
undeclared identifier 'key_type_keyring'; did you mean 'dest_keyring'?
else if (dest_keyring->type != &key_type_keyring)
^~~~~~~~~~~~~~~~
dest_keyring
crypto/asymmetric_keys/restrict.c:122:46: note: 'dest_keyring' declared here
static int key_or_keyring_common(struct key *dest_keyring,
^
crypto/asymmetric_keys/restrict.c:144:15: error: incomplete definition of type
'union key_payload'
sig = payload->data[asym_auth];
~~~~~~~^
include/crypto/public_key.h:51:7: note: forward declaration of 'union
key_payload'
union key_payload;
^
crypto/asymmetric_keys/restrict.c:151:14: error: incomplete definition of type
'struct key'
if (trusted->type == &key_type_keyring) {
~~~~~~~^
include/crypto/public_key.h:49:8: note: forward declaration of 'struct key'
struct key;
^
crypto/asymmetric_keys/restrict.c:151:25: error: use of undeclared identifier
'key_type_keyring'; did you mean 'dest_keyring'?
if (trusted->type == &key_type_keyring) {
^~~~~~~~~~~~~~~~
dest_keyring
crypto/asymmetric_keys/restrict.c:122:46: note: 'dest_keyring' declared here
static int key_or_keyring_common(struct key *dest_keyring,
^
crypto/asymmetric_keys/restrict.c:157:21: error: incomplete definition of type
'struct key'
} else if (trusted->type == &key_type_asymmetric) {
~~~~~~~^
include/crypto/public_key.h:49:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/restrict.c:184:12: error: implicit
declaration of function '__key_get' [-Werror,-Wimplicit-function-declaration]
key = __key_get(trusted);
^
> crypto/asymmetric_keys/restrict.c:184:10: warning: incompatible
integer to pointer conversion assigning to 'struct key *' from 'int'
[-Wint-conversion]
key =
__key_get(trusted);
^ ~~~~~~~~~~~~~~~~~~
crypto/asymmetric_keys/restrict.c:190:11: error: implicit declaration of function
'__key_get' [-Werror,-Wimplicit-function-declaration]
key = __key_get(trusted);
^
crypto/asymmetric_keys/restrict.c:190:9: warning: incompatible integer to pointer
conversion assigning to 'struct key *' from 'int' [-Wint-conversion]
key = __key_get(trusted);
^ ~~~~~~~~~~~~~~~~~~
2 warnings and 12 errors generated.
--
In file included from crypto/asymmetric_keys/signature.c:15:
In file included from include/keys/asymmetric-subtype.h:18:
> include/keys/asymmetric-type.h:76:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_key_ids];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
In file included from crypto/asymmetric_keys/signature.c:15:
> include/keys/asymmetric-subtype.h:52:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_subtype];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/signature.c:54:9: error: incomplete
definition of type 'struct key'
if (key->type !=
&key_type_asymmetric)
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
crypto/asymmetric_keys/signature.c:58:10: error: incomplete definition of type
'struct key'
!key->payload.data[0])
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
4 errors generated.
--
In file included from crypto/asymmetric_keys/public_key.c:21:
In file included from include/keys/asymmetric-subtype.h:18:
> include/keys/asymmetric-type.h:76:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_key_ids];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
In file included from crypto/asymmetric_keys/public_key.c:21:
> include/keys/asymmetric-subtype.h:52:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_subtype];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
> crypto/asymmetric_keys/public_key.c:35:41: error: incomplete
definition of type 'struct key'
struct public_key *key =
asymmetric_key->payload.data[asym_crypto];
~~~~~~~~~~~~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
crypto/asymmetric_keys/public_key.c:157:35: error: incomplete definition of type
'struct key'
const struct public_key *pk = key->payload.data[asym_crypto];
~~~^
include/linux/key.h:38:8: note: forward declaration of 'struct key'
struct key;
^
4 errors generated.
--
In file included from crypto/asymmetric_keys/x509_cert_parser.c:19:
In file included from crypto/asymmetric_keys/x509_parser.h:14:
> include/keys/asymmetric-type.h:76:12: error: incomplete
definition of type 'struct key'
return
key->payload.data[asym_key_ids];
~~~^
include/crypto/public_key.h:49:8: note: forward declaration of 'struct key'
struct key;
^
1 error generated.
..
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for ASYMMETRIC_KEY_TYPE
Depends on CRYPTO && KEYS
Selected by
- INCREMENTAL_FS && BLOCK
WARNING: unmet direct dependencies detected for WIRELESS_EXT
Depends on NET && WIRELESS
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_CORE
Depends on NET && WIRELESS && (CFG80211_WEXT || WIRELESS_EXT
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for SND_VMASTER
Depends on SOUND && !UML && SND
Selected by
- GKI_HIDDEN_SND_CONFIGS
WARNING: unmet direct dependencies detected for WEXT_PROC
Depends on NET && WIRELESS && PROC_FS && WEXT_CORE
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_PRIV
Depends on NET && WIRELESS
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_SPY
Depends on NET && WIRELESS
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
vim +76 include/keys/asymmetric-type.h
7901c1a8effbe5 David Howells 2014-09-16 62
7901c1a8effbe5 David Howells 2014-09-16 63 extern bool asymmetric_key_id_same(const
struct asymmetric_key_id *kid1,
7901c1a8effbe5 David Howells 2014-09-16 64 const struct asymmetric_key_id
*kid2);
7901c1a8effbe5 David Howells 2014-09-16 65
f1b731dbc2530c Dmitry Kasatkin 2014-10-06 66 extern bool asymmetric_key_id_partial(const
struct asymmetric_key_id *kid1,
f1b731dbc2530c Dmitry Kasatkin 2014-10-06 67 const struct asymmetric_key_id
*kid2);
f1b731dbc2530c Dmitry Kasatkin 2014-10-06 68
7901c1a8effbe5 David Howells 2014-09-16 69 extern struct asymmetric_key_id
*asymmetric_key_generate_id(const void *val_1,
7901c1a8effbe5 David Howells 2014-09-16 70 size_t len_1,
7901c1a8effbe5 David Howells 2014-09-16 71 const void *val_2,
7901c1a8effbe5 David Howells 2014-09-16 72 size_t len_2);
146aa8b1453bd8 David Howells 2015-10-21 73 static inline
146aa8b1453bd8 David Howells 2015-10-21 74 const struct asymmetric_key_ids
*asymmetric_key_ids(const struct key *key)
146aa8b1453bd8 David Howells 2015-10-21 75 {
146aa8b1453bd8 David Howells 2015-10-21 @76 return
key->payload.data[asym_key_ids];
146aa8b1453bd8 David Howells 2015-10-21 77 }
7901c1a8effbe5 David Howells 2014-09-16 78
:::::: The code at line 76 was first introduced by commit
:::::: 146aa8b1453bd8f1ff2304ffb71b4ee0eb9acdcc KEYS: Merge the type-specific data with
the payload data
:::::: TO: David Howells <dhowells(a)redhat.com>
:::::: CC: David Howells <dhowells(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org