From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 654E65F33; Wed, 26 Sep 2018 08:38:23 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id E6F8780065; Wed, 26 Sep 2018 06:38:21 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 25 Sep 2018 23:38:19 -0700 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 25 Sep 2018 23:38:19 -0700 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id w8Q6cH86031000; Wed, 26 Sep 2018 07:38:17 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 47B5E1626D1; Wed, 26 Sep 2018 07:38:17 +0100 (BST) From: Andrew Rybchenko To: =?UTF-8?q?Ga=C3=ABtan=20Rivet?= CC: , Ferruh Yigit , Igor Romanov , Date: Wed, 26 Sep 2018 07:38:04 +0100 Message-ID: <1537943884-12979-1-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1535528736-31325-1-git-send-email-arybchenko@solarflare.com> References: <1535528736-31325-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24116.005 X-TM-AS-Result: No-2.738500-4.000000-10 X-TMASE-MatchedRID: JTs8eQebBzBKNTF8bmhy8bCvlllU7Dl1bnWMzHijq6TfUZT83lbkEEok D8d4JXHvZ4MWUo42E9+/GjIHLzn7Bt5zzG61LKZS4RtSDjG+z7B9LQinZ4QefPcjNeVeWlqY+gt Hj7OwNO1J4MCrOTno56PINvdXMKe1CuZaTV91KoSJ/cw7yFRomF2Rgx+MN2pubD+NOzeZIl6iC6 3B9RXpqW6W29aomuYbTV10BMk3jp/xXRLpkMAIlNpAu0sLxpSoQ8G+yYJYYdZRZDsGiXQioL4jx KnHJRLcwL6SxPpr1/I= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--2.738500-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24116.005 X-MDID: 1537943902-tt4rDMHL08xO Subject: [dpdk-dev] [PATCH v2] net/failsafe: report actual device capabilities X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Sep 2018 06:38:23 -0000 From: Igor Romanov Failsafe device capabilities depend on supported by the failsafe itself plus capabilities supported by sub-devices. Make fs_dev_infos_get() take failsafe device capabilities into account. Fixes: cac923cfea47 ("ethdev: support runtime queue setup") Cc: stable@dpdk.org Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko --- drivers/net/failsafe/failsafe_ops.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c index 86d7fa2a0..7f8bcd4c6 100644 --- a/drivers/net/failsafe/failsafe_ops.c +++ b/drivers/net/failsafe/failsafe_ops.c @@ -890,6 +890,8 @@ fs_stats_reset(struct rte_eth_dev *dev) * all sub_devices and the default capabilities. * Uses a logical AND of TX capabilities among * the active probed sub_device and the default capabilities. + * Uses a logical AND of device capabilities among + * all sub_devices and the default capabilities. * */ static void @@ -908,10 +910,12 @@ fs_dev_infos_get(struct rte_eth_dev *dev, uint64_t rx_offload_capa; uint64_t rxq_offload_capa; uint64_t rss_hf_offload_capa; + uint64_t dev_capa; rx_offload_capa = default_infos.rx_offload_capa; rxq_offload_capa = default_infos.rx_queue_offload_capa; rss_hf_offload_capa = default_infos.flow_type_rss_offloads; + dev_capa = default_infos.dev_capa; FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_PROBED) { rte_eth_dev_info_get(PORT_ID(sdev), &PRIV(dev)->infos); @@ -920,12 +924,14 @@ fs_dev_infos_get(struct rte_eth_dev *dev, PRIV(dev)->infos.rx_queue_offload_capa; rss_hf_offload_capa &= PRIV(dev)->infos.flow_type_rss_offloads; + dev_capa &= PRIV(dev)->infos.dev_capa; } sdev = TX_SUBDEV(dev); rte_eth_dev_info_get(PORT_ID(sdev), &PRIV(dev)->infos); PRIV(dev)->infos.rx_offload_capa = rx_offload_capa; PRIV(dev)->infos.rx_queue_offload_capa = rxq_offload_capa; PRIV(dev)->infos.flow_type_rss_offloads = rss_hf_offload_capa; + PRIV(dev)->infos.dev_capa = dev_capa; PRIV(dev)->infos.tx_offload_capa &= default_infos.tx_offload_capa; PRIV(dev)->infos.tx_queue_offload_capa &= -- 2.17.1