From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F040AA00C4; Tue, 26 Jul 2022 12:16:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E2D6042685; Tue, 26 Jul 2022 12:16:39 +0200 (CEST) Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by mails.dpdk.org (Postfix) with ESMTP id B449840695 for ; Tue, 26 Jul 2022 12:16:38 +0200 (CEST) Received: by mail-wr1-f51.google.com with SMTP id v13so11700967wru.12 for ; Tue, 26 Jul 2022 03:16:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=emumba-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vi4G/qCxPOnY0x+//M1MZRprTPjbY/RJJQeon4L1wX0=; b=shxcaomTJg6qy7kakAxFEYAyMDu4VXWq9jzNSKjyjDlRoJpjfC0DayQB5MyLFbmVbX dN1c15RqApFCBXasn1iMOWCrA6C2PSqbfziT27qRyW0MvSP+KPoLshzDVjD12uAyI9E+ 5ghCL7Z/uLBVaKh0t4+Z6jWtD/TQHPiju4tc2rH/Ao0uvD+u2REoVi45pPGUS/cHpfno ShUNjdTmB6iBwov3+zmjOLpQqlPRvs5zsipbb5j5roeZulDFrwYTAItlrBdxVHHDcLhX sot33ljipi/ikJR5IvKDmWx+PztDOQfuoiNsNTs5IM1XYo9sDMUTWS7hW0CM7Gx+9MSk 8eFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vi4G/qCxPOnY0x+//M1MZRprTPjbY/RJJQeon4L1wX0=; b=xs5eScdAb02NvglRTVq7WH1p8vznpuBtdL1o6hVrTDjhvNOGfYyVw06mmKsuzr5CjS kAAXyPNLTqO0yAai/mohAjoS9JHvoMLYxwCNS6nUWrkhXg/x+22ivdYwHjamwRhF0LZR H1unqdmEphJqSNG/QfweqJiLx7SJ87cDUy8bgDf+6L7Zz4FOdHv91F6THIDDjhZSYc/9 fi3GTZjFowhSJ2xI96es5xnpmlKPptP/mRb6Zcl0BsoO+22TN1hy+zvxqAndFBE/uXkt +I5u2vO7iMA8YcpnVXS3gYAUrxTC0I1M0rAN+1/A/MHOgzBqkU9tAYY6ExLv1ZINXQfn F8xQ== X-Gm-Message-State: AJIora8RygGsOdM7+O6FF4XibJa4Jj2dKiogdhN8841sGaYliLqd/NBy tFm+EVmT8z2VAMknFlmW+QHJmgC8+9Ks71Yd X-Google-Smtp-Source: AGRyM1tOxdF6A4envL+aY9xNHa+YxMe5PDgLm16PycKJVlvzDpFSmnT4ebkB4eGgSbeM7OHxvEgc9Q== X-Received: by 2002:adf:e6d1:0:b0:21e:493f:e781 with SMTP id y17-20020adfe6d1000000b0021e493fe781mr10068104wrm.501.1658830598338; Tue, 26 Jul 2022 03:16:38 -0700 (PDT) Received: from localhost.localdomain ([182.191.83.208]) by smtp.gmail.com with ESMTPSA id n17-20020a05600c4f9100b003a02cbf862esm17796134wmq.13.2022.07.26.03.16.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 03:16:37 -0700 (PDT) From: "huzaifa.rahman" To: jgrajcia@cisco.com Cc: dev@dpdk.org, "huzaifa.rahman" Subject: [PATCH] memif: memif driver does not crashes when there's different N of TX and RX queues Date: Tue, 26 Jul 2022 15:16:28 +0500 Message-Id: <20220726101628.2118564-1-huzaifa.rahman@emumba.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Bugzilla ID: 734 there's a bug in memif_stats_get() function due to confusion between C2S (client->server) and S2C (server->client) rings, causing a crash if there's a different number of RX and TX queues. this is fixed by selectiing the correct rings for RX and TX i.e for RX, S2C rings are selected and for TX, C2S rings are selected. Signed-off-by: huzaifa.rahman --- drivers/net/memif/rte_eth_memif.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c index dd951b8296..e56df84e10 100644 --- a/drivers/net/memif/rte_eth_memif.c +++ b/drivers/net/memif/rte_eth_memif.c @@ -1444,8 +1444,8 @@ memif_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) stats->opackets = 0; stats->obytes = 0; - tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd->run.num_c2s_rings : - pmd->run.num_s2c_rings; + tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd->run.num_s2c_rings : + pmd->run.num_c2s_rings; nq = (tmp < RTE_ETHDEV_QUEUE_STAT_CNTRS) ? tmp : RTE_ETHDEV_QUEUE_STAT_CNTRS; @@ -1458,8 +1458,8 @@ memif_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) stats->ibytes += mq->n_bytes; } - tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd->run.num_s2c_rings : - pmd->run.num_c2s_rings; + tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd->run.num_c2s_rings : + pmd->run.num_s2c_rings; nq = (tmp < RTE_ETHDEV_QUEUE_STAT_CNTRS) ? tmp : RTE_ETHDEV_QUEUE_STAT_CNTRS; -- 2.25.1