Lines Matching full:minor

10 /* dynamic minor (2) */
12 .minor = 2,
16 /* static minor (LCD_MINOR) */
18 .minor = LCD_MINOR,
22 /* misc dynamic minor */
24 .minor = MISC_DYNAMIC_MINOR,
34 KUNIT_EXPECT_EQ(test, 2, dev_dynamic_minor.minor); in kunit_dynamic_minor()
44 KUNIT_EXPECT_EQ(test, LCD_MINOR, dev_static_minor.minor); in kunit_static_minor()
59 int minor; member
65 .minor = 15,
69 .minor = 130,
73 .minor = 0,
77 .minor = MISC_DYNAMIC_MINOR - 1,
92 miscstat.minor = i; in miscdev_find_minors()
99 kunit_info(suite, "found misc device minor %d available\n", in miscdev_find_minors()
100 miscstat.minor); in miscdev_find_minors()
101 miscdev_test_ranges[0].minor = miscstat.minor; in miscdev_find_minors()
108 miscstat.minor = i; in miscdev_find_minors()
115 kunit_info(suite, "found misc device minor %d available\n", in miscdev_find_minors()
116 miscstat.minor); in miscdev_find_minors()
117 miscdev_test_ranges[1].minor = miscstat.minor; in miscdev_find_minors()
123 for (i = 0; i < miscdev_test_ranges[0].minor; i++) { in miscdev_find_minors()
124 miscstat.minor = i; in miscdev_find_minors()
131 kunit_info(suite, "found misc device minor %d available\n", in miscdev_find_minors()
132 miscstat.minor); in miscdev_find_minors()
133 miscdev_test_ranges[2].minor = miscstat.minor; in miscdev_find_minors()
139 for (i = MISC_DYNAMIC_MINOR - 1; i > miscdev_test_ranges[1].minor; i--) { in miscdev_find_minors()
140 miscstat.minor = i; in miscdev_find_minors()
147 kunit_info(suite, "found misc device minor %d available\n", in miscdev_find_minors()
148 miscstat.minor); in miscdev_find_minors()
149 miscdev_test_ranges[3].minor = miscstat.minor; in miscdev_find_minors()
156 static bool is_valid_dynamic_minor(int minor) in is_valid_dynamic_minor() argument
158 if (minor < 0) in is_valid_dynamic_minor()
160 if (minor == MISC_DYNAMIC_MINOR) in is_valid_dynamic_minor()
162 if (minor >= 0 && minor <= 15) in is_valid_dynamic_minor()
164 if (minor >= 128 && minor < MISC_DYNAMIC_MINOR) in is_valid_dynamic_minor()
186 new_encode_dev(MKDEV(MISC_MAJOR, misc->minor))); in miscdev_test_can_open()
209 misc_test.minor = params->minor; in miscdev_test_static_basic()
213 KUNIT_EXPECT_EQ(test, misc_test.minor, params->minor); in miscdev_test_static_basic()
224 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_dynamic_basic()
232 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(misc_test.minor)); in miscdev_test_dynamic_basic()
249 misc_test.minor = params->minor; in miscdev_test_twice()
253 KUNIT_EXPECT_EQ(test, misc_test.minor, params->minor); in miscdev_test_twice()
259 KUNIT_EXPECT_EQ(test, misc_test.minor, params->minor); in miscdev_test_twice()
277 misc1.minor = params->minor; in miscdev_test_duplicate_minor()
278 misc2.minor = params->minor; in miscdev_test_duplicate_minor()
282 KUNIT_EXPECT_EQ(test, misc1.minor, params->minor); in miscdev_test_duplicate_minor()
295 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_duplicate_name()
300 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_duplicate_name()
308 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(misc1.minor)); in miscdev_test_duplicate_name()
319 * Test that after a duplicate name failure, the reserved minor number is
325 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_duplicate_name_leak()
330 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_duplicate_name_leak()
335 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_duplicate_name_leak()
344 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(misc1.minor)); in miscdev_test_duplicate_name_leak()
347 * Find out what is the next minor number available. in miscdev_test_duplicate_name_leak()
351 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(misc3.minor)); in miscdev_test_duplicate_name_leak()
352 dyn_minor = misc3.minor; in miscdev_test_duplicate_name_leak()
354 misc3.minor = MISC_DYNAMIC_MINOR; in miscdev_test_duplicate_name_leak()
362 * Now check that we can still get the same minor we found before. in miscdev_test_duplicate_name_leak()
366 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(misc3.minor)); in miscdev_test_duplicate_name_leak()
367 KUNIT_EXPECT_EQ(test, misc3.minor, dyn_minor); in miscdev_test_duplicate_name_leak()
374 * Try to register a static minor with a duplicate name. That might not
375 * deallocate the minor, preventing it from being used again.
380 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_duplicate_error()
395 miscstat.minor = params->minor; in miscdev_test_duplicate_error()
396 miscnew.minor = params->minor; in miscdev_test_duplicate_error()
400 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdyn.minor)); in miscdev_test_duplicate_error()
409 KUNIT_EXPECT_EQ(test, miscnew.minor, params->minor); in miscdev_test_duplicate_error()
428 miscdev[i].minor = MISC_DYNAMIC_MINOR; in miscdev_test_dynamic_only_range()
436 * We asked for a dynamic minor and got a minor in the static range space. in miscdev_test_dynamic_only_range()
438 if (miscdev[i].minor >= 0 && miscdev[i].minor <= 15) { in miscdev_test_dynamic_only_range()
439 KUNIT_FAIL(test, "misc_register allocated minor %d\n", miscdev[i].minor); in miscdev_test_dynamic_only_range()
443 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdev[i].minor)); in miscdev_test_dynamic_only_range()
470 miscstat.minor = miscdev_test_ranges[0].minor; in miscdev_test_collision()
473 KUNIT_EXPECT_EQ(test, miscstat.minor, miscdev_test_ranges[0].minor); in miscdev_test_collision()
476 miscdev[i].minor = MISC_DYNAMIC_MINOR; in miscdev_test_collision()
482 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdev[i].minor)); in miscdev_test_collision()
512 miscdev[i].minor = MISC_DYNAMIC_MINOR; in miscdev_test_collision_reverse()
518 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdev[i].minor)); in miscdev_test_collision_reverse()
523 miscstat.minor = miscdev_test_ranges[0].minor; in miscdev_test_collision_reverse()
526 KUNIT_EXPECT_EQ(test, miscstat.minor, miscdev_test_ranges[0].minor); in miscdev_test_collision_reverse()
542 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_conflict()
552 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdyn.minor)); in miscdev_test_conflict()
555 * Try to register a static minor with the same minor as the in miscdev_test_conflict()
558 miscstat.minor = miscdyn.minor; in miscdev_test_conflict()
574 .minor = MISC_DYNAMIC_MINOR, in miscdev_test_conflict_reverse()
583 * Find the first available dynamic minor to use it as a static in miscdev_test_conflict_reverse()
584 * minor later on. in miscdev_test_conflict_reverse()
588 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdyn.minor)); in miscdev_test_conflict_reverse()
589 miscstat.minor = miscdyn.minor; in miscdev_test_conflict_reverse()
594 KUNIT_EXPECT_EQ(test, miscstat.minor, miscdyn.minor); in miscdev_test_conflict_reverse()
597 * Try to register a dynamic minor after registering a static minor in miscdev_test_conflict_reverse()
599 * minor. in miscdev_test_conflict_reverse()
601 miscdyn.minor = MISC_DYNAMIC_MINOR; in miscdev_test_conflict_reverse()
604 KUNIT_EXPECT_NE(test, miscdyn.minor, miscstat.minor); in miscdev_test_conflict_reverse()
605 KUNIT_EXPECT_TRUE(test, is_valid_dynamic_minor(miscdyn.minor)); in miscdev_test_conflict_reverse()