Revert "drm/i915: Use crtc_state->active in primary check_plane func"
[deliverable/linux.git] / drivers / char / misc.c
index 9fd5a91e0d81e4f5f2ec2abe714ca0d0ef88972c..fdb0f9b3fe4508ab8cc7be9f14b4f775c166460a 100644 (file)
@@ -117,14 +117,14 @@ static int misc_open(struct inode * inode, struct file * file)
        const struct file_operations *new_fops = NULL;
 
        mutex_lock(&misc_mtx);
-       
+
        list_for_each_entry(c, &misc_list, list) {
                if (c->minor == minor) {
-                       new_fops = fops_get(c->fops);           
+                       new_fops = fops_get(c->fops);
                        break;
                }
        }
-               
+
        if (!new_fops) {
                mutex_unlock(&misc_mtx);
                request_module("char-major-%d-%d", MISC_MAJOR, minor);
@@ -167,7 +167,7 @@ static const struct file_operations misc_fops = {
 /**
  *     misc_register   -       register a miscellaneous device
  *     @misc: device structure
- *     
+ *
  *     Register a miscellaneous device with the kernel. If the minor
  *     number is set to %MISC_DYNAMIC_MINOR a minor number is assigned
  *     and placed in the minor field of the structure. For other cases
@@ -181,17 +181,18 @@ static const struct file_operations misc_fops = {
  *     A zero is returned on success and a negative errno code for
  *     failure.
  */
+
 int misc_register(struct miscdevice * misc)
 {
        dev_t dev;
        int err = 0;
+       bool is_dynamic = (misc->minor == MISC_DYNAMIC_MINOR);
 
        INIT_LIST_HEAD(&misc->list);
 
        mutex_lock(&misc_mtx);
 
-       if (misc->minor == MISC_DYNAMIC_MINOR) {
+       if (is_dynamic) {
                int i = find_first_zero_bit(misc_minors, DYNAMIC_MINORS);
                if (i >= DYNAMIC_MINORS) {
                        err = -EBUSY;
@@ -216,9 +217,13 @@ int misc_register(struct miscdevice * misc)
                device_create_with_groups(misc_class, misc->parent, dev,
                                          misc, misc->groups, "%s", misc->name);
        if (IS_ERR(misc->this_device)) {
-               int i = DYNAMIC_MINORS - misc->minor - 1;
-               if (i < DYNAMIC_MINORS && i >= 0)
-                       clear_bit(i, misc_minors);
+               if (is_dynamic) {
+                       int i = DYNAMIC_MINORS - misc->minor - 1;
+
+                       if (i < DYNAMIC_MINORS && i >= 0)
+                               clear_bit(i, misc_minors);
+                       misc->minor = MISC_DYNAMIC_MINOR;
+               }
                err = PTR_ERR(misc->this_device);
                goto out;
        }
This page took 0.038126 seconds and 5 git commands to generate.