[dm-devel] [dm:for-next 27/28] drivers/md/dm-crypt.c:2281: undefined reference to `key_type_encrypted'

Mike Snitzer snitzer at redhat.com
Wed Apr 22 21:25:38 UTC 2020


I fixed this ~3 minutes after pushing.. amazing how quick the kbuild test robot is!

But thanks,
Mike

On Wed, Apr 22 2020 at  5:21pm -0400,
kbuild test robot <lkp at intel.com> wrote:

> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
> head:   2d56364c7c7ba64576c37a16c8af98f66b4bb16b
> commit: 5cacab0334b940164ad6aac39712f4d3b06076bc [27/28] dm crypt: support using encrypted keys
> config: i386-randconfig-e001-20200421 (attached as .config)
> compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
> reproduce:
>         git checkout 5cacab0334b940164ad6aac39712f4d3b06076bc
>         # save the attached .config to linux build tree
>         make ARCH=i386 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <lkp at intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>    ld: drivers/md/dm-crypt.o: in function `crypt_set_keyring_key':
> >> drivers/md/dm-crypt.c:2281: undefined reference to `key_type_encrypted'
> 
> vim +2281 drivers/md/dm-crypt.c
> 
>   2251	
>   2252	static int crypt_set_keyring_key(struct crypt_config *cc, const char *key_string)
>   2253	{
>   2254		char *new_key_string, *key_desc;
>   2255		int ret;
>   2256		struct key_type *type;
>   2257		struct key *key;
>   2258		int (*set_key)(struct crypt_config *cc, struct key *key);
>   2259	
>   2260		/*
>   2261		 * Reject key_string with whitespace. dm core currently lacks code for
>   2262		 * proper whitespace escaping in arguments on DM_TABLE_STATUS path.
>   2263		 */
>   2264		if (contains_whitespace(key_string)) {
>   2265			DMERR("whitespace chars not allowed in key string");
>   2266			return -EINVAL;
>   2267		}
>   2268	
>   2269		/* look for next ':' separating key_type from key_description */
>   2270		key_desc = strpbrk(key_string, ":");
>   2271		if (!key_desc || key_desc == key_string || !strlen(key_desc + 1))
>   2272			return -EINVAL;
>   2273	
>   2274		if (!strncmp(key_string, "logon:", key_desc - key_string + 1)) {
>   2275			type = &key_type_logon;
>   2276			set_key = set_key_user;
>   2277		} else if (!strncmp(key_string, "user:", key_desc - key_string + 1)) {
>   2278			type = &key_type_user;
>   2279			set_key = set_key_user;
>   2280		} else if (!strncmp(key_string, "encrypted:", key_desc - key_string + 1)) {
> > 2281			type = &key_type_encrypted;
>   2282			set_key = set_key_encrypted;
>   2283		} else {
>   2284			return -EINVAL;
>   2285		}
>   2286	
>   2287		new_key_string = kstrdup(key_string, GFP_KERNEL);
>   2288		if (!new_key_string)
>   2289			return -ENOMEM;
>   2290	
>   2291		key = request_key(type, key_desc + 1, NULL);
>   2292		if (IS_ERR(key)) {
>   2293			kzfree(new_key_string);
>   2294			return PTR_ERR(key);
>   2295		}
>   2296	
>   2297		down_read(&key->sem);
>   2298	
>   2299		ret = set_key(cc, key);
>   2300		if (ret < 0) {
>   2301			up_read(&key->sem);
>   2302			key_put(key);
>   2303			kzfree(new_key_string);
>   2304			return ret;
>   2305		}
>   2306	
>   2307		up_read(&key->sem);
>   2308		key_put(key);
>   2309	
>   2310		/* clear the flag since following operations may invalidate previously valid key */
>   2311		clear_bit(DM_CRYPT_KEY_VALID, &cc->flags);
>   2312	
>   2313		ret = crypt_setkey(cc);
>   2314	
>   2315		if (!ret) {
>   2316			set_bit(DM_CRYPT_KEY_VALID, &cc->flags);
>   2317			kzfree(cc->key_string);
>   2318			cc->key_string = new_key_string;
>   2319		} else
>   2320			kzfree(new_key_string);
>   2321	
>   2322		return ret;
>   2323	}
>   2324	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org





More information about the dm-devel mailing list