From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751503AbeEBKFg (ORCPT ); Wed, 2 May 2018 06:05:36 -0400 Received: from mail.fireflyinternet.com ([109.228.58.192]:55402 "EHLO fireflyinternet.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750932AbeEBKFd (ORCPT ); Wed, 2 May 2018 06:05:33 -0400 X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; From: Chris Wilson To: iommu@lists.linux-foundation.org Cc: linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, Chris Wilson , =?UTF-8?q?Christian=20K=C3=B6nig?= , Mike Galbraith , Konrad Rzeszutek Wilk , Christoph Hellwig Subject: [PATCH] swiotlb: Suppress "Out of SW-IOMMU" errors for NO_WARN Date: Wed, 2 May 2018 11:05:01 +0100 Message-Id: <20180502100501.28440-1-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.17.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: 78.156.65.138 X-Country: code=GB country="United Kingdom" ip=78.156.65.138 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This extends the warning suppression from commit d0bc0c2a31c9 ("swiotlb: suppress warning when __GFP_NOWARN is set") to suppress the warnings when DMA_ATTR_NO_WARN is given by caller. In such cases the caller wants to handle the error themselves. Fixes: d0bc0c2a31c9 ("swiotlb: suppress warning when __GFP_NOWARN is set") Cc: Christian König Cc: Mike Galbraith Cc: Konrad Rzeszutek Wilk Cc: Christoph Hellwig --- lib/swiotlb.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/swiotlb.c b/lib/swiotlb.c index fece57566d45..2bfb936c5708 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -768,11 +768,14 @@ static bool swiotlb_free_buffer(struct device *dev, size_t size, static void swiotlb_full(struct device *dev, size_t size, enum dma_data_direction dir, - int do_panic) + unsigned long attrs, int do_panic) { if (swiotlb_force == SWIOTLB_NO_FORCE) return; + if (attrs & DMA_ATTR_NO_WARN) + return; + /* * Ran out of IOMMU space for this operation. This is very bad. * Unfortunately the drivers cannot handle this operation properly. @@ -823,7 +826,7 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, /* Oh well, have to allocate and map a bounce buffer. */ map = map_single(dev, phys, size, dir, attrs); if (map == SWIOTLB_MAP_ERROR) { - swiotlb_full(dev, size, dir, 1); + swiotlb_full(dev, size, dir, attrs, 1); return __phys_to_dma(dev, io_tlb_overflow_buffer); } @@ -959,7 +962,7 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems, if (map == SWIOTLB_MAP_ERROR) { /* Don't panic here, we expect map_sg users to do proper error handling. */ - swiotlb_full(hwdev, sg->length, dir, 0); + swiotlb_full(hwdev, sg->length, dir, attrs, 0); attrs |= DMA_ATTR_SKIP_CPU_SYNC; swiotlb_unmap_sg_attrs(hwdev, sgl, i, dir, attrs); -- 2.17.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] swiotlb: Suppress "Out of SW-IOMMU" errors for NO_WARN Date: Wed, 2 May 2018 11:05:01 +0100 Message-ID: <20180502100501.28440-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: iommu@lists.linux-foundation.org Cc: Konrad Rzeszutek Wilk , intel-gfx@lists.freedesktop.org, Mike Galbraith , linux-kernel@vger.kernel.org, Christoph Hellwig , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: iommu@lists.linux-foundation.org VGhpcyBleHRlbmRzIHRoZSB3YXJuaW5nIHN1cHByZXNzaW9uIGZyb20gY29tbWl0IGQwYmMwYzJh MzFjOSAoInN3aW90bGI6CnN1cHByZXNzIHdhcm5pbmcgd2hlbiBfX0dGUF9OT1dBUk4gaXMgc2V0 IikgdG8gc3VwcHJlc3MgdGhlIHdhcm5pbmdzCndoZW4gRE1BX0FUVFJfTk9fV0FSTiBpcyBnaXZl biBieSBjYWxsZXIuIEluIHN1Y2ggY2FzZXMgdGhlIGNhbGxlciB3YW50cwp0byBoYW5kbGUgdGhl IGVycm9yIHRoZW1zZWx2ZXMuCgpGaXhlczogZDBiYzBjMmEzMWM5ICgic3dpb3RsYjogc3VwcHJl c3Mgd2FybmluZyB3aGVuIF9fR0ZQX05PV0FSTiBpcyBzZXQiKQpDYzogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpDYzogTWlrZSBHYWxicmFpdGggPGVmYXVsdEBn bXguZGU+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+ CkNjOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KLS0tCiBsaWIvc3dpb3RsYi5jIHwg OSArKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliL3N3aW90bGIuYyBiL2xpYi9zd2lvdGxiLmMKaW5kZXggZmVj ZTU3NTY2ZDQ1Li4yYmZiOTM2YzU3MDggMTAwNjQ0Ci0tLSBhL2xpYi9zd2lvdGxiLmMKKysrIGIv bGliL3N3aW90bGIuYwpAQCAtNzY4LDExICs3NjgsMTQgQEAgc3RhdGljIGJvb2wgc3dpb3RsYl9m cmVlX2J1ZmZlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCiBzdGF0aWMgdm9p ZAogc3dpb3RsYl9mdWxsKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGVudW0gZG1h X2RhdGFfZGlyZWN0aW9uIGRpciwKLQkgICAgIGludCBkb19wYW5pYykKKwkgICAgIHVuc2lnbmVk IGxvbmcgYXR0cnMsIGludCBkb19wYW5pYykKIHsKIAlpZiAoc3dpb3RsYl9mb3JjZSA9PSBTV0lP VExCX05PX0ZPUkNFKQogCQlyZXR1cm47CiAKKwlpZiAoYXR0cnMgJiBETUFfQVRUUl9OT19XQVJO KQorCQlyZXR1cm47CisKIAkvKgogCSAqIFJhbiBvdXQgb2YgSU9NTVUgc3BhY2UgZm9yIHRoaXMg b3BlcmF0aW9uLiBUaGlzIGlzIHZlcnkgYmFkLgogCSAqIFVuZm9ydHVuYXRlbHkgdGhlIGRyaXZl cnMgY2Fubm90IGhhbmRsZSB0aGlzIG9wZXJhdGlvbiBwcm9wZXJseS4KQEAgLTgyMyw3ICs4MjYs NyBAQCBkbWFfYWRkcl90IHN3aW90bGJfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgcGFnZSAqcGFnZSwKIAkvKiBPaCB3ZWxsLCBoYXZlIHRvIGFsbG9jYXRlIGFuZCBtYXAgYSBi b3VuY2UgYnVmZmVyLiAqLwogCW1hcCA9IG1hcF9zaW5nbGUoZGV2LCBwaHlzLCBzaXplLCBkaXIs IGF0dHJzKTsKIAlpZiAobWFwID09IFNXSU9UTEJfTUFQX0VSUk9SKSB7Ci0JCXN3aW90bGJfZnVs bChkZXYsIHNpemUsIGRpciwgMSk7CisJCXN3aW90bGJfZnVsbChkZXYsIHNpemUsIGRpciwgYXR0 cnMsIDEpOwogCQlyZXR1cm4gX19waHlzX3RvX2RtYShkZXYsIGlvX3RsYl9vdmVyZmxvd19idWZm ZXIpOwogCX0KIApAQCAtOTU5LDcgKzk2Miw3IEBAIHN3aW90bGJfbWFwX3NnX2F0dHJzKHN0cnVj dCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwgaW50IG5lbGVtcywKIAkJ CWlmIChtYXAgPT0gU1dJT1RMQl9NQVBfRVJST1IpIHsKIAkJCQkvKiBEb24ndCBwYW5pYyBoZXJl LCB3ZSBleHBlY3QgbWFwX3NnIHVzZXJzCiAJCQkJICAgdG8gZG8gcHJvcGVyIGVycm9yIGhhbmRs aW5nLiAqLwotCQkJCXN3aW90bGJfZnVsbChod2Rldiwgc2ctPmxlbmd0aCwgZGlyLCAwKTsKKwkJ CQlzd2lvdGxiX2Z1bGwoaHdkZXYsIHNnLT5sZW5ndGgsIGRpciwgYXR0cnMsIDApOwogCQkJCWF0 dHJzIHw9IERNQV9BVFRSX1NLSVBfQ1BVX1NZTkM7CiAJCQkJc3dpb3RsYl91bm1hcF9zZ19hdHRy cyhod2Rldiwgc2dsLCBpLCBkaXIsCiAJCQkJCQkgICAgICAgYXR0cnMpOwotLSAKMi4xNy4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK