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, ®_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, ®_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);