Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3856799pxv; Mon, 19 Jul 2021 10:22:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzN8xFc2xB+RBrm2QQ0Lhr7yiTpBKzwV+YdjJhyP9dqhJKvWcLOfygwXAVQ1swtc2EJX5PZ X-Received: by 2002:a17:906:5e4c:: with SMTP id b12mr22711316eju.230.1626715369949; Mon, 19 Jul 2021 10:22:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626715369; cv=none; d=google.com; s=arc-20160816; b=dCISyds2ZJ3Qw+lNGugXASbgAISUNVCJv7cC0XvONkIbM18lXLD7afghre/iDmGlsx oPaHykqYZx27oxPlFTDLo29wJBuk+qrOPFuRUXIZ76yghbEROsbW0UU6DKZF+mpo65m/ P3A66tuJHMmTQcSBSSfZCD8TxrxeRhV3JjVB5mTfVfraPHn2WpjituxTpOPleuzsIt0+ mPBeYub8a4eYd+ptP3cx54GUFY4aKgLmVTE4idoPcd1R6DNAB6Y393MY+rVZ8oMpTiTt HXNKvKUSmW+vgk6quyEeqbqLY2OAigTDFNGeIZd9jHCoUhguFKrAvadxXG2BFK/ZeEoN Rs7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=STMHaaYUqQClX5dm9iutlGLMoqQBzlOmN3MVfODY4zA=; b=xgIHX/ZPDv7e1b6YGJqKmUFl48qXGn1bXk2MqMZhnQZW1n8IagK46QCt/duC1BDwj6 KSyI8goBHFsmirtYywOxtg7oPs/hrJNql+16+I+BjSTcDJJU1GjpzHnVc7EWQabIDm+s mXN7g8eMqk2BqBWUw8aEhYA6DwAUb4k20DjhyPSRxx+LXgApGtJLxZPtdnNF5BBglrRY h5CO0idvQaf0loqHR0v1wFrwW95jV0FbaSa+IBsfymP/jhr/NSS9vYzmRr+2MfeYD5vl n9oM3LpOf8KUqxlm3vCRSNoRq4T87VZ43xF9wzX5MJCl1j/Newybosf6S4v7Oi7VM8xW vRYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xFOqRfj+; 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=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r9si20127365edq.454.2021.07.19.10.22.26; Mon, 19 Jul 2021 10:22:49 -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=@linuxfoundation.org header.s=korg header.b=xFOqRfj+; 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=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352975AbhGSQen (ORCPT + 99 others); Mon, 19 Jul 2021 12:34:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:58334 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347655AbhGSPUF (ORCPT ); Mon, 19 Jul 2021 11:20:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EEA2F6140E; Mon, 19 Jul 2021 15:59:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626710342; bh=msz6kQGMxwihYwKqvmiGMzNq4gvtPtrGbyd0fbVlsw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xFOqRfj+FAkX0u+LjmEa20qCYyWC1pYD/F52KY1pKwEM0yFMGWN6kdJymW9eOia8T b+mia38ipAELn36cR7NfB2yc8dJz0h2vz+rylos+7cMYbmFBVSnXXpJURkjFt6oLOl 0UXaZsidy8NaOkuGWh739LrVgFP7xCK4SAuUSnSU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eli Cohen , "Michael S. Tsirkin" , Jason Wang , Sasha Levin Subject: [PATCH 5.10 175/243] vdpa/mlx5: Fix possible failure in umem size calculation Date: Mon, 19 Jul 2021 16:53:24 +0200 Message-Id: <20210719144946.555350354@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144940.904087935@linuxfoundation.org> References: <20210719144940.904087935@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Eli Cohen [ Upstream commit 71ab6a7cfbae27f86a3901daab10bfe13b3a1e3a ] umem size is a 32 bit unsigned value so assigning it to an int could cause false failures. Set the calculated value inside the function and modify function name to reflect the fact it updates the size. This bug was found during code review but never had real impact to this date. Fixes: 1a86b377aa21 ("vdpa/mlx5: Add VDPA driver for supported mlx5 devices") Signed-off-by: Eli Cohen Link: https://lore.kernel.org/r/20210530090349.8360-1-elic@nvidia.com Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang Signed-off-by: Sasha Levin --- drivers/vdpa/mlx5/net/mlx5_vnet.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c index ef76cfedcd79..5773b68f9a93 100644 --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -596,8 +596,8 @@ static void cq_destroy(struct mlx5_vdpa_net *ndev, u16 idx) mlx5_db_free(ndev->mvdev.mdev, &vcq->db); } -static int umem_size(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, int num, - struct mlx5_vdpa_umem **umemp) +static void set_umem_size(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, int num, + struct mlx5_vdpa_umem **umemp) { struct mlx5_core_dev *mdev = ndev->mvdev.mdev; int p_a; @@ -620,7 +620,7 @@ static int umem_size(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq *umemp = &mvq->umem3; break; } - return p_a * mvq->num_ent + p_b; + (*umemp)->size = p_a * mvq->num_ent + p_b; } static void umem_frag_buf_free(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_umem *umem) @@ -636,15 +636,10 @@ static int create_umem(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *m void *in; int err; __be64 *pas; - int size; struct mlx5_vdpa_umem *umem; - size = umem_size(ndev, mvq, num, &umem); - if (size < 0) - return size; - - umem->size = size; - err = umem_frag_buf_alloc(ndev, umem, size); + set_umem_size(ndev, mvq, num, &umem); + err = umem_frag_buf_alloc(ndev, umem, umem->size); if (err) return err; -- 2.30.2