diff options
author | Peter Zijlstra <peterz@infradead.org> | 2022-05-11 16:27:06 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2022-05-11 16:27:06 +0200 |
commit | 47319846a9e2ab1c4d22108e891818d003615bd8 (patch) | |
tree | 919dbed5c01d3ad4db009bd38bb12cfd3d038246 /net/xdp/xsk_buff_pool.c | |
parent | perf/amd/ibs: Use interrupt regs ip for stack unwinding (diff) | |
parent | Linux 5.18-rc5 (diff) | |
download | linux-dev-47319846a9e2ab1c4d22108e891818d003615bd8.tar.xz linux-dev-47319846a9e2ab1c4d22108e891818d003615bd8.zip |
Merge branch 'v5.18-rc5'
Obtain the new INTEL_FAM6 stuff required.
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'net/xdp/xsk_buff_pool.c')
-rw-r--r-- | net/xdp/xsk_buff_pool.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c index af040ffa14ff..87bdd71c7bb6 100644 --- a/net/xdp/xsk_buff_pool.c +++ b/net/xdp/xsk_buff_pool.c @@ -42,6 +42,16 @@ void xp_destroy(struct xsk_buff_pool *pool) kvfree(pool); } +int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs) +{ + pool->tx_descs = kvcalloc(xs->tx->nentries, sizeof(*pool->tx_descs), + GFP_KERNEL); + if (!pool->tx_descs) + return -ENOMEM; + + return 0; +} + struct xsk_buff_pool *xp_create_and_assign_umem(struct xdp_sock *xs, struct xdp_umem *umem) { @@ -59,11 +69,9 @@ struct xsk_buff_pool *xp_create_and_assign_umem(struct xdp_sock *xs, if (!pool->heads) goto out; - if (xs->tx) { - pool->tx_descs = kcalloc(xs->tx->nentries, sizeof(*pool->tx_descs), GFP_KERNEL); - if (!pool->tx_descs) + if (xs->tx) + if (xp_alloc_tx_descs(pool, xs)) goto out; - } pool->chunk_mask = ~((u64)umem->chunk_size - 1); pool->addrs_cnt = umem->size; |