From patchwork Fri Sep 15 15:08:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 112738 Delivered-To: patch@linaro.org Received: by 10.140.106.117 with SMTP id d108csp724081qgf; Fri, 15 Sep 2017 08:08:53 -0700 (PDT) X-Google-Smtp-Source: ADKCNb4yVJvWs/R8VyvkSHSQnQYcRuCYG29491Dx35Be8XIASfqXdawRDzcKP/KBqXlWeLsqynOP X-Received: by 10.99.100.131 with SMTP id y125mr24798344pgb.161.1505488133709; Fri, 15 Sep 2017 08:08:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505488133; cv=none; d=google.com; s=arc-20160816; b=xLI/hOffrwt1D5MagbwEy+u4wmXBvGqo3B0zWgo0xKUkCIlRbG5ooorw4ePQUFdBn7 58NpPY1b7CkN6jq5y0WJXPdyd/FAlgd8t5e5OrJVs3A2RluKxVipUszbBREFCtNZCsKt aNNllQ9W8azF/MQ0EVMZL+vQGZciKpFa5/bdkvXqZJy8OojX5ipObl6IuCD7cc1L3COI N1vdGSJcjcZR475xSRCVr6u5WVbRo6Az7+KbhCM5NFerHoZm2a/+Ee1Oret0fN5HyInv quF/wsI7iUPFJFvSHgZZiV68JvLrnFnTELUTMLWfMXFvotU9CukI9uCBVeZMa6qCUSN7 6h2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=LuFntB0FggnBXuh3E1DNPqiYq9Dl5olrPX0ZQHgKACI=; b=w7WRVZ3ahNCedySD/O28Ne5r56zb2GiU69MJ9qBLwroXVpcQjmShPvIRxEVmGA52Xs yIy+l+ZPq6GrM37B1AEC+GjAw4ozifz5RXKPN38E5YbxKdnxiZzYcO+ox6Mqka7L+4wz 0U8kQGgVAj3XxLUglIe6e7qdW87Y/lyHhYueF7xSpIhOqK1NM3ucwhj8XI/eFuZLQbJh y2E4M9PRQvoZsyM/uMW37mn+1bW2zUs4XNQfBfbRlbUmlqiANDKSWcX7XHi2l7vF43Ol Lgfsxa5dlE3zytDYcjttOoy/Lktb183cC19Ip9TeZz/AVT4Zv42hpdeDWxAPEdn9PObz tJFg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k33si830501pld.353.2017.09.15.08.08.53; Fri, 15 Sep 2017 08:08:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751400AbdIOPIs (ORCPT + 26 others); Fri, 15 Sep 2017 11:08:48 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:58210 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751115AbdIOPIq (ORCPT ); Fri, 15 Sep 2017 11:08:46 -0400 Received: from wuerfel.lan ([95.208.190.237]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.145]) with ESMTPA (Nemesis) id 0Lj4n8-1dHsRt33N8-00dJF8; Fri, 15 Sep 2017 17:08:31 +0200 From: Arnd Bergmann To: Christoph Hellwig , Marek Szyprowski , Greg Kroah-Hartman Cc: Roy Pledge , Arnd Bergmann , Robin Murphy , Vladimir Murzin , "George G. Davis" , Mark Craske , Bastian Hecht , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: [PATCH] dma-coherent: fix rmem_dma_device_init regression Date: Fri, 15 Sep 2017 17:08:16 +0200 Message-Id: <20170915150824.3805217-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:LIk799ldb23w58dzIaJxTw2Q4gIvJx+kMBuD4JsqOqT33127qER O3CCq4zaiRxCCGHBXbcOLfN1ZsMQuxUG9WYpMoZvAKgHoOsIF6Y+6IHV85k0lNVRSsAr/e5 oItq9x+PtXHZeIhvbuDwLnIQy1XZiAEGotjkX14WWMoRxLyPVps6DjlEqL9lB93j6rZwU6q K1DzOyj9wwfUPql8cXfNg== X-UI-Out-Filterresults: notjunk:1; V01:K0:BuB196o1Pcs=:HcYbOozEFh6faCPF/iFMxO 5hVVEF75JiANLyrQrCDYxtul6yowbkdYYetqdn5MIMtUUBVTlvG/4JbJukM0miFseGrQzbmrC EJyxlk8LQoSXFe2iREWONKyelR67twKNE3W2MUuAG8lQI03O1N5Gc9W8Q5ukeAKZ68dLm0g1z eEMBDrg/vRgsnQyqIA4PvvCIrP22YekEbqwaI7RTXdugNro+ZWFoHmMH2p2xO1mHtlzsn6H/f UGYcYNrAK4gG5i2f6iLSFuzeiygktoU0OQz5wMkj7d4+TzKA1BqdLe+an2+TM5aJKzz8Q0wga wvJ4ieU3aOUDxWJaZE0WtRXLUE/8UAq6bDOkM38UKGRjugKI0lbsob6E/hYZTgvzeDAl5ti/L aUQQiTnhVRdkHEuvo065+LgBaeDoaIMKBJTkSjdmpnJsFkWDcgVvti4rp/fTePpg/ISX3u7va TWsT/bckSxw19gmRjrpeafuazbXyN+dr/8Hgrvgnu/cngIqBq68CKq5Wgc7PxE6MlDNrfwacn mBAGUAPtz0vhfIO8of2hVqhbC2oHdcXhIirx+CVuan8eulRqeCNBchwAXvsd6Wu4a2Av93eNL o4iNrsBTFp2yKtOKLhJw/e9DqrYIjVFnthTAAsXfM0gpV0/3ZxJpCrwAU+DCttYSjC08GdHRS h5JufWVEzZgOr8kdzxiJ2KxVWiT4KjkDjjhm+ysx4/YUPZfTr+MUMKFlSHHj89+rK8EipKDfK +lNj/cB3VgnhuaJ1KEPQF3yDKj1FLWbzRaG0rw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org My recent bug fix introduced another bug, which caused rmem_dma_device_init to always fail, as rmem->priv is never set to anything. This restores the previous behavior, calling dma_init_coherent_memory() whenever ->priv is NULL. Fixes: d35b0996fef3 ("dma-coherent: fix dma_declare_coherent_memory() logic error") Reported-by: Roy Pledge Signed-off-by: Arnd Bergmann --- Roy, can you test this new fix? --- drivers/base/dma-coherent.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) -- 2.9.0 Tested-by: Roy Pledge diff --git a/drivers/base/dma-coherent.c b/drivers/base/dma-coherent.c index a39b2166b145..744f64f43454 100644 --- a/drivers/base/dma-coherent.c +++ b/drivers/base/dma-coherent.c @@ -348,16 +348,15 @@ static int rmem_dma_device_init(struct reserved_mem *rmem, struct device *dev) struct dma_coherent_mem *mem = rmem->priv; int ret; - if (!mem) - return -ENODEV; - - ret = dma_init_coherent_memory(rmem->base, rmem->base, rmem->size, - DMA_MEMORY_EXCLUSIVE, &mem); - - if (ret) { - pr_err("Reserved memory: failed to init DMA memory pool at %pa, size %ld MiB\n", - &rmem->base, (unsigned long)rmem->size / SZ_1M); - return ret; + if (!mem) { + ret = dma_init_coherent_memory(rmem->base, rmem->base, + rmem->size, + DMA_MEMORY_EXCLUSIVE, &mem); + if (ret) { + pr_err("Reserved memory: failed to init DMA memory pool at %pa, size %ld MiB\n", + &rmem->base, (unsigned long)rmem->size / SZ_1M); + return ret; + } } mem->use_dev_dma_pfn_offset = true; rmem->priv = mem;