From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH 02/10] udmabuf: improve map_udmabuf error handling Date: Tue, 11 Sep 2018 08:59:13 +0200 Message-ID: <20180911065921.23818-3-kraxel@redhat.com> References: <20180911065921.23818-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E42D6E316 for ; Tue, 11 Sep 2018 06:59:25 +0000 (UTC) In-Reply-To: <20180911065921.23818-1-kraxel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Gerd Hoffmann , open list , "moderated list:DMA BUFFER SHARING FRAMEWORK" , laurent.pinchart@ideasonboard.com, "open list:DMA BUFFER SHARING FRAMEWORK" List-Id: dri-devel@lists.freedesktop.org UmVwb3J0ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJv YXJkLmNvbT4KU2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+ Ci0tLQogZHJpdmVycy9kbWEtYnVmL3VkbWFidWYuYyB8IDIxICsrKysrKysrKystLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi91ZG1hYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvdWRt YWJ1Zi5jCmluZGV4IGU2M2QzMDFiY2IuLjE5YmQ5MTgyMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv ZG1hLWJ1Zi91ZG1hYnVmLmMKKysrIGIvZHJpdmVycy9kbWEtYnVmL3VkbWFidWYuYwpAQCAtNTEs MjUgKzUxLDI0IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKm1hcF91ZG1hYnVmKHN0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQgKmF0LAogewogCXN0cnVjdCB1ZG1hYnVmICp1YnVmID0gYXQtPmRt YWJ1Zi0+cHJpdjsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnNnOworCWludCByZXQ7CiAKIAlzZyA9IGt6 YWxsb2Moc2l6ZW9mKCpzZyksIEdGUF9LRVJORUwpOwogCWlmICghc2cpCi0JCWdvdG8gZXJyMTsK LQlpZiAoc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyhzZywgdWJ1Zi0+cGFnZXMsIHVidWYtPnBh Z2Vjb3VudCwKLQkJCQkgICAgICAwLCB1YnVmLT5wYWdlY291bnQgPDwgUEFHRV9TSElGVCwKLQkJ CQkgICAgICBHRlBfS0VSTkVMKSA8IDApCi0JCWdvdG8gZXJyMjsKKwkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CisJcmV0ID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyhzZywgdWJ1Zi0+cGFn ZXMsIHVidWYtPnBhZ2Vjb3VudCwKKwkJCQkJMCwgdWJ1Zi0+cGFnZWNvdW50IDw8IFBBR0VfU0hJ RlQsCisJCQkJCUdGUF9LRVJORUwpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGVycjsKIAlpZiAo IWRtYV9tYXBfc2coYXQtPmRldiwgc2ctPnNnbCwgc2ctPm5lbnRzLCBkaXJlY3Rpb24pKQotCQln b3RvIGVycjM7Ci0KKwkJZ290byBlcnI7CiAJcmV0dXJuIHNnOwogCi1lcnIzOgorZXJyOgogCXNn X2ZyZWVfdGFibGUoc2cpOwotZXJyMjoKIAlrZnJlZShzZyk7Ci1lcnIxOgotCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVu bWFwX3VkbWFidWYoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXQsCi0tIAoyLjkuMwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:60538 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726301AbeIKL5Q (ORCPT ); Tue, 11 Sep 2018 07:57:16 -0400 From: Gerd Hoffmann To: dri-devel@lists.freedesktop.org Cc: laurent.pinchart@ideasonboard.com, Gerd Hoffmann , Sumit Semwal , linux-media@vger.kernel.org (open list:DMA BUFFER SHARING FRAMEWORK), linaro-mm-sig@lists.linaro.org (moderated list:DMA BUFFER SHARING FRAMEWORK), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 02/10] udmabuf: improve map_udmabuf error handling Date: Tue, 11 Sep 2018 08:59:13 +0200 Message-Id: <20180911065921.23818-3-kraxel@redhat.com> In-Reply-To: <20180911065921.23818-1-kraxel@redhat.com> References: <20180911065921.23818-1-kraxel@redhat.com> Sender: linux-media-owner@vger.kernel.org List-ID: Reported-by: Laurent Pinchart Signed-off-by: Gerd Hoffmann --- drivers/dma-buf/udmabuf.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c index e63d301bcb..19bd918209 100644 --- a/drivers/dma-buf/udmabuf.c +++ b/drivers/dma-buf/udmabuf.c @@ -51,25 +51,24 @@ static struct sg_table *map_udmabuf(struct dma_buf_attachment *at, { struct udmabuf *ubuf = at->dmabuf->priv; struct sg_table *sg; + int ret; sg = kzalloc(sizeof(*sg), GFP_KERNEL); if (!sg) - goto err1; - if (sg_alloc_table_from_pages(sg, ubuf->pages, ubuf->pagecount, - 0, ubuf->pagecount << PAGE_SHIFT, - GFP_KERNEL) < 0) - goto err2; + return ERR_PTR(-ENOMEM); + ret = sg_alloc_table_from_pages(sg, ubuf->pages, ubuf->pagecount, + 0, ubuf->pagecount << PAGE_SHIFT, + GFP_KERNEL); + if (ret < 0) + goto err; if (!dma_map_sg(at->dev, sg->sgl, sg->nents, direction)) - goto err3; - + goto err; return sg; -err3: +err: sg_free_table(sg); -err2: kfree(sg); -err1: - return ERR_PTR(-ENOMEM); + return ERR_PTR(ret); } static void unmap_udmabuf(struct dma_buf_attachment *at, -- 2.9.3