Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ifmlx4/en_tx.c
Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | |||||
ring->stride = stride; | ring->stride = stride; | ||||
ring->full_size = ring->size - HEADROOM - MAX_DESC_TXBBS; | ring->full_size = ring->size - HEADROOM - MAX_DESC_TXBBS; | ||||
ring->inline_thold = min(inline_thold, MAX_INLINE); | ring->inline_thold = min(inline_thold, MAX_INLINE); | ||||
mtx_init(&ring->tx_lock.m, "mlx4 tx", NULL, MTX_DEF); | mtx_init(&ring->tx_lock.m, "mlx4 tx", NULL, MTX_DEF); | ||||
mtx_init(&ring->comp_lock.m, "mlx4 comp", NULL, MTX_DEF); | mtx_init(&ring->comp_lock.m, "mlx4 comp", NULL, MTX_DEF); | ||||
/* Allocate the buf ring */ | /* Allocate the buf ring */ | ||||
ring->br = buf_ring_alloc(MLX4_EN_DEF_TX_QUEUE_SIZE, M_DEVBUF, | ring->br = buf_ring_alloc(MLX4_EN_DEF_TX_QUEUE_SIZE, M_DEVBUF, | ||||
M_WAITOK, &ring->tx_lock.m); | M_WAITOK, &ring->tx_lock.m, queue_idx, | ||||
priv->tx_ring_num); | |||||
if (ring->br == NULL) { | if (ring->br == NULL) { | ||||
en_err(priv, "Failed allocating tx_info ring\n"); | en_err(priv, "Failed allocating tx_info ring\n"); | ||||
return -ENOMEM; | return -ENOMEM; | ||||
} | } | ||||
tmp = size * sizeof(struct mlx4_en_tx_info); | tmp = size * sizeof(struct mlx4_en_tx_info); | ||||
ring->tx_info = vmalloc_node(tmp, node); | ring->tx_info = vmalloc_node(tmp, node); | ||||
if (!ring->tx_info) { | if (!ring->tx_info) { | ||||
▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines |