diff options
Diffstat (limited to 'security/keys/request_key.c')
| -rw-r--r-- | security/keys/request_key.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/security/keys/request_key.c b/security/keys/request_key.c index cc3790315d2f..000e75017520 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c | |||
| @@ -93,16 +93,9 @@ static void umh_keys_cleanup(struct subprocess_info *info) | |||
| 93 | static int call_usermodehelper_keys(char *path, char **argv, char **envp, | 93 | static int call_usermodehelper_keys(char *path, char **argv, char **envp, |
| 94 | struct key *session_keyring, int wait) | 94 | struct key *session_keyring, int wait) |
| 95 | { | 95 | { |
| 96 | gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL; | 96 | return call_usermodehelper_fns(path, argv, envp, wait, |
| 97 | struct subprocess_info *info = | 97 | umh_keys_init, umh_keys_cleanup, |
| 98 | call_usermodehelper_setup(path, argv, envp, gfp_mask); | 98 | key_get(session_keyring)); |
| 99 | |||
| 100 | if (!info) | ||
| 101 | return -ENOMEM; | ||
| 102 | |||
| 103 | call_usermodehelper_setfns(info, umh_keys_init, umh_keys_cleanup, | ||
| 104 | key_get(session_keyring)); | ||
| 105 | return call_usermodehelper_exec(info, wait); | ||
| 106 | } | 99 | } |
| 107 | 100 | ||
| 108 | /* | 101 | /* |
