usb: gadget: webcam: Make g_webcam loadable again
[platform/kernel/linux-starfive.git] / net / rfkill / core.c
index 0863089..14cc8fe 100644 (file)
@@ -1180,7 +1180,6 @@ static int rfkill_fop_open(struct inode *inode, struct file *file)
        init_waitqueue_head(&data->read_wait);
 
        mutex_lock(&rfkill_global_mutex);
-       mutex_lock(&data->mtx);
        /*
         * start getting events from elsewhere but hold mtx to get
         * startup events added first
@@ -1192,10 +1191,11 @@ static int rfkill_fop_open(struct inode *inode, struct file *file)
                        goto free;
                rfkill_sync(rfkill);
                rfkill_fill_event(&ev->ev, rfkill, RFKILL_OP_ADD);
+               mutex_lock(&data->mtx);
                list_add_tail(&ev->list, &data->events);
+               mutex_unlock(&data->mtx);
        }
        list_add(&data->list, &rfkill_fds);
-       mutex_unlock(&data->mtx);
        mutex_unlock(&rfkill_global_mutex);
 
        file->private_data = data;
@@ -1203,7 +1203,6 @@ static int rfkill_fop_open(struct inode *inode, struct file *file)
        return stream_open(inode, file);
 
  free:
-       mutex_unlock(&data->mtx);
        mutex_unlock(&rfkill_global_mutex);
        mutex_destroy(&data->mtx);
        list_for_each_entry_safe(ev, tmp, &data->events, list)