send_queue
mad_send_wr->mad_list.mad_queue = &qp_info->send_queue;
spin_lock_irqsave(&qp_info->send_queue.lock, flags);
if (qp_info->send_queue.count < qp_info->send_queue.max_active) {
list = &qp_info->send_queue.list;
qp_info->send_queue.count++;
spin_unlock_irqrestore(&qp_info->send_queue.lock, flags);
struct ib_mad_queue *send_queue;
send_queue = mad_list->mad_queue;
qp_info = send_queue->qp_info;
spin_lock_irqsave(&send_queue->lock, flags);
if (send_queue->count-- > send_queue->max_active) {
list_move_tail(&mad_list->list, &send_queue->list);
spin_unlock_irqrestore(&send_queue->lock, flags);
spin_lock_irqsave(&qp_info->send_queue.lock, flags);
list_for_each_entry(mad_list, &qp_info->send_queue.list, list) {
spin_unlock_irqrestore(&qp_info->send_queue.lock, flags);
init_mad_queue(qp_info, &qp_info->send_queue);
qp_info->send_queue.max_active = mad_sendq_size;
struct ib_mad_queue send_queue;
queue = &ctx->send_queue[ctx->queues - 1];
queue = &ctx->send_queue[rule_attr.queue_id];
return min(ctx->send_queue[queue_id].num_entries / 2,
queue_full = mlx5hws_send_engine_full(&ctx->send_queue[queue_id]);
struct mlx5hws_send_engine *send_queue;
struct mlx5hws_send_engine *send_queue;
send_queue = &ctx->send_queue[i];
send_queue->used_entries,
send_queue->num_entries,
send_queue->num_entries,
send_queue->err,
send_queue->completed.ci,
send_queue->completed.pi,
send_queue->completed.mask);
send_ring = &send_queue->send_ring;
ctx->send_queue->num_entries,
queue = &ctx->send_queue[ctx->queues - 1];
queue = &ctx->send_queue[attr->queue_id];
queue = &ctx->send_queue[attr->queue_id];
queue = &ctx->send_queue[attr->queue_id];
if (unlikely(mlx5hws_send_engine_full(&ctx->send_queue[attr->queue_id])))
queue = &ctx->send_queue[attr->queue_id];
mlx5hws_send_queue_close(&ctx->send_queue[queues]);
kfree(ctx->send_queue);
ctx->send_queue = kzalloc_objs(*ctx->send_queue, ctx->queues);
if (!ctx->send_queue) {
err = mlx5hws_send_queue_open(ctx, &ctx->send_queue[i], queue_size);
kfree(ctx->send_queue);
queue = &ctx->send_queue[queue_id];
queue_id = queue - ctx->send_queue;
return hws_send_engine_poll(&ctx->send_queue[queue_id], res, res_nb);
skb_queue_head_init(&yp->send_queue);
struct sk_buff_head send_queue; /* Packets awaiting transmission */
skb_queue_tail(&yp->send_queue, skb);
skb_queue_empty(&yp->send_queue))
if (!(skb = skb_dequeue(&yp->send_queue))) {
if (skb_queue_empty(&yp->send_queue)) {
while ((skb = skb_dequeue(&yp->send_queue)))
static void free_old_xmit(struct send_queue *sq, struct netdev_queue *txq,
struct send_queue *sq)
struct send_queue *sq)
static int virtnet_xsk_xmit_one(struct send_queue *sq,
static int virtnet_xsk_xmit_batch(struct send_queue *sq,
static bool virtnet_xsk_xmit(struct send_queue *sq, struct xsk_buff_pool *pool,
static void xsk_wakeup(struct send_queue *sq)
struct send_queue *sq;
static void virtnet_xsk_completed(struct send_queue *sq, int num)
struct send_queue *sq,
struct send_queue *sq;
static void virtnet_napi_tx_enable(struct send_queue *sq)
static void virtnet_napi_tx_disable(struct send_queue *sq)
struct send_queue *sq = &vi->sq[index];
struct send_queue *sq;
struct send_queue *sq = container_of(napi, struct send_queue, napi);
static int xmit_skb(struct send_queue *sq, struct sk_buff *skb, bool orphan)
struct send_queue *sq = &vi->sq[qnum];
static void virtnet_tx_pause(struct virtnet_info *vi, struct send_queue *sq)
static void virtnet_tx_resume(struct virtnet_info *vi, struct send_queue *sq)
static int virtnet_tx_resize(struct virtnet_info *vi, struct send_queue *sq,
struct send_queue *sq = &vi->sq[i];
struct send_queue *sq;
struct send_queue *sq;
struct send_queue *sq = &vi->sq[i];
static void virtnet_xsk_completed(struct send_queue *sq, int num);
struct send_queue *sq = &vi->sq[i];
static int virtnet_add_outbuf(struct send_queue *sq, int num, void *data,
struct send_queue *sq,
static void __free_old_xmit(struct send_queue *sq, struct netdev_queue *txq,
struct send_queue *sq;
struct send_queue *sq;
struct send_queue *sq = &priv->sq[txqueue];
static void virtnet_free_old_xmit(struct send_queue *sq,
struct send_queue *sq;
struct send_queue *sq)
struct send_queue *sq = &vi->sq[index];
struct list_head send_queue; /* temp queue to hold packets */
INIT_LIST_HEAD(&send_queue);
list_splice_tail_init(txq, &send_queue);
list_move_tail(&packet->list, &send_queue);
&send_queue);
if (list_empty(&send_queue)) {
if (!list_empty(&send_queue)) {
list_splice_tail_init(&send_queue, &ep->txq);
if (!list_empty(&send_queue)) {
INIT_LIST_HEAD(&send_queue);
get_htc_packet_credit_based(target, ep, &send_queue);
get_htc_packet(target, ep, &send_queue, tx_resources);
if (get_queue_depth(&send_queue) == 0) {
htc_issue_packets(target, ep, &send_queue);
struct list_head send_queue;
list_for_each_entry_rcu(mh, &node->send_queue, list) {
INIT_LIST_HEAD(&node->send_queue);
list_for_each_entry_rcu(mh, &node->send_queue, list) {
list_for_each_entry_rcu(mh, &node->send_queue, list) {
list_for_each_entry_rcu(mh, &node->send_queue, list) {
list_add_tail_rcu(&mh->list, &mh->node->send_queue);
struct rxrpc_txqueue *send_queue; /* Queue that sendmsg is writing into */
struct rxrpc_txqueue *sq = call->send_queue;
call->send_queue = NULL;
if (call->send_queue) {
call->send_queue->next = tq;
call->send_queue = tq;
call->send_queue = tq;
if (!call->send_queue || !((call->send_top + 1) & RXRPC_TXQ_MASK)) {