Loading drivers/char/diag/diagfwd_socket.c +13 −2 Original line number Diff line number Diff line Loading @@ -712,7 +712,12 @@ static void diag_socket_drop_data(struct diag_socket_info *info) if (err || pkt_len < 0) break; spin_lock_irqsave(&info->lock, flags); if (info->data_ready > 0) { info->data_ready--; } else { spin_unlock_irqrestore(&info->lock, flags); break; } spin_unlock_irqrestore(&info->lock, flags); read_len = kernel_recvmsg(info->hdl, &read_msg, &iov, 1, pkt_len, MSG_DONTWAIT); Loading Loading @@ -808,7 +813,13 @@ static int diag_socket_read(void *ctxt, unsigned char *buf, int buf_len) } spin_lock_irqsave(&info->lock, flags); if (info->data_ready > 0) { info->data_ready--; } else { spin_unlock_irqrestore(&info->lock, flags); mutex_unlock(&info->socket_info_mutex); break; } spin_unlock_irqrestore(&info->lock, flags); read_len = kernel_recvmsg(info->hdl, &read_msg, &iov, 1, Loading Loading
drivers/char/diag/diagfwd_socket.c +13 −2 Original line number Diff line number Diff line Loading @@ -712,7 +712,12 @@ static void diag_socket_drop_data(struct diag_socket_info *info) if (err || pkt_len < 0) break; spin_lock_irqsave(&info->lock, flags); if (info->data_ready > 0) { info->data_ready--; } else { spin_unlock_irqrestore(&info->lock, flags); break; } spin_unlock_irqrestore(&info->lock, flags); read_len = kernel_recvmsg(info->hdl, &read_msg, &iov, 1, pkt_len, MSG_DONTWAIT); Loading Loading @@ -808,7 +813,13 @@ static int diag_socket_read(void *ctxt, unsigned char *buf, int buf_len) } spin_lock_irqsave(&info->lock, flags); if (info->data_ready > 0) { info->data_ready--; } else { spin_unlock_irqrestore(&info->lock, flags); mutex_unlock(&info->socket_info_mutex); break; } spin_unlock_irqrestore(&info->lock, flags); read_len = kernel_recvmsg(info->hdl, &read_msg, &iov, 1, Loading