xsk_get_pool_from_qid() fails not because the device's queues are busy, but because the queue_id exceeds the current number of queues. So when it fails, it is better to return -EINVAL instead of -EBUSY. Signed-off-by: Wang Hai <wanghai38@xxxxxxxxxx> --- net/xdp/xsk_buff_pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c index 8de01aaac4a0..30ece117117a 100644 --- a/net/xdp/xsk_buff_pool.c +++ b/net/xdp/xsk_buff_pool.c @@ -135,7 +135,7 @@ int xp_assign_dev(struct xsk_buff_pool *pool, return -EINVAL; if (xsk_get_pool_from_qid(netdev, queue_id)) - return -EBUSY; + return -EINVAL; pool->netdev = netdev; pool->queue_id = queue_id; -- 2.17.1