From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [android-common:android13-5.10 1/1] include/../security/keys/internal.h:109:8: error: unknown type name 'key_ref_t'
Date: Fri, 17 Jul 2026 23:09:02 +0800 [thread overview]
Message-ID: <202607172309.ESjAtQk6-lkp@intel.com> (raw)
tree: https://android.googlesource.com/kernel/common android13-5.10
head: 2a1505f4186ef01095fe97a2592cc058696bbfa8
commit: 7108d9d0e5f2ff1a531dd36714c68a330ba84823 [1/1] ANDROID: remove inclusions from hook definition headers
config: arm64-randconfig-004-20260717 (https://download.01.org/0day-ci/archive/20260717/202607172309.ESjAtQk6-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260717/202607172309.ESjAtQk6-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202607172309.ESjAtQk6-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from drivers/android/vendor_hooks.c:28:
>> include/../security/keys/internal.h:91:38: warning: 'struct keyring_index_key' declared inside parameter list will not be visible outside of this definition or declaration
91 | extern void key_set_index_key(struct keyring_index_key *index_key);
| ^~~~~~~~~~~~~~~~~
include/../security/keys/internal.h:96:20: warning: 'struct keyring_index_key' declared inside parameter list will not be visible outside of this definition or declaration
96 | const struct keyring_index_key *index_key);
| ^~~~~~~~~~~~~~~~~
include/../security/keys/internal.h:98:20: warning: 'struct keyring_index_key' declared inside parameter list will not be visible outside of this definition or declaration
98 | const struct keyring_index_key *index_key);
| ^~~~~~~~~~~~~~~~~
>> include/../security/keys/internal.h:101:15: warning: 'struct assoc_array_edit' declared inside parameter list will not be visible outside of this definition or declaration
101 | struct assoc_array_edit **_edit);
| ^~~~~~~~~~~~~~~~
include/../security/keys/internal.h:100:21: warning: 'struct keyring_index_key' declared inside parameter list will not be visible outside of this definition or declaration
100 | const struct keyring_index_key *index_key,
| ^~~~~~~~~~~~~~~~~
include/../security/keys/internal.h:104:17: warning: 'struct assoc_array_edit' declared inside parameter list will not be visible outside of this definition or declaration
104 | struct assoc_array_edit **_edit);
| ^~~~~~~~~~~~~~~~
include/../security/keys/internal.h:107:14: warning: 'struct assoc_array_edit' declared inside parameter list will not be visible outside of this definition or declaration
107 | struct assoc_array_edit *edit);
| ^~~~~~~~~~~~~~~~
include/../security/keys/internal.h:106:20: warning: 'struct keyring_index_key' declared inside parameter list will not be visible outside of this definition or declaration
106 | const struct keyring_index_key *index_key,
| ^~~~~~~~~~~~~~~~~
>> include/../security/keys/internal.h:109:8: error: unknown type name 'key_ref_t'
109 | extern key_ref_t find_key_to_update(key_ref_t keyring_ref,
| ^~~~~~~~~
include/../security/keys/internal.h:109:37: error: unknown type name 'key_ref_t'; did you mean 'key_ref_put'?
109 | extern key_ref_t find_key_to_update(key_ref_t keyring_ref,
| ^~~~~~~~~
| key_ref_put
>> include/../security/keys/internal.h:120:27: error: field 'index_key' has incomplete type
120 | struct keyring_index_key index_key;
| ^~~~~~~~~
>> include/../security/keys/internal.h:122:24: error: field 'match_data' has incomplete type
122 | struct key_match_data match_data;
| ^~~~~~~~~~
include/../security/keys/internal.h:137:2: error: unknown type name 'key_ref_t'
137 | key_ref_t result;
| ^~~~~~~~~
include/../security/keys/internal.h:143:8: error: unknown type name 'key_ref_t'
143 | extern key_ref_t keyring_search_rcu(key_ref_t keyring_ref,
| ^~~~~~~~~
include/../security/keys/internal.h:143:37: error: unknown type name 'key_ref_t'; did you mean 'key_ref_put'?
143 | extern key_ref_t keyring_search_rcu(key_ref_t keyring_ref,
| ^~~~~~~~~
| key_ref_put
include/../security/keys/internal.h:146:8: error: unknown type name 'key_ref_t'
146 | extern key_ref_t search_cred_keyrings_rcu(struct keyring_search_context *ctx);
| ^~~~~~~~~
include/../security/keys/internal.h:147:8: error: unknown type name 'key_ref_t'
147 | extern key_ref_t search_process_keyrings_rcu(struct keyring_search_context *ctx);
| ^~~~~~~~~
>> include/../security/keys/internal.h:159:13: warning: 'struct key_tag' declared inside parameter list will not be visible outside of this definition or declaration
159 | struct key_tag *domain_tag,
| ^~~~~~~
include/../security/keys/internal.h:183:38: error: unknown type name 'key_ref_t'
183 | extern int key_task_permission(const key_ref_t key_ref,
| ^~~~~~~~~
>> include/../security/keys/internal.h:185:16: warning: 'enum key_need_perm' declared inside parameter list will not be visible outside of this definition or declaration
185 | enum key_need_perm need_perm);
| ^~~~~~~~~~~~~
include/../security/keys/internal.h:207:40: error: unknown type name 'key_ref_t'
207 | static inline int key_permission(const key_ref_t key_ref,
| ^~~~~~~~~
include/../security/keys/internal.h:208:11: warning: 'enum key_need_perm' declared inside parameter list will not be visible outside of this definition or declaration
208 | enum key_need_perm need_perm)
| ^~~~~~~~~~~~~
>> include/../security/keys/internal.h:208:25: error: parameter 2 ('need_perm') has incomplete type
208 | enum key_need_perm need_perm)
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>> include/../security/keys/internal.h:207:19: error: function declaration isn't a prototype [-Werror=strict-prototypes]
207 | static inline int key_permission(const key_ref_t key_ref,
| ^~~~~~~~~~~~~~
include/../security/keys/internal.h: In function 'key_permission':
>> include/../security/keys/internal.h:210:54: error: type of formal parameter 3 is incomplete
210 | return key_task_permission(key_ref, current_cred(), need_perm);
| ^~~~~~~~~
include/../security/keys/internal.h: In function 'key_is_dead':
>> include/../security/keys/internal.h:228:6: error: dereferencing pointer to incomplete type 'const struct key'
228 | key->flags & ((1 << KEY_FLAG_DEAD) |
| ^~
>> include/../security/keys/internal.h:228:23: error: 'KEY_FLAG_DEAD' undeclared (first use in this function); did you mean 'QUEUE_FLAG_DEAD'?
228 | key->flags & ((1 << KEY_FLAG_DEAD) |
| ^~~~~~~~~~~~~
| QUEUE_FLAG_DEAD
include/../security/keys/internal.h:228:23: note: each undeclared identifier is reported only once for each function it appears in
>> include/../security/keys/internal.h:229:16: error: 'KEY_FLAG_INVALIDATED' undeclared (first use in this function); did you mean 'KEYCTL_INVALIDATE'?
229 | (1 << KEY_FLAG_INVALIDATED)) ||
| ^~~~~~~~~~~~~~~~~~~~
| KEYCTL_INVALIDATE
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/suspend.h:26,
from drivers/android/vendor_hooks.c:98:
At top level:
include/trace/trace_events.h:27:23: warning: 'str__suspend__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:27:23: note: in definition of macro '__app__'
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:30:29: note: in expansion of macro '__app'
30 | #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
| ^~~~~
include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING'
33 | static const char TRACE_SYSTEM_STRING[] = \
| ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR'
36 | TRACE_MAKE_SYSTEM_STR();
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/pci.h:24,
from drivers/android/vendor_hooks.c:97:
include/trace/trace_events.h:27:23: warning: 'str__pci__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:27:23: note: in definition of macro '__app__'
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:30:29: note: in expansion of macro '__app'
30 | #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
| ^~~~~
include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING'
33 | static const char TRACE_SYSTEM_STRING[] = \
| ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR'
36 | TRACE_MAKE_SYSTEM_STR();
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/gup.h:33,
from drivers/android/vendor_hooks.c:96:
include/trace/trace_events.h:27:23: warning: 'str__gup__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:27:23: note: in definition of macro '__app__'
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:30:29: note: in expansion of macro '__app'
30 | #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
| ^~~~~
include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING'
33 | static const char TRACE_SYSTEM_STRING[] = \
| ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR'
36 | TRACE_MAKE_SYSTEM_STR();
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/snd_compr.h:23,
from drivers/android/vendor_hooks.c:95:
include/trace/trace_events.h:27:23: warning: 'str__snd_compr__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:27:23: note: in definition of macro '__app__'
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:30:29: note: in expansion of macro '__app'
30 | #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
| ^~~~~
include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING'
33 | static const char TRACE_SYSTEM_STRING[] = \
| ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR'
36 | TRACE_MAKE_SYSTEM_STR();
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/sound.h:19,
from drivers/android/vendor_hooks.c:94:
include/trace/trace_events.h:27:23: warning: 'str__sound__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:27:23: note: in definition of macro '__app__'
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:30:29: note: in expansion of macro '__app'
30 | #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
| ^~~~~
include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING'
33 | static const char TRACE_SYSTEM_STRING[] = \
| ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR'
36 | TRACE_MAKE_SYSTEM_STR();
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/ipv6.h:21,
from drivers/android/vendor_hooks.c:93:
include/trace/trace_events.h:27:23: warning: 'str__ipv6__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for USB_PHY
Depends on [n]: USB_SUPPORT [=n]
Selected by [y]:
- GKI_HIDDEN_USB_CONFIGS [=y]
WARNING: unmet direct dependencies detected for WEXT_PRIV
Depends on [n]: NET [=y] && WIRELESS [=n]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for WEXT_SPY
Depends on [n]: NET [=y] && WIRELESS [=n]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for WIRELESS_EXT
Depends on [n]: NET [=y] && WIRELESS [=n]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for WEXT_CORE
Depends on [n]: NET [=y] && WIRELESS [=n] && (CFG80211_WEXT [=n] || WIRELESS_EXT [=y])
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for SND_VMASTER
Depends on [n]: SOUND [=n] && !UML && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_PCM_IEC958
Depends on [n]: SOUND [=n] && !UML && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_SOC_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK
Depends on [n]: SOUND [=n] && !UML && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK_INPUT_DEV
Depends on [n]: SOUND [=n] && !UML && SND [=n] && SND_JACK [=y]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_PCM_ELD
Depends on [n]: SOUND [=n] && !UML && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for WEXT_PROC
Depends on [n]: NET [=y] && WIRELESS [=n] && PROC_FS [=n] && WEXT_CORE [=y]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
vim +/key_ref_t +109 include/../security/keys/internal.h
^1da177e4c3f41 Linus Torvalds 2005-04-16 90
355ef8e1588502 David Howells 2019-06-26 @91 extern void key_set_index_key(struct keyring_index_key *index_key);
e9e349b051d987 David Howells 2008-11-14 92 extern struct key_type *key_type_lookup(const char *type);
e9e349b051d987 David Howells 2008-11-14 93 extern void key_type_put(struct key_type *ktype);
e9e349b051d987 David Howells 2008-11-14 94
df593ee23e05cd David Howells 2019-05-30 95 extern int __key_link_lock(struct key *keyring,
df593ee23e05cd David Howells 2019-05-30 96 const struct keyring_index_key *index_key);
ed0ac5c7ec3763 David Howells 2019-05-20 97 extern int __key_move_lock(struct key *l_keyring, struct key *u_keyring,
ed0ac5c7ec3763 David Howells 2019-05-20 98 const struct keyring_index_key *index_key);
f70e2e06196ad4 David Howells 2010-04-30 99 extern int __key_link_begin(struct key *keyring,
16feef4340172b David Howells 2013-09-24 100 const struct keyring_index_key *index_key,
b2a4df200d570b David Howells 2013-09-24 @101 struct assoc_array_edit **_edit);
f70e2e06196ad4 David Howells 2010-04-30 102 extern int __key_link_check_live_key(struct key *keyring, struct key *key);
f7e47677e39a03 David Howells 2020-01-14 103 extern void __key_link(struct key *keyring, struct key *key,
f7e47677e39a03 David Howells 2020-01-14 104 struct assoc_array_edit **_edit);
f70e2e06196ad4 David Howells 2010-04-30 105 extern void __key_link_end(struct key *keyring,
16feef4340172b David Howells 2013-09-24 106 const struct keyring_index_key *index_key,
b2a4df200d570b David Howells 2013-09-24 107 struct assoc_array_edit *edit);
^1da177e4c3f41 Linus Torvalds 2005-04-16 108
b2a4df200d570b David Howells 2013-09-24 @109 extern key_ref_t find_key_to_update(key_ref_t keyring_ref,
e57e8669f2ab83 David Howells 2013-09-24 110 const struct keyring_index_key *index_key);
^1da177e4c3f41 Linus Torvalds 2005-04-16 111
3e30148c3d524a David Howells 2005-06-23 112 extern struct key *keyring_search_instkey(struct key *keyring,
3e30148c3d524a David Howells 2005-06-23 113 key_serial_t target_id);
3e30148c3d524a David Howells 2005-06-23 114
b2a4df200d570b David Howells 2013-09-24 115 extern int iterate_over_keyring(const struct key *keyring,
b2a4df200d570b David Howells 2013-09-24 116 int (*func)(const struct key *key, void *data),
b2a4df200d570b David Howells 2013-09-24 117 void *data);
b2a4df200d570b David Howells 2013-09-24 118
4bdf0bc3003141 David Howells 2013-09-24 119 struct keyring_search_context {
4bdf0bc3003141 David Howells 2013-09-24 @120 struct keyring_index_key index_key;
4bdf0bc3003141 David Howells 2013-09-24 121 const struct cred *cred;
462919591a1791 David Howells 2014-09-16 @122 struct key_match_data match_data;
4bdf0bc3003141 David Howells 2013-09-24 123 unsigned flags;
614d8c39014c18 David Howells 2014-09-16 124 #define KEYRING_SEARCH_NO_STATE_CHECK 0x0001 /* Skip state checks */
614d8c39014c18 David Howells 2014-09-16 125 #define KEYRING_SEARCH_DO_STATE_CHECK 0x0002 /* Override NO_STATE_CHECK */
614d8c39014c18 David Howells 2014-09-16 126 #define KEYRING_SEARCH_NO_UPDATE_TIME 0x0004 /* Don't update times */
614d8c39014c18 David Howells 2014-09-16 127 #define KEYRING_SEARCH_NO_CHECK_PERM 0x0008 /* Don't check permissions */
614d8c39014c18 David Howells 2014-09-16 128 #define KEYRING_SEARCH_DETECT_TOO_DEEP 0x0010 /* Give an error on excessive depth */
0b0a84154eff56 David Howells 2014-12-01 129 #define KEYRING_SEARCH_SKIP_EXPIRED 0x0020 /* Ignore expired keys (intention to replace) */
dcf49dbc8077e2 David Howells 2019-06-26 130 #define KEYRING_SEARCH_RECURSE 0x0040 /* Search child keyrings also */
4bdf0bc3003141 David Howells 2013-09-24 131
b2a4df200d570b David Howells 2013-09-24 132 int (*iterator)(const void *object, void *iterator_data);
b2a4df200d570b David Howells 2013-09-24 133
4bdf0bc3003141 David Howells 2013-09-24 134 /* Internal stuff */
4bdf0bc3003141 David Howells 2013-09-24 135 int skipped_ret;
4bdf0bc3003141 David Howells 2013-09-24 136 bool possessed;
4bdf0bc3003141 David Howells 2013-09-24 137 key_ref_t result;
074d58989569b3 Baolin Wang 2017-11-15 138 time64_t now;
4bdf0bc3003141 David Howells 2013-09-24 139 };
4bdf0bc3003141 David Howells 2013-09-24 140
0c903ab64feb0f David Howells 2014-09-16 141 extern bool key_default_cmp(const struct key *key,
c06cfb08b88dfb David Howells 2014-09-16 142 const struct key_match_data *match_data);
e59428f721ee09 David Howells 2019-06-19 143 extern key_ref_t keyring_search_rcu(key_ref_t keyring_ref,
4bdf0bc3003141 David Howells 2013-09-24 144 struct keyring_search_context *ctx);
4bdf0bc3003141 David Howells 2013-09-24 145
e59428f721ee09 David Howells 2019-06-19 146 extern key_ref_t search_cred_keyrings_rcu(struct keyring_search_context *ctx);
e59428f721ee09 David Howells 2019-06-19 147 extern key_ref_t search_process_keyrings_rcu(struct keyring_search_context *ctx);
^1da177e4c3f41 Linus Torvalds 2005-04-16 148
237bbd29f7a049 Eric Biggers 2017-09-18 149 extern struct key *find_keyring_by_name(const char *name, bool uid_keyring);
^1da177e4c3f41 Linus Torvalds 2005-04-16 150
0f44e4d976f96c David Howells 2019-06-26 151 extern int look_up_user_keyrings(struct key **, struct key **);
0f44e4d976f96c David Howells 2019-06-26 152 extern struct key *get_user_session_keyring_rcu(const struct cred *);
d84f4f992cbd76 David Howells 2008-11-14 153 extern int install_thread_keyring_to_cred(struct cred *);
d84f4f992cbd76 David Howells 2008-11-14 154 extern int install_process_keyring_to_cred(struct cred *);
685bfd2c48bb32 Oleg Nesterov 2010-05-26 155 extern int install_session_keyring_to_cred(struct cred *, struct key *);
3e30148c3d524a David Howells 2005-06-23 156
3e30148c3d524a David Howells 2005-06-23 157 extern struct key *request_key_and_link(struct key_type *type,
3e30148c3d524a David Howells 2005-06-23 158 const char *description,
a58946c158a040 David Howells 2019-06-26 @159 struct key_tag *domain_tag,
4a38e122e2cc62 David Howells 2008-04-29 160 const void *callout_info,
4a38e122e2cc62 David Howells 2008-04-29 161 size_t callout_len,
4e54f08543d05e David Howells 2006-06-29 162 void *aux,
7e047ef5fe2d52 David Howells 2006-06-26 163 struct key *dest_keyring,
7e047ef5fe2d52 David Howells 2006-06-26 164 unsigned long flags);
3e30148c3d524a David Howells 2005-06-23 165
0c903ab64feb0f David Howells 2014-09-16 166 extern bool lookup_user_key_possessed(const struct key *key,
462919591a1791 David Howells 2014-09-16 167 const struct key_match_data *match_data);
5593122eec26b0 David Howells 2009-09-02 168 #define KEY_LOOKUP_CREATE 0x01
5593122eec26b0 David Howells 2009-09-02 169 #define KEY_LOOKUP_PARTIAL 0x02
e9e349b051d987 David Howells 2008-11-14 170
e9e349b051d987 David Howells 2008-11-14 171 extern long join_session_keyring(const char *name);
67d1214551e800 Al Viro 2012-06-27 172 extern void key_change_session_keyring(struct callback_head *twork);
e9e349b051d987 David Howells 2008-11-14 173
0c061b5707ab84 David Howells 2011-08-22 174 extern struct work_struct key_gc_work;
5d135440faf7db David Howells 2009-09-02 175 extern unsigned key_gc_delay;
074d58989569b3 Baolin Wang 2017-11-15 176 extern void keyring_gc(struct key *keyring, time64_t limit);
2b6aa412ff23a0 Mat Martineau 2016-08-31 177 extern void keyring_restriction_gc(struct key *keyring,
2b6aa412ff23a0 Mat Martineau 2016-08-31 178 struct key_type *dead_type);
074d58989569b3 Baolin Wang 2017-11-15 179 extern void key_schedule_gc(time64_t gc_at);
fd75815f727f15 David Howells 2012-05-11 180 extern void key_schedule_gc_links(void);
0c061b5707ab84 David Howells 2011-08-22 181 extern void key_gc_keytype(struct key_type *ktype);
5d135440faf7db David Howells 2009-09-02 182
e9e349b051d987 David Howells 2008-11-14 183 extern int key_task_permission(const key_ref_t key_ref,
d84f4f992cbd76 David Howells 2008-11-14 184 const struct cred *cred,
8c0637e950d689 David Howells 2020-05-12 @185 enum key_need_perm need_perm);
e9e349b051d987 David Howells 2008-11-14 186
f7e47677e39a03 David Howells 2020-01-14 187 static inline void notify_key(struct key *key,
f7e47677e39a03 David Howells 2020-01-14 188 enum key_notification_subtype subtype, u32 aux)
f7e47677e39a03 David Howells 2020-01-14 189 {
f7e47677e39a03 David Howells 2020-01-14 190 #ifdef CONFIG_KEY_NOTIFICATIONS
f7e47677e39a03 David Howells 2020-01-14 191 struct key_notification n = {
f7e47677e39a03 David Howells 2020-01-14 192 .watch.type = WATCH_TYPE_KEY_NOTIFY,
f7e47677e39a03 David Howells 2020-01-14 193 .watch.subtype = subtype,
f7e47677e39a03 David Howells 2020-01-14 194 .watch.info = watch_sizeof(n),
f7e47677e39a03 David Howells 2020-01-14 195 .key_id = key_serial(key),
f7e47677e39a03 David Howells 2020-01-14 196 .aux = aux,
f7e47677e39a03 David Howells 2020-01-14 197 };
f7e47677e39a03 David Howells 2020-01-14 198
f7e47677e39a03 David Howells 2020-01-14 199 post_watch_notification(key->watchers, &n.watch, current_cred(),
f7e47677e39a03 David Howells 2020-01-14 200 n.key_id);
f7e47677e39a03 David Howells 2020-01-14 201 #endif
f7e47677e39a03 David Howells 2020-01-14 202 }
e9e349b051d987 David Howells 2008-11-14 203
973c9f4f49ca96 David Howells 2011-01-20 204 /*
973c9f4f49ca96 David Howells 2011-01-20 205 * Check to see whether permission is granted to use a key in the desired way.
973c9f4f49ca96 David Howells 2011-01-20 206 */
8c0637e950d689 David Howells 2020-05-12 @207 static inline int key_permission(const key_ref_t key_ref,
8c0637e950d689 David Howells 2020-05-12 @208 enum key_need_perm need_perm)
e9e349b051d987 David Howells 2008-11-14 209 {
8c0637e950d689 David Howells 2020-05-12 @210 return key_task_permission(key_ref, current_cred(), need_perm);
e9e349b051d987 David Howells 2008-11-14 211 }
e9e349b051d987 David Howells 2008-11-14 212
3e30148c3d524a David Howells 2005-06-23 213 extern struct key_type key_type_request_key_auth;
3e30148c3d524a David Howells 2005-06-23 214 extern struct key *request_key_auth_new(struct key *target,
822ad64d7e46a8 David Howells 2019-02-14 215 const char *op,
4a38e122e2cc62 David Howells 2008-04-29 216 const void *callout_info,
8bbf4976b59fc9 David Howells 2008-11-14 217 size_t callout_len,
8bbf4976b59fc9 David Howells 2008-11-14 218 struct key *dest_keyring);
3e30148c3d524a David Howells 2005-06-23 219
3e30148c3d524a David Howells 2005-06-23 220 extern struct key *key_get_instantiation_authkey(key_serial_t target_id);
^1da177e4c3f41 Linus Torvalds 2005-04-16 221
fd75815f727f15 David Howells 2012-05-11 222 /*
fd75815f727f15 David Howells 2012-05-11 223 * Determine whether a key is dead.
fd75815f727f15 David Howells 2012-05-11 224 */
074d58989569b3 Baolin Wang 2017-11-15 225 static inline bool key_is_dead(const struct key *key, time64_t limit)
fd75815f727f15 David Howells 2012-05-11 226 {
fd75815f727f15 David Howells 2012-05-11 227 return
fd75815f727f15 David Howells 2012-05-11 @228 key->flags & ((1 << KEY_FLAG_DEAD) |
fd75815f727f15 David Howells 2012-05-11 @229 (1 << KEY_FLAG_INVALIDATED)) ||
218e6424e711ce David Howells 2019-06-26 230 (key->expiry > 0 && key->expiry <= limit) ||
218e6424e711ce David Howells 2019-06-26 231 key->domain_tag->removed;
fd75815f727f15 David Howells 2012-05-11 232 }
fd75815f727f15 David Howells 2012-05-11 233
:::::: The code at line 109 was first introduced by commit
:::::: b2a4df200d570b2c33a57e1ebfa5896e4bc81b69 KEYS: Expand the capacity of a keyring
:::::: TO: David Howells <dhowells@redhat.com>
:::::: CC: David Howells <dhowells@redhat.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-07-17 15:09 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202607172309.ESjAtQk6-lkp@intel.com \
--to=lkp@intel.com \
--cc=cros-kernel-buildreports@googlegroups.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.