From: Sainath Grandhi <sainath.gran...@intel.com>
Date: Mon, 30 Jan 2017 11:12:00 -0800

> +     list_for_each_entry_safe(tap_major, tmp, &major_list, next) {
> +             if (tap_major->major == major) {
> +                     return tap_major;
> +             }
> +     }

Single line basic blocks, such as this 'if' statement, should not be
surrounded by curly braces.

Also I see not mutual exclusion being implemented to protect this
list.  If there is, it is not obvious, so it should be documented with
a comment explaining what protects the list.

> @@ -1175,14 +1228,7 @@ int tap_create_cdev(struct cdev *tap_cdev,
>       if (err)
>               goto out2;
>  
> -     macvtap_major.major = MAJOR(*tap_major);
> -
> -     idr_init(&macvtap_major.minor_idr);
> -     mutex_init(&macvtap_major.minor_lock);
> -
> -     macvtap_major.device_name = device_name;
> -
> -     return err;
> +     return tap_list_add(*tap_major, device_name);
>  
>  out2:
>       unregister_chrdev_region(*tap_major, TAP_NUM_DEVS);

If tap_list_add() fails, you will leave the chrdev region registered.

Reply via email to