Lines Matching refs:socket_client

46 static void batadv_socket_add_packet(struct batadv_socket_client *socket_client,
61 struct batadv_socket_client *socket_client;
70 socket_client = kmalloc(sizeof(*socket_client), GFP_KERNEL);
71 if (!socket_client) {
78 batadv_socket_client_hash[i] = socket_client;
85 kfree(socket_client);
90 INIT_LIST_HEAD(&socket_client->queue_list);
91 socket_client->queue_len = 0;
92 socket_client->index = i;
93 socket_client->bat_priv = inode->i_private;
94 spin_lock_init(&socket_client->lock);
95 init_waitqueue_head(&socket_client->queue_wait);
97 file->private_data = socket_client;
127 struct batadv_socket_client *socket_client = file->private_data;
132 if ((file->f_flags & O_NONBLOCK) && socket_client->queue_len == 0)
138 error = wait_event_interruptible(socket_client->queue_wait,
139 socket_client->queue_len);
144 spin_lock_bh(&socket_client->lock);
146 socket_packet = list_first_entry(&socket_client->queue_list,
149 socket_client->queue_len--;
151 spin_unlock_bh(&socket_client->lock);
167 struct batadv_socket_client *socket_client = file->private_data;
168 struct batadv_priv *bat_priv = socket_client->bat_priv;
259 icmp_header->uid = socket_client->index;
264 batadv_socket_add_packet(socket_client, icmp_header,
276 batadv_socket_add_packet(socket_client, icmp_header, packet_len);
291 struct batadv_socket_client *socket_client = file->private_data;
293 poll_wait(file, &socket_client->queue_wait, wait);
295 if (socket_client->queue_len > 0)
324 * @socket_client: the socket this packet belongs to
328 static void batadv_socket_add_packet(struct batadv_socket_client *socket_client,
349 spin_lock_bh(&socket_client->lock);
351 /* while waiting for the lock the socket_client could have been
355 spin_unlock_bh(&socket_client->lock);
360 list_add_tail(&socket_packet->list, &socket_client->queue_list);
361 socket_client->queue_len++;
363 if (socket_client->queue_len > 100) {
364 socket_packet = list_first_entry(&socket_client->queue_list,
370 socket_client->queue_len--;
373 spin_unlock_bh(&socket_client->lock);
375 wake_up(&socket_client->queue_wait);