test_dev          917 lib/test_firmware.c ATTRIBUTE_GROUPS(test_dev);
test_dev          109 lib/test_kmod.c 	struct kmod_test_device *test_dev;
test_dev          179 lib/test_kmod.c static void kmod_test_done_check(struct kmod_test_device *test_dev,
test_dev          182 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          184 lib/test_kmod.c 	test_dev->done++;
test_dev          185 lib/test_kmod.c 	dev_dbg(test_dev->dev, "Done thread count: %u\n", test_dev->done);
test_dev          187 lib/test_kmod.c 	if (test_dev->done == config->num_threads) {
test_dev          188 lib/test_kmod.c 		dev_info(test_dev->dev, "Done: %u threads have all run now\n",
test_dev          189 lib/test_kmod.c 			 test_dev->done);
test_dev          190 lib/test_kmod.c 		dev_info(test_dev->dev, "Last thread to run: %u\n", idx);
test_dev          191 lib/test_kmod.c 		complete(&test_dev->kthreads_done);
test_dev          197 lib/test_kmod.c 	struct kmod_test_device *test_dev = info->test_dev;
test_dev          198 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          220 lib/test_kmod.c 	struct kmod_test_device *test_dev = info->test_dev;
test_dev          221 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          237 lib/test_kmod.c 	dev_dbg(test_dev->dev, "Ran thread %u\n", info->thread_idx);
test_dev          241 lib/test_kmod.c 	mutex_lock(&test_dev->thread_mutex);
test_dev          243 lib/test_kmod.c 	kmod_test_done_check(test_dev, info->thread_idx);
test_dev          244 lib/test_kmod.c 	mutex_unlock(&test_dev->thread_mutex);
test_dev          251 lib/test_kmod.c 	struct kmod_test_device *test_dev = info->test_dev;
test_dev          252 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          263 lib/test_kmod.c 		dev_info(test_dev->dev,
test_dev          271 lib/test_kmod.c 		dev_info(test_dev->dev, "Sync thread %u fs: %s\n",
test_dev          291 lib/test_kmod.c static void tally_up_work(struct kmod_test_device *test_dev)
test_dev          293 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          299 lib/test_kmod.c 	mutex_lock(&test_dev->thread_mutex);
test_dev          301 lib/test_kmod.c 	dev_info(test_dev->dev, "Results:\n");
test_dev          304 lib/test_kmod.c 		info = &test_dev->info[idx];
test_dev          316 lib/test_kmod.c 	mutex_unlock(&test_dev->thread_mutex);
test_dev          319 lib/test_kmod.c static int try_one_request(struct kmod_test_device *test_dev, unsigned int idx)
test_dev          321 lib/test_kmod.c 	struct kmod_test_device_info *info = &test_dev->info[idx];
test_dev          324 lib/test_kmod.c 	mutex_lock(&test_dev->thread_mutex);
test_dev          327 lib/test_kmod.c 	info->test_dev = test_dev;
test_dev          332 lib/test_kmod.c 		test_dev->test_is_oom = true;
test_dev          333 lib/test_kmod.c 		dev_err(test_dev->dev, "Setting up thread %u failed\n", idx);
test_dev          337 lib/test_kmod.c 		dev_dbg(test_dev->dev, "Kicked off thread %u\n", idx);
test_dev          339 lib/test_kmod.c 	mutex_unlock(&test_dev->thread_mutex);
test_dev          345 lib/test_kmod.c 	mutex_unlock(&test_dev->thread_mutex);
test_dev          350 lib/test_kmod.c static void test_dev_kmod_stop_tests(struct kmod_test_device *test_dev)
test_dev          352 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          356 lib/test_kmod.c 	dev_info(test_dev->dev, "Ending request_module() tests\n");
test_dev          358 lib/test_kmod.c 	mutex_lock(&test_dev->thread_mutex);
test_dev          361 lib/test_kmod.c 		info = &test_dev->info[i];
test_dev          363 lib/test_kmod.c 			dev_info(test_dev->dev,
test_dev          379 lib/test_kmod.c 	mutex_unlock(&test_dev->thread_mutex);
test_dev          388 lib/test_kmod.c static int try_requests(struct kmod_test_device *test_dev)
test_dev          390 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          396 lib/test_kmod.c 		if (test_dev->test_is_oom) {
test_dev          401 lib/test_kmod.c 		ret = try_one_request(test_dev, idx);
test_dev          409 lib/test_kmod.c 		test_dev->test_is_oom = false;
test_dev          410 lib/test_kmod.c 		dev_info(test_dev->dev,
test_dev          412 lib/test_kmod.c 		wait_for_completion(&test_dev->kthreads_done);
test_dev          413 lib/test_kmod.c 		tally_up_work(test_dev);
test_dev          415 lib/test_kmod.c 		test_dev->test_is_oom = true;
test_dev          416 lib/test_kmod.c 		dev_info(test_dev->dev,
test_dev          418 lib/test_kmod.c 		test_dev_kmod_stop_tests(test_dev);
test_dev          425 lib/test_kmod.c static int run_test_driver(struct kmod_test_device *test_dev)
test_dev          427 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          429 lib/test_kmod.c 	dev_info(test_dev->dev, "Test case: %s (%u)\n",
test_dev          432 lib/test_kmod.c 	dev_info(test_dev->dev, "Test driver to load: %s\n",
test_dev          434 lib/test_kmod.c 	dev_info(test_dev->dev, "Number of threads to run: %u\n",
test_dev          436 lib/test_kmod.c 	dev_info(test_dev->dev, "Thread IDs will range from 0 - %u\n",
test_dev          439 lib/test_kmod.c 	return try_requests(test_dev);
test_dev          442 lib/test_kmod.c static int run_test_fs_type(struct kmod_test_device *test_dev)
test_dev          444 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          446 lib/test_kmod.c 	dev_info(test_dev->dev, "Test case: %s (%u)\n",
test_dev          449 lib/test_kmod.c 	dev_info(test_dev->dev, "Test filesystem to load: %s\n",
test_dev          451 lib/test_kmod.c 	dev_info(test_dev->dev, "Number of threads to run: %u\n",
test_dev          453 lib/test_kmod.c 	dev_info(test_dev->dev, "Thread IDs will range from 0 - %u\n",
test_dev          456 lib/test_kmod.c 	return try_requests(test_dev);
test_dev          463 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          464 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          467 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          498 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          508 lib/test_kmod.c static int __trigger_config_run(struct kmod_test_device *test_dev)
test_dev          510 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          512 lib/test_kmod.c 	test_dev->done = 0;
test_dev          516 lib/test_kmod.c 		return run_test_driver(test_dev);
test_dev          518 lib/test_kmod.c 		return run_test_fs_type(test_dev);
test_dev          520 lib/test_kmod.c 		dev_warn(test_dev->dev,
test_dev          527 lib/test_kmod.c static int trigger_config_run(struct kmod_test_device *test_dev)
test_dev          529 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          532 lib/test_kmod.c 	mutex_lock(&test_dev->trigger_mutex);
test_dev          533 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          535 lib/test_kmod.c 	ret = __trigger_config_run(test_dev);
test_dev          538 lib/test_kmod.c 	dev_info(test_dev->dev, "General test result: %d\n",
test_dev          557 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          558 lib/test_kmod.c 	mutex_unlock(&test_dev->trigger_mutex);
test_dev          568 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          571 lib/test_kmod.c 	if (test_dev->test_is_oom)
test_dev          580 lib/test_kmod.c 	ret = trigger_config_run(test_dev);
test_dev          638 lib/test_kmod.c static void kmod_config_free(struct kmod_test_device *test_dev)
test_dev          642 lib/test_kmod.c 	if (!test_dev)
test_dev          645 lib/test_kmod.c 	config = &test_dev->config;
test_dev          647 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          649 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          656 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          657 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          660 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          666 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          691 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          692 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          694 lib/test_kmod.c 	return config_test_show_str(&test_dev->config_mutex, buf,
test_dev          703 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          704 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          707 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          713 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          722 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          723 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          725 lib/test_kmod.c 	return config_test_show_str(&test_dev->config_mutex, buf,
test_dev          730 lib/test_kmod.c static int trigger_config_run_type(struct kmod_test_device *test_dev,
test_dev          735 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          737 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          753 lib/test_kmod.c 		mutex_unlock(&test_dev->config_mutex);
test_dev          759 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          762 lib/test_kmod.c 		test_dev->test_is_oom = true;
test_dev          766 lib/test_kmod.c 	test_dev->test_is_oom = false;
test_dev          768 lib/test_kmod.c 	return trigger_config_run(test_dev);
test_dev          771 lib/test_kmod.c static void free_test_dev_info(struct kmod_test_device *test_dev)
test_dev          773 lib/test_kmod.c 	vfree(test_dev->info);
test_dev          774 lib/test_kmod.c 	test_dev->info = NULL;
test_dev          777 lib/test_kmod.c static int kmod_config_sync_info(struct kmod_test_device *test_dev)
test_dev          779 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          781 lib/test_kmod.c 	free_test_dev_info(test_dev);
test_dev          782 lib/test_kmod.c 	test_dev->info =
test_dev          785 lib/test_kmod.c 	if (!test_dev->info)
test_dev          807 lib/test_kmod.c static int __kmod_config_init(struct kmod_test_device *test_dev)
test_dev          809 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          828 lib/test_kmod.c 	ret = kmod_config_sync_info(test_dev);
test_dev          832 lib/test_kmod.c 	test_dev->test_is_oom = false;
test_dev          837 lib/test_kmod.c 	test_dev->test_is_oom = true;
test_dev          838 lib/test_kmod.c 	WARN_ON(test_dev->test_is_oom);
test_dev          849 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          852 lib/test_kmod.c 	mutex_lock(&test_dev->trigger_mutex);
test_dev          853 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          855 lib/test_kmod.c 	ret = __kmod_config_init(test_dev);
test_dev          867 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          868 lib/test_kmod.c 	mutex_unlock(&test_dev->trigger_mutex);
test_dev          874 lib/test_kmod.c static int test_dev_config_update_uint_sync(struct kmod_test_device *test_dev,
test_dev          877 lib/test_kmod.c 					    int (*test_sync)(struct kmod_test_device *test_dev))
test_dev          890 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          895 lib/test_kmod.c 	ret = test_sync(test_dev);
test_dev          899 lib/test_kmod.c 		ret = test_sync(test_dev);
test_dev          902 lib/test_kmod.c 		mutex_unlock(&test_dev->config_mutex);
test_dev          906 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          911 lib/test_kmod.c static int test_dev_config_update_uint_range(struct kmod_test_device *test_dev,
test_dev          927 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          929 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          935 lib/test_kmod.c static int test_dev_config_update_int(struct kmod_test_device *test_dev,
test_dev          949 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          951 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          956 lib/test_kmod.c static ssize_t test_dev_config_show_int(struct kmod_test_device *test_dev,
test_dev          962 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          964 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          969 lib/test_kmod.c static ssize_t test_dev_config_show_uint(struct kmod_test_device *test_dev,
test_dev          975 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev          977 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev          986 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          987 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev          989 lib/test_kmod.c 	return test_dev_config_update_int(test_dev, buf, count,
test_dev          997 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev          998 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev         1000 lib/test_kmod.c 	return test_dev_config_update_uint_sync(test_dev, buf, count,
test_dev         1009 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev         1010 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev         1012 lib/test_kmod.c 	return test_dev_config_show_int(test_dev, buf, config->num_threads);
test_dev         1020 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev         1021 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev         1023 lib/test_kmod.c 	return test_dev_config_update_uint_range(test_dev, buf, count,
test_dev         1033 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev         1034 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev         1036 lib/test_kmod.c 	return test_dev_config_show_uint(test_dev, buf, config->test_case);
test_dev         1044 lib/test_kmod.c 	struct kmod_test_device *test_dev = dev_to_test_dev(dev);
test_dev         1045 lib/test_kmod.c 	struct test_config *config = &test_dev->config;
test_dev         1047 lib/test_kmod.c 	return test_dev_config_show_int(test_dev, buf, config->test_result);
test_dev         1067 lib/test_kmod.c ATTRIBUTE_GROUPS(test_dev);
test_dev         1069 lib/test_kmod.c static int kmod_config_init(struct kmod_test_device *test_dev)
test_dev         1073 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev         1074 lib/test_kmod.c 	ret = __kmod_config_init(test_dev);
test_dev         1075 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev         1083 lib/test_kmod.c 	struct kmod_test_device *test_dev;
test_dev         1086 lib/test_kmod.c 	test_dev = vzalloc(sizeof(struct kmod_test_device));
test_dev         1087 lib/test_kmod.c 	if (!test_dev)
test_dev         1090 lib/test_kmod.c 	mutex_init(&test_dev->config_mutex);
test_dev         1091 lib/test_kmod.c 	mutex_init(&test_dev->trigger_mutex);
test_dev         1092 lib/test_kmod.c 	mutex_init(&test_dev->thread_mutex);
test_dev         1094 lib/test_kmod.c 	init_completion(&test_dev->kthreads_done);
test_dev         1096 lib/test_kmod.c 	ret = kmod_config_init(test_dev);
test_dev         1102 lib/test_kmod.c 	test_dev->dev_idx = idx;
test_dev         1103 lib/test_kmod.c 	misc_dev = &test_dev->misc_dev;
test_dev         1113 lib/test_kmod.c 	return test_dev;
test_dev         1116 lib/test_kmod.c 	free_test_dev_info(test_dev);
test_dev         1117 lib/test_kmod.c 	kmod_config_free(test_dev);
test_dev         1119 lib/test_kmod.c 	vfree(test_dev);
test_dev         1120 lib/test_kmod.c 	test_dev = NULL;
test_dev         1125 lib/test_kmod.c static void free_test_dev_kmod(struct kmod_test_device *test_dev)
test_dev         1127 lib/test_kmod.c 	if (test_dev) {
test_dev         1128 lib/test_kmod.c 		kfree_const(test_dev->misc_dev.name);
test_dev         1129 lib/test_kmod.c 		test_dev->misc_dev.name = NULL;
test_dev         1130 lib/test_kmod.c 		free_test_dev_info(test_dev);
test_dev         1131 lib/test_kmod.c 		kmod_config_free(test_dev);
test_dev         1132 lib/test_kmod.c 		vfree(test_dev);
test_dev         1133 lib/test_kmod.c 		test_dev = NULL;
test_dev         1139 lib/test_kmod.c 	struct kmod_test_device *test_dev = NULL;
test_dev         1150 lib/test_kmod.c 	test_dev = alloc_test_dev_kmod(num_test_devs);
test_dev         1151 lib/test_kmod.c 	if (!test_dev)
test_dev         1154 lib/test_kmod.c 	ret = misc_register(&test_dev->misc_dev);
test_dev         1157 lib/test_kmod.c 		free_test_dev_kmod(test_dev);
test_dev         1161 lib/test_kmod.c 	test_dev->dev = test_dev->misc_dev.this_device;
test_dev         1162 lib/test_kmod.c 	list_add_tail(&test_dev->list, &reg_test_devs);
test_dev         1163 lib/test_kmod.c 	dev_info(test_dev->dev, "interface ready\n");
test_dev         1170 lib/test_kmod.c 	return test_dev;
test_dev         1176 lib/test_kmod.c 	struct kmod_test_device *test_dev;
test_dev         1179 lib/test_kmod.c 	test_dev = register_test_dev_kmod();
test_dev         1180 lib/test_kmod.c 	if (!test_dev) {
test_dev         1193 lib/test_kmod.c 		ret = trigger_config_run_type(test_dev,
test_dev         1197 lib/test_kmod.c 		ret = trigger_config_run_type(test_dev,
test_dev         1208 lib/test_kmod.c void unregister_test_dev_kmod(struct kmod_test_device *test_dev)
test_dev         1210 lib/test_kmod.c 	mutex_lock(&test_dev->trigger_mutex);
test_dev         1211 lib/test_kmod.c 	mutex_lock(&test_dev->config_mutex);
test_dev         1213 lib/test_kmod.c 	test_dev_kmod_stop_tests(test_dev);
test_dev         1215 lib/test_kmod.c 	dev_info(test_dev->dev, "removing interface\n");
test_dev         1216 lib/test_kmod.c 	misc_deregister(&test_dev->misc_dev);
test_dev         1218 lib/test_kmod.c 	mutex_unlock(&test_dev->config_mutex);
test_dev         1219 lib/test_kmod.c 	mutex_unlock(&test_dev->trigger_mutex);
test_dev         1221 lib/test_kmod.c 	free_test_dev_kmod(test_dev);
test_dev         1226 lib/test_kmod.c 	struct kmod_test_device *test_dev, *tmp;
test_dev         1229 lib/test_kmod.c 	list_for_each_entry_safe(test_dev, tmp, &reg_test_devs, list) {
test_dev         1230 lib/test_kmod.c 		list_del(&test_dev->list);
test_dev         1231 lib/test_kmod.c 		unregister_test_dev_kmod(test_dev);