Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp430358pxj; Wed, 2 Jun 2021 02:47:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAkpEYv4kHETTDKETxFmmY9lQs79Aw3JuaQ6qfKoYWqGMBtpbjfIYlX9t1MtyIS9fh9Ktp X-Received: by 2002:a17:906:6dc3:: with SMTP id j3mr34133002ejt.448.1622627248228; Wed, 02 Jun 2021 02:47:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622627248; cv=none; d=google.com; s=arc-20160816; b=atPYYvhSu4NnD3KY3fMFtggmjREH/fjHsziw1kNwyFVwhzaOHN5jcAqqcqCixDWA1F Pi5HZHlOTGeDoVzYlHUM8vjWZM9e+Hp7nM/fL72fg1eJVMm7LonRjFF+JnVYFcyceE4B bzsLnhn3GasC8CZECChmlQNDkwDV/aVy6f5/OQ/o7xbEkFhGFwkgCgAGx06CGA3nJQPg H/r6w73k0HfDvZWK/3YmdzwfFTHnJXBh+Gbb5pBt2qul6xfwZSblSsV/4tJUQbUaK8JQ AuwDURFNWRDH5Ox0asYKp8q4M9JsD0BPpYAkOgz9otE7vCI9NgDjghhNMNcGXGOX0iVL BWSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=wf8QgPbc3KHLrXcx5xgLcKl+CLabL/UGbZXv0BcNs0U=; b=TAV9gUL7iHuC9DrOGh1OUSTPxEb1WLRVWxICtYaziBBGSx6h8pFjBDLBZDx26V+Ij1 O/3I+6rZyPKEdLW1mJaboHMLdB5swvmORDr3BsqdsI/zUsMJ3iEXCiY9nBdErjIsVvRy 9N3W47CUknITwm+W4QtsdLYVZ1wISPqq6IFgFrrb8Pcg8ddMwVeN7optKS9tRniYknYa 28b0C+57+NmpyJfcVrhGtkIjjtLPzTOgU+qVVTKgpBhb+dkhxtjLCYvENHgcgvMA9Y94 xjxEUcOMxuQD0v2mfuH7A4OEKy+8PxHKhOhXmNvh4XgbnKYsq/2RIJt0a5mJN0Wo3+t3 sBTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="Sx/iTsXo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k11si1771743edx.76.2021.06.02.02.47.05; Wed, 02 Jun 2021 02:47:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="Sx/iTsXo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232651AbhFBIbz (ORCPT + 99 others); Wed, 2 Jun 2021 04:31:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232603AbhFBIbx (ORCPT ); Wed, 2 Jun 2021 04:31:53 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63DD9C061574; Wed, 2 Jun 2021 01:30:10 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id v12so720157plo.10; Wed, 02 Jun 2021 01:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wf8QgPbc3KHLrXcx5xgLcKl+CLabL/UGbZXv0BcNs0U=; b=Sx/iTsXozmbRZnGN9fq3bWKxG01X391EoJBxsaJx6W/MRow9PV6ZdKNdS2H/wt7ef0 M8AXoVDNR8cR15Cf/wyjZ1OrH1vCPpckNC7sZdY/UjA/6n47n8/zN2nfGPCAV3KFrtVY 8vwX1KFPLDm8kCxMhpo7/NiQwdwcFkbWfJGaB+3l/ED3YMZB0yVO4K0WY2wskG+u9pEn 5Eouy1/ZtYxPYodzF9Y9mqLi7FFZWpLqTy3NUtVQ/3wcA6XqxxzskpsR///y/1Wi03RI XIuPPTUsXyZDa18vmGuwBhoppqi/3ukZi9Xzi7XYNwo5l9ohrbfk5SzJycfg/zMguC0f DbmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wf8QgPbc3KHLrXcx5xgLcKl+CLabL/UGbZXv0BcNs0U=; b=LhDxppqVENChFFuPL/4Xt+yrWxKyV30lvbJm7SLty1vYgp70jMbo6Aqfjg4ncEe6Qs xQSuqy3gPvh2/0zgUeqk9jCzHETKPL1M2oAmh5/adBw9kOnd9Ij4F/jRpgVmjWSQS/UG vkGLvGKkoz318boCLWTg+kazuxAGCEXZ400mxagOB8hX2avvwzLb2Rorsj5kOYKPkTaZ wIjOpLLyvl4r/d2Ss1BbtkQT3eiXUclDV9Jr2gxuLG1QF8MJVsSJq8DHYN3duyMgtiEL JV8zc2Iv8PZ47JfgrP22xsWu2AnopzLJRNBc5lJaP2pw25iDpMnR5ye1dadLoEW3X7W5 Guyg== X-Gm-Message-State: AOAM531alHd4399Dyle4wftSBPeZg/1/l6UqvggLCEua+SiKq7QhVwSA l9Xee2z2pcmVMyLY5TcsXwjieK3Vi81SIj6aQTg= X-Received: by 2002:a17:90a:9103:: with SMTP id k3mr4371526pjo.117.1622622609981; Wed, 02 Jun 2021 01:30:09 -0700 (PDT) MIME-Version: 1.0 References: <20210602031001.18656-1-wanghai38@huawei.com> In-Reply-To: <20210602031001.18656-1-wanghai38@huawei.com> From: Magnus Karlsson Date: Wed, 2 Jun 2021 10:29:58 +0200 Message-ID: Subject: Re: [PATCH net-next] xsk: Return -EINVAL instead of -EBUSY after xsk_get_pool_from_qid() fails To: Wang Hai Cc: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , "Karlsson, Magnus" , Jonathan Lemon , "David S. Miller" , Jakub Kicinski , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Network Development , bpf , open list Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 2, 2021 at 6:02 AM Wang Hai wrote: > > 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 > --- > 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; I guess your intent here is to return -EINVAL only when the queue_id is larger than the number of active queues. But this patch also changes the return code when the queue id is already in use and in that case we should continue to return -EBUSY. As this function is used by a number of drivers, the easiest way to accomplish this is to introduce a test for queue_id out of bounds before this if-statement and return -EINVAL there. > pool->netdev = netdev; > pool->queue_id = queue_id; > -- > 2.17.1 >