Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4426791pxj; Mon, 21 Jun 2021 23:16:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8nCFflF+eJ/mB92PshrkpdWwmtsNSyZZuIHkmNZOQgB+l23Qsvxj7RHENlhhGPFxsCzlC X-Received: by 2002:a05:6e02:2142:: with SMTP id d2mr1520940ilv.48.1624342582133; Mon, 21 Jun 2021 23:16:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624342582; cv=none; d=google.com; s=arc-20160816; b=tFtfYs7fS18KdCE3ycset/dOif0FSG9DEdhtLemddhEf3hYB/J/tOWikslV6Fa/EK2 YecwW+d1Jiy4AC6P+gH5clkAbN7BXOcNMLwPFfhs78W8bG9RzvtnWKiArf+fqiGP9WrV lZEKT84LLGC6TVpUyd0wB3bktsKGDIX2A+89YHSghjXB744otM2yqiz1VIGH4lOpbDr3 A333pxwZUlruX7DKoA6nQI9/kmdLNmhEwx4ahMeoKqWzxBhib7URezb2Bi5ruJCutSBO HzR3p6Pt+ce2zyP6J3BGGjOO1Y0rDn4AcCwE9RhvIpmq4opK8BzfE/FFwDoJ7ny2Jzdm ZgUQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=GrEuX1Pi3wn/PCH1pt7gJpKAB7mmFoHNgFw2mT5kscg=; b=h3Zs9unsCQnqjnHSVy4THeqdvUu4hONXP16leyYHVX0dC6HT7xPHdswEpVwusKtNx8 nt+jw6Bv8XWBHpdiRRkhiWLVwJn0FUT6JTBEa5jNpOtWdPN3QIPNuuYCrTt5k+MT7ru4 ueeYpbkffJmCq/ZgnVHxo6kDAd+dqaqb12mZMs9VwUcFg8bhsW23TfJLRMA7uwFp4cDq WEKdM0iMPfsHg4Ahhsvm26hbTbdsPx3jqpqyTxtXOt3GOxFNUfTeS2y438hwyuQbB2rg MPZgfvQN9/g/yQ5PMBEpZ7cIzeIV2ePeYKmyZXx+MNaV0FKZ7b5DnraNDjZR5wQn/qhJ FlOw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b1si809569jar.75.2021.06.21.23.16.06; Mon, 21 Jun 2021 23:16:22 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229501AbhFVGQq (ORCPT + 99 others); Tue, 22 Jun 2021 02:16:46 -0400 Received: from mga17.intel.com ([192.55.52.151]:25148 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229677AbhFVGQl (ORCPT ); Tue, 22 Jun 2021 02:16:41 -0400 IronPort-SDR: grlOUodDHUNQacapJi8fD7zETcq0RcxxMp7uGrAS0pUY5PvHQ/ECA2jV+5gEBD9VaCmsk3uNlL i/k7duP1JqUw== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="187373707" X-IronPort-AV: E=Sophos;i="5.83,291,1616482800"; d="scan'208";a="187373707" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 23:14:26 -0700 IronPort-SDR: uTXj1eV9OSREsDrxY82DojwtSd6ZTstZHlT5AS6eImRzMPg6WNfI/ZWSztLu3Wl73ZPampQl6f 0lpT8WnhUSkA== X-IronPort-AV: E=Sophos;i="5.83,291,1616482800"; d="scan'208";a="641551760" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 23:14:26 -0700 From: ira.weiny@intel.com To: Jason Gunthorpe Cc: Ira Weiny , Mike Marciniszyn , Dennis Dalessandro , Doug Ledford , Faisal Latif , Shiraz Saleem , Bernard Metzler , Kamal Heib , linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] RDMA/siw: Remove kmap() Date: Mon, 21 Jun 2021 23:14:21 -0700 Message-Id: <20210622061422.2633501-4-ira.weiny@intel.com> X-Mailer: git-send-email 2.28.0.rc0.12.gb6a658bd00c9 In-Reply-To: <20210622061422.2633501-1-ira.weiny@intel.com> References: <20210622061422.2633501-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ira Weiny kmap() is being deprecated and will break uses of device dax after PKS protection is introduced.[1] These uses of kmap() in the SIW driver are thread local. Therefore kmap_local_page() is sufficient to use and will work with pgmap protected pages when those are implemnted. There is one more use of kmap() in this driver which is split into its own patch because kmap_local_page() has strict ordering rules and the use of the kmap_mask over multiple segments must be handled carefully. Therefore, that conversion is handled in a stand alone patch. Use kmap_local_page() instead of kmap() in the 'easy' cases. [1] https://lore.kernel.org/lkml/20201009195033.3208459-59-ira.weiny@intel.com/ Signed-off-by: Ira Weiny --- drivers/infiniband/sw/siw/siw_qp_tx.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/sw/siw/siw_qp_tx.c b/drivers/infiniband/sw/siw/siw_qp_tx.c index 7989c4043db4..db68a10d12cd 100644 --- a/drivers/infiniband/sw/siw/siw_qp_tx.c +++ b/drivers/infiniband/sw/siw/siw_qp_tx.c @@ -76,7 +76,7 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void *paddr) if (unlikely(!p)) return -EFAULT; - buffer = kmap(p); + buffer = kmap_local_page(p); if (likely(PAGE_SIZE - off >= bytes)) { memcpy(paddr, buffer + off, bytes); @@ -84,7 +84,7 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void *paddr) unsigned long part = bytes - (PAGE_SIZE - off); memcpy(paddr, buffer + off, part); - kunmap(p); + kunmap_local(buffer); if (!mem->is_pbl) p = siw_get_upage(mem->umem, @@ -96,10 +96,10 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void *paddr) if (unlikely(!p)) return -EFAULT; - buffer = kmap(p); + buffer = kmap_local_page(p); memcpy(paddr + part, buffer, bytes - part); } - kunmap(p); + kunmap_local(buffer); } } return (int)bytes; @@ -485,6 +485,7 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx, struct socket *s) while (sge_len) { size_t plen = min((int)PAGE_SIZE - fp_off, sge_len); + void *kaddr; if (!is_kva) { struct page *p; @@ -517,10 +518,11 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx, struct socket *s) iov[seg].iov_base, plen); } else if (do_crc) { + kaddr = kmap_local_page(p); crypto_shash_update(c_tx->mpa_crc_hd, - kmap(p) + fp_off, + kaddr + fp_off, plen); - kunmap(p); + kunmap_local(kaddr); } } else { u64 va = sge->laddr + sge_off; -- 2.28.0.rc0.12.gb6a658bd00c9