From patchwork Thu Sep 17 05:30:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77976 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BB48BA04B6; Thu, 17 Sep 2020 07:33:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9050D1D59C; Thu, 17 Sep 2020 07:31:20 +0200 (CEST) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 290C31D57C for ; Thu, 17 Sep 2020 07:31:12 +0200 (CEST) Received: by mail-lf1-f66.google.com with SMTP id d15so749998lfq.11 for ; Wed, 16 Sep 2020 22:31:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uQhraO1g72tWjTGxSAywlOStDpmL/77DQ8ZO6LgDuX4=; b=o31ypeNEnAcLtNUOj9gmDAwqyjJw8ropNn58xUudxn251MkagiuiVk1apS7igz4ljP 739hrlpV4o9KUp0V3MMvikARDapH/00zzje40sIf4x17Unt86YpKayI5IZl/iS7G7uv0 O97TEPPkNh6MoAPz8fI30d4Qehd+Zm+uoZbuC7U+S5DPgyXB0j+hEdCQKeH1zxuOiG0/ uVoxRco1dSv28dKU8b6hqsKpLP1hVaep1begkaA/Pgmazs2+zZrn9WzUUhknWKdTVLgI mVfHu82L2FTDtPvNUNuC9RDD4gDbcgge0p4+pUVowVYhhYQY+Hh+OiBbkQ3LbhLpHiT6 XaHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uQhraO1g72tWjTGxSAywlOStDpmL/77DQ8ZO6LgDuX4=; b=fdMIqIw6YaV6ma+aR/FtO5z/DsvtJRSEE1TX6kRl0hXCzSjKUXhbiydA7dbPcISncw /xr7iMgYTYAw1vFR/vGil9h8dys+qHqjjQQ2qZTH0+lxskeVwHKWJ2QxMQVTUSQzrRPS gaWb9G7LCGCI0z+1OgZ1NhEo/Tb18TI+8VrEapz5Z6XTAVaHX9Wl4AOzQZAsc+bvkB+E Dc74kw48W97NGG5F3as38pD88tREKtsnkV0JJA7sgbyKKqHJcv0HM3CGsjmM/JHXtnyh nt5U3Ool/sAl+x1xavQMM24RuobdV4H/kJcDfhSaFeuO2IcGuMOlgKwU+QhGpikQ0B4k uLqA== X-Gm-Message-State: AOAM532Ty/bdYw005GwmHvjQcUi7uwYjr+gsLrh6wnp0dHksmHzgr8XL eLJggHGDTaZFD151aIFGlrYQ/QtKazBpT2f/ X-Google-Smtp-Source: ABdhPJyM4eqqUYSpGGXC4tAtd//biXalDetMeZ+DU7akDHsRrnmiHKdnDP++8ddsDSdKjhObLRTeyg== X-Received: by 2002:a05:6512:2101:: with SMTP id q1mr10198739lfr.157.1600320671384; Wed, 16 Sep 2020 22:31:11 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:10 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:31 +0200 Message-Id: <20200917053035.1889989-17-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 16/20] net/ena/base: convert values to u32 before shifting 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When filling out meta descriptor, all values should be converted to the desired type (u32 in case of the meta descriptor) to prevent losing the data. For example, io_sq->phase is of type u8. If ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT would be greater then 8, all data would be lost. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_eth_com.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/ena/base/ena_eth_com.c b/drivers/net/ena/base/ena_eth_com.c index b6821a7917..766643f47b 100644 --- a/drivers/net/ena/base/ena_eth_com.c +++ b/drivers/net/ena/base/ena_eth_com.c @@ -278,7 +278,7 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK; /* bits 0-9 of the mss */ - meta_desc->word2 |= (ena_meta->mss << + meta_desc->word2 |= ((u32)ena_meta->mss << ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT) & ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK; /* bits 10-13 of the mss */ @@ -288,7 +288,7 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, /* Extended meta desc */ meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK; - meta_desc->len_ctrl |= (io_sq->phase << + meta_desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT) & ENA_ETH_IO_TX_META_DESC_PHASE_MASK; @@ -301,7 +301,7 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT) & ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK; - meta_desc->word2 |= (ena_meta->l4_hdr_len << + meta_desc->word2 |= ((u32)ena_meta->l4_hdr_len << ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT) & ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK; @@ -434,16 +434,16 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, if (!have_meta) desc->len_ctrl |= ENA_ETH_IO_TX_DESC_FIRST_MASK; - desc->buff_addr_hi_hdr_sz |= (header_len << + desc->buff_addr_hi_hdr_sz |= ((u32)header_len << ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT) & ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK; - desc->len_ctrl |= (io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) & + desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) & ENA_ETH_IO_TX_DESC_PHASE_MASK; desc->len_ctrl |= ENA_ETH_IO_TX_DESC_COMP_REQ_MASK; /* Bits 0-9 */ - desc->meta_ctrl |= (ena_tx_ctx->req_id << + desc->meta_ctrl |= ((u32)ena_tx_ctx->req_id << ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT) & ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK; @@ -491,7 +491,7 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc)); - desc->len_ctrl |= (io_sq->phase << + desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) & ENA_ETH_IO_TX_DESC_PHASE_MASK; }