All of lore.kernel.org
 help / color / mirror / Atom feed
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.