Lines Matching defs:tap_major

393 	struct major_info *tap_major;
395 list_for_each_entry_rcu(tap_major, &major_list, next) {
396 if (tap_major->major == major)
397 return tap_major;
406 struct major_info *tap_major;
409 tap_major = tap_get_major(MAJOR(major));
410 if (!tap_major) {
415 spin_lock(&tap_major->minor_lock);
416 retval = idr_alloc(&tap_major->minor_idr, tap, 1, TAP_NUM_DEVS, GFP_ATOMIC);
423 spin_unlock(&tap_major->minor_lock);
433 struct major_info *tap_major;
436 tap_major = tap_get_major(MAJOR(major));
437 if (!tap_major) {
441 spin_lock(&tap_major->minor_lock);
443 idr_remove(&tap_major->minor_idr, tap->minor);
446 spin_unlock(&tap_major->minor_lock);
457 struct major_info *tap_major;
460 tap_major = tap_get_major(major);
461 if (!tap_major) {
466 spin_lock(&tap_major->minor_lock);
467 tap = idr_find(&tap_major->minor_idr, minor);
472 spin_unlock(&tap_major->minor_lock);
1308 struct major_info *tap_major;
1310 tap_major = kzalloc(sizeof(*tap_major), GFP_ATOMIC);
1311 if (!tap_major)
1314 tap_major->major = MAJOR(major);
1316 idr_init(&tap_major->minor_idr);
1317 spin_lock_init(&tap_major->minor_lock);
1319 tap_major->device_name = device_name;
1321 list_add_tail_rcu(&tap_major->next, &major_list);
1325 int tap_create_cdev(struct cdev *tap_cdev, dev_t *tap_major,
1330 err = alloc_chrdev_region(tap_major, 0, TAP_NUM_DEVS, device_name);
1336 err = cdev_add(tap_cdev, *tap_major, TAP_NUM_DEVS);
1340 err = tap_list_add(*tap_major, device_name);
1349 unregister_chrdev_region(*tap_major, TAP_NUM_DEVS);
1357 struct major_info *tap_major, *tmp;
1361 list_for_each_entry_safe(tap_major, tmp, &major_list, next) {
1362 if (tap_major->major == MAJOR(major)) {
1363 idr_destroy(&tap_major->minor_idr);
1364 list_del_rcu(&tap_major->next);
1365 kfree_rcu(tap_major, rcu);