Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3888941pxv; Mon, 19 Jul 2021 11:11:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzttDSw4gatc+K2qNN/cr5gGfjFPL6PmodvIQrjGGCOib72jF4VmfN2Zoc/WsHVfmK395Hv X-Received: by 2002:a05:6638:3452:: with SMTP id q18mr20681546jav.111.1626718290790; Mon, 19 Jul 2021 11:11:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626718290; cv=none; d=google.com; s=arc-20160816; b=divYwISAqcN0mokwqglDc16fCEQP6jYYyseh1ug26NZdkmANAVlTG6mv8l9vOKgcCj Z0ci8UyfKPrgDMhwOGy5YAkG2+Kg/+OkWqVUcCwFaR4vR6vTSZf2vO637buINaGrkbWc Goo2klbDAUzD4HgHWUPg1JAZEG995SCHe37vXpeTEzPHg8p+GN4TR1IaQW6CCbZXxjb7 4VPH1vu1/+U8SarnVba3uNUmfYTQA4pecvDAMAtQhtB1mlQhr20eZReNrlKApua+Mozh XPXu2xFymmw1KBoxcS20O3zB+phS1I1Qr1Rj0oqRxZProG9lhTImoaBZeoOlq4Ox1JZy REeQ== 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=E8aVT/Q9Rrcb2xhDf5OlyaX1QZ6HwOf2RW+NQ5JVHi8=; b=Za9g04cXRPkEwdUOusj6TSf27BpNrYbIBTBYcltAdrngVy8VgePAbrkwB+qoN045/h 9RU25IMYI3TCQf877selofimzSu5x36Vu1RZDqIfK4hPaJ3AaUkjtuIEf9X6DOuDwaMb F0Dovk/c50MrLD+LxaxaJ+nGaBoJPUHwW/V1LhRf7IseZkxaTuQtuiMKVn2moMi7DDDB CJfSeZS55PnYAnG3gIqhunKEssGF2+Yu50NMd2viEOV9JF83pt/gCYq8jmLBURT+hxbE cG0/Y3fvUz7ECLTcV05mbLKwZipXPDIxYzRkzvDEj+5Raohc1mQavIVw8OfCdRMBGcRP ZiXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=hCYqVjWg; 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 p20si10832894ioo.40.2021.07.19.11.11.19; Mon, 19 Jul 2021 11:11:30 -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=hCYqVjWg; 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 S1380430AbhGSR2K (ORCPT + 99 others); Mon, 19 Jul 2021 13:28:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:47338 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349564AbhGSPqB (ORCPT ); Mon, 19 Jul 2021 11:46:01 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B67B661209; Mon, 19 Jul 2021 16:26:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626711996; bh=VP0GUshar69puAi37yg/wxXq5L4nJF5ufmP1cjz5SBc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hCYqVjWg0R4o2Jg6Yuv9XdZPbR5fC9Pn2pCYdfYc2M9I6P8I+AOqRJi1Krra7A42z lSAVxuhd5XNA53mzeoHvWDnwRqsIKz8Vl4AXt4j6LJdUgyOWmomhWVh79xWBsVAbp0 RIf9y9nIaMSdlerI6Wl76AeuKqOgSlTiDZAEX9WM= 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.12 210/292] vdp/mlx5: Fix setting the correct dma_device Date: Mon, 19 Jul 2021 16:54:32 +0200 Message-Id: <20210719144949.903219713@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.514164272@linuxfoundation.org> References: <20210719144942.514164272@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 7d23dcdf213c2e5f097eb7eec3148c26eb01d59f ] Before SF support was introduced, the DMA device was equal to mdev->device which was in essence equal to pdev->dev. With SF introduction this is no longer true. It has already been handled for vhost_vdpa since the reference to the dma device can from within mlx5_vdpa. With virtio_vdpa this broke. To fix this we set the real dma device when initializing the device. In addition, for the sake of consistency, previous references in the code to the dma device are changed to vdev->dma_dev. Fixes: d13a15d544ce5 ("vdpa/mlx5: Use the correct dma device when registering memory") Signed-off-by: Eli Cohen Link: https://lore.kernel.org/r/20210606053150.170489-1-elic@nvidia.com Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang Signed-off-by: Sasha Levin --- drivers/vdpa/mlx5/core/mr.c | 9 ++------- drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c index 800cfd1967ad..cfa56a58b271 100644 --- a/drivers/vdpa/mlx5/core/mr.c +++ b/drivers/vdpa/mlx5/core/mr.c @@ -219,11 +219,6 @@ static void destroy_indirect_key(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_m mlx5_vdpa_destroy_mkey(mvdev, &mkey->mkey); } -static struct device *get_dma_device(struct mlx5_vdpa_dev *mvdev) -{ - return &mvdev->mdev->pdev->dev; -} - static int map_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr *mr, struct vhost_iotlb *iotlb) { @@ -239,7 +234,7 @@ static int map_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr u64 pa; u64 paend; struct scatterlist *sg; - struct device *dma = get_dma_device(mvdev); + struct device *dma = mvdev->vdev.dma_dev; for (map = vhost_iotlb_itree_first(iotlb, mr->start, mr->end - 1); map; map = vhost_iotlb_itree_next(map, start, mr->end - 1)) { @@ -298,7 +293,7 @@ err_map: static void unmap_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr *mr) { - struct device *dma = get_dma_device(mvdev); + struct device *dma = mvdev->vdev.dma_dev; destroy_direct_mr(mvdev, mr); dma_unmap_sg_attrs(dma, mr->sg_head.sgl, mr->nsg, DMA_BIDIRECTIONAL, 0); diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c index d5ea956a3a3a..85bcbbce1ef9 100644 --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -2017,7 +2017,7 @@ static int mlx5v_probe(struct auxiliary_device *adev, goto err_mtu; } - mvdev->vdev.dma_dev = mdev->device; + mvdev->vdev.dma_dev = &mdev->pdev->dev; err = mlx5_vdpa_alloc_resources(&ndev->mvdev); if (err) goto err_mpfs; -- 2.30.2