From nobody Tue Nov 4 23:50:07 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=oracle.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1533484146600430.724406742537; Sun, 5 Aug 2018 08:49:06 -0700 (PDT) Received: from localhost ([::1]:59036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmLH2-0000gt-2R for importer@patchew.org; Sun, 05 Aug 2018 11:48:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39896) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmL4q-0007Et-HL for qemu-devel@nongnu.org; Sun, 05 Aug 2018 11:36:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmL4m-0006WX-RB for qemu-devel@nongnu.org; Sun, 05 Aug 2018 11:36:16 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:40394) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fmL4m-0006WP-Im for qemu-devel@nongnu.org; Sun, 05 Aug 2018 11:36:12 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w75FYUBD149286; Sun, 5 Aug 2018 15:36:10 GMT Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2130.oracle.com with ESMTP id 2kn1nctfta-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 05 Aug 2018 15:36:10 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w75FaAib010756 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 5 Aug 2018 15:36:10 GMT Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w75FaAjC029223; Sun, 5 Aug 2018 15:36:10 GMT Received: from localhost.localdomain (/77.138.186.148) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 05 Aug 2018 08:36:09 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references; s=corp-2018-07-02; bh=NjJ/DHbruYSWWKxgRADTXe5QLXO2QFiR7O0G8jwZPZg=; b=3BKU8IsEflIhGhLM530CeIZ8bbvaUcM+mWr8AOFl3z0fKympe80GKt7R2WX2DgcRVxpj rI8MPVTciIPvXMlDHAcqOCIqWGVmynZaBeTaEhsde9ckfPFJNVRUW4UPTs1jyKbccaj/ zsoiKq+uZEEnzrrCIwcnWDKGj6ONF9JneXmrw9VaxpC5uc3qOaE5KfuhMFJQGKktHq2/ dN8/TxEbx30G1V0t3kigtH3eQ15EwfIzUOZl2X6YelB9pf20eLaUaW7kXOd7+YHJfPra YanVyaxnhr/A1cTbcrNHgKFse0/yGS4vSHcbOvPOG69WNr78t37RFl8qYoieZNBJfeED yw== From: Yuval Shaia To: qemu-devel@nongnu.org, yuval.shaia@oracle.com, marcel.apfelbaum@gmail.com Date: Sun, 5 Aug 2018 18:35:17 +0300 Message-Id: <20180805153518.2983-13-yuval.shaia@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180805153518.2983-1-yuval.shaia@oracle.com> References: <20180805153518.2983-1-yuval.shaia@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8975 signatures=668707 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=834 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1808050173 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.79 Subject: [Qemu-devel] [PATCH v2 12/13] hw/rdma: Bugfix - Support non-aligned buffers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZohoMail: RDMRC_0 RDKM_0 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" RDMA application can provide non-aligned buffers to be registered. In such case the DMA address passed by driver is pointing to the beginning of the physical address of the mapped page so we can't distinguish between two addresses from the same page. Fix it by keeping the offset of the virtual address in mr->virt. Signed-off-by: Yuval Shaia Reviewed-by: Marcel Apfelbaum --- hw/rdma/rdma_rm.c | 2 ++ hw/rdma/vmw/pvrdma_cmd.c | 1 + 2 files changed, 3 insertions(+) diff --git a/hw/rdma/rdma_rm.c b/hw/rdma/rdma_rm.c index 859c900003..8d59a42cd1 100644 --- a/hw/rdma/rdma_rm.c +++ b/hw/rdma/rdma_rm.c @@ -166,6 +166,7 @@ int rdma_rm_alloc_mr(RdmaDeviceResources *dev_res, uint= 32_t pd_handle, mr->virt =3D host_virt; mr->start =3D guest_start; mr->length =3D guest_length; + mr->virt +=3D (mr->start & (TARGET_PAGE_SIZE - 1)); =20 ret =3D rdma_backend_create_mr(&mr->backend_mr, &pd->backend_pd, m= r->virt, mr->length, access_flags); @@ -203,6 +204,7 @@ void rdma_rm_dealloc_mr(RdmaDeviceResources *dev_res, u= int32_t mr_handle) rdma_backend_destroy_mr(&mr->backend_mr); pr_dbg("start=3D0x%" PRIx64 "\n", mr->start); if (mr->start) { + mr->virt -=3D (mr->start & (TARGET_PAGE_SIZE - 1)); munmap(mr->virt, mr->length); } res_tbl_dealloc(&dev_res->mr_tbl, mr_handle); diff --git a/hw/rdma/vmw/pvrdma_cmd.c b/hw/rdma/vmw/pvrdma_cmd.c index 4f74b29936..b74b0b48d0 100644 --- a/hw/rdma/vmw/pvrdma_cmd.c +++ b/hw/rdma/vmw/pvrdma_cmd.c @@ -59,6 +59,7 @@ static void *pvrdma_map_to_pdir(PCIDevice *pdev, uint64_t= pdir_dma, } =20 host_virt =3D mremap(curr_page, 0, length, MREMAP_MAYMOVE); + pr_dbg("mremap %p -> %p\n", curr_page, host_virt); if (host_virt =3D=3D MAP_FAILED) { host_virt =3D NULL; error_report("PVRDMA: Failed to remap memory for host_virt"); --=20 2.17.1