Lines Matching refs:list

624 	struct list_head *list;
630 list = report_enum->report_list.next;
631 while (list != &report_enum->report_list) {
632 report = (struct hid_report *) list;
644 list = list->next;
653 struct hid_debug_list *list;
657 list_for_each_entry(list, &hdev->debug_list, node)
658 kfifo_in(&list->hid_debug_fifo, buf, strlen(buf));
1023 list_for_each_entry(report, &hid->report_enum[k].report_list, list) {
1071 struct hid_debug_list *list;
1074 if (!(list = kzalloc(sizeof(struct hid_debug_list), GFP_KERNEL))) {
1079 err = kfifo_alloc(&list->hid_debug_fifo, HID_DEBUG_FIFOSIZE, GFP_KERNEL);
1081 kfree(list);
1084 list->hdev = (struct hid_device *) inode->i_private;
1085 kref_get(&list->hdev->ref);
1086 file->private_data = list;
1087 mutex_init(&list->read_mutex);
1089 spin_lock_irqsave(&list->hdev->debug_list_lock, flags);
1090 list_add_tail(&list->node, &list->hdev->debug_list);
1091 spin_unlock_irqrestore(&list->hdev->debug_list_lock, flags);
1100 struct hid_debug_list *list = file->private_data;
1104 mutex_lock(&list->read_mutex);
1105 if (kfifo_is_empty(&list->hid_debug_fifo)) {
1106 add_wait_queue(&list->hdev->debug_wait, &wait);
1109 while (kfifo_is_empty(&list->hid_debug_fifo)) {
1115 /* if list->hdev is NULL we cannot remove_wait_queue().
1116 * if list->hdev->debug is 0 then hid_debug_unregister()
1117 * was already called and list->hdev is being destroyed.
1120 if (!list->hdev || !list->hdev->debug) {
1132 mutex_unlock(&list->read_mutex);
1134 mutex_lock(&list->read_mutex);
1139 remove_wait_queue(&list->hdev->debug_wait, &wait);
1148 ret = kfifo_to_user(&list->hid_debug_fifo, buffer, count, &copied);
1153 mutex_unlock(&list->read_mutex);
1159 struct hid_debug_list *list = file->private_data;
1161 poll_wait(file, &list->hdev->debug_wait, wait);
1162 if (!kfifo_is_empty(&list->hid_debug_fifo))
1164 if (!list->hdev->debug)
1171 struct hid_debug_list *list = file->private_data;
1174 spin_lock_irqsave(&list->hdev->debug_list_lock, flags);
1175 list_del(&list->node);
1176 spin_unlock_irqrestore(&list->hdev->debug_list_lock, flags);
1177 kfifo_free(&list->hid_debug_fifo);
1179 kref_put(&list->hdev->ref, hiddev_free);
1180 kfree(list);