From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58E01CA9EBD for ; Fri, 25 Oct 2019 23:49:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2C07B21D81 for ; Fri, 25 Oct 2019 23:49:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="kYbg0nUp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726115AbfJYXsm (ORCPT ); Fri, 25 Oct 2019 19:48:42 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:43150 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725874AbfJYXsm (ORCPT ); Fri, 25 Oct 2019 19:48:42 -0400 Received: by mail-pg1-f194.google.com with SMTP id l24so2571801pgh.10 for ; Fri, 25 Oct 2019 16:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=akimG7mgtSazW0Xv9weq5WdYsXvPJgD82qEofxZDZEo=; b=kYbg0nUp/PxzkjVrb1KGOJVPc1ih+UCUGjDKAgLLtvpaZ9Pp+/Q3cv4t0dB71G44aS 1wF3g90STc7JgIzQVNFd2OT47TMuSNGhWq6p3nERUIVHd5+QBDoi779pCYC6SDgp24GO WPFPM2iiqEYEZem9oWs2cJTf8hNVxEWG4h3ruJZzab15rfukexYiWFkNqjiorjlihRVj VcKekKIMo2nCLNOYMa8cqJA9lIn7e/RWWLtB65doGIXpH4JFEeeqg+ua2yA7dmZatZzj xh4go74AhdfigrguMdEtk2DgBS+XrR+zbHEJPdNUFIuJft1as404b2m+OKIUe0iRozLD UMew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=akimG7mgtSazW0Xv9weq5WdYsXvPJgD82qEofxZDZEo=; b=sTBWRjN+2EljJQ0bqC/N5nYWtQLmx1Y0hYeY39Vrjml/LfxDsVD9BPsm1X5/tgRGed Z3T5He8j9e/+iyTIe3Hpf/fwm9BXAZR4xRqA3Hpu62FtrVNCemfyxficFIrd1NPmPFPQ DewO5YFRpnAWdTWmTplvIGJWUk3isdxxFRhTLmuOcWZMq82oRDMAOzAM0Rac6KiDu9lS zQ9G611CdhQheLqf+4ym2FHu1dFRjqZt6/iB9ZFSwgCjtRb8SI4BnXXRoT9mzxO++IAM 1YZS+F72Urh/3xcLIdb8hV4P28Ub0Td7OzdX4Sy/X+hHFleQ4x0GqKwK8GBRRUKgxw4R BJeA== X-Gm-Message-State: APjAAAWNCyJac1bH6YZlm8ukxc1hRX2omk0qzOzRxtuImVSfxUJRYkEC dmc7hLxAdNpBNqwSjNDSJ00wWD8o+Hs= X-Google-Smtp-Source: APXvYqzFVpzIpCxoPgDb9KejO5rMTuJfOB/3/u6olhx9SqL/mVxNlO6qlClo1U0EarnNOG8lvUvjkg== X-Received: by 2002:a17:90a:d58f:: with SMTP id v15mr7476798pju.17.1572047320896; Fri, 25 Oct 2019 16:48:40 -0700 (PDT) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id cx22sm2817179pjb.19.2019.10.25.16.48.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Oct 2019 16:48:40 -0700 (PDT) From: John Stultz To: lkml Cc: John Stultz , Laura Abbott , Benjamin Gaignard , Sumit Semwal , Liam Mark , Pratik Patel , Brian Starkey , "Andrew F . Davis" , Andrew Morton , Yue Hu , Mike Rapoport , Chenbo Feng , Alistair Strachan , Sandeep Patil , Hridya Valsaraju , dri-devel@lists.freedesktop.org Subject: [RFC][PATCH 2/2] dma-buf: heaps: Allow system & cma heaps to be configured as a modules Date: Fri, 25 Oct 2019 23:48:34 +0000 Message-Id: <20191025234834.28214-3-john.stultz@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191025234834.28214-1-john.stultz@linaro.org> References: <20191025234834.28214-1-john.stultz@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allow loading system and cma heap as a module instead of just as a statically built in heap. Since there isn't a good mechanism for dmabuf lifetime tracking it isn't safe to allow the heap drivers to be unloaded, so these drivers do not implement any module unloading functionality and will show up in lsmod as "[permanent]". This patch also exports key functions from dmabuf heaps core and the heap helper functions so they can be accessed by the module. Cc: Laura Abbott Cc: Benjamin Gaignard Cc: Sumit Semwal Cc: Liam Mark Cc: Pratik Patel Cc: Brian Starkey Cc: Andrew F. Davis Cc: Andrew Morton Cc: Yue Hu Cc: Mike Rapoport Cc: Chenbo Feng Cc: Alistair Strachan Cc: Sandeep Patil Cc: Hridya Valsaraju Cc: dri-devel@lists.freedesktop.org Signed-off-by: John Stultz --- drivers/dma-buf/dma-heap.c | 2 ++ drivers/dma-buf/heaps/Kconfig | 4 ++-- drivers/dma-buf/heaps/heap-helpers.c | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/dma-buf/dma-heap.c b/drivers/dma-buf/dma-heap.c index 9a41b73e54b4..2c4ac71a715b 100644 --- a/drivers/dma-buf/dma-heap.c +++ b/drivers/dma-buf/dma-heap.c @@ -161,6 +161,7 @@ void *dma_heap_get_drvdata(struct dma_heap *heap) { return heap->priv; } +EXPORT_SYMBOL_GPL(dma_heap_get_drvdata); struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info) { @@ -243,6 +244,7 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info) kfree(heap); return err_ret; } +EXPORT_SYMBOL_GPL(dma_heap_add); static char *dma_heap_devnode(struct device *dev, umode_t *mode) { diff --git a/drivers/dma-buf/heaps/Kconfig b/drivers/dma-buf/heaps/Kconfig index a5eef06c4226..e273fb18feca 100644 --- a/drivers/dma-buf/heaps/Kconfig +++ b/drivers/dma-buf/heaps/Kconfig @@ -1,12 +1,12 @@ config DMABUF_HEAPS_SYSTEM - bool "DMA-BUF System Heap" + tristate "DMA-BUF System Heap" depends on DMABUF_HEAPS help Choose this option to enable the system dmabuf heap. The system heap is backed by pages from the buddy allocator. If in doubt, say Y. config DMABUF_HEAPS_CMA - bool "DMA-BUF CMA Heap" + tristate "DMA-BUF CMA Heap" depends on DMABUF_HEAPS && DMA_CMA help Choose this option to enable dma-buf CMA heap. This heap is backed diff --git a/drivers/dma-buf/heaps/heap-helpers.c b/drivers/dma-buf/heaps/heap-helpers.c index 750bef4e902d..fb9835126893 100644 --- a/drivers/dma-buf/heaps/heap-helpers.c +++ b/drivers/dma-buf/heaps/heap-helpers.c @@ -24,6 +24,7 @@ void init_heap_helper_buffer(struct heap_helper_buffer *buffer, INIT_LIST_HEAD(&buffer->attachments); buffer->free = free; } +EXPORT_SYMBOL_GPL(init_heap_helper_buffer); struct dma_buf *heap_helper_export_dmabuf(struct heap_helper_buffer *buffer, int fd_flags) @@ -37,6 +38,7 @@ struct dma_buf *heap_helper_export_dmabuf(struct heap_helper_buffer *buffer, return dma_buf_export(&exp_info); } +EXPORT_SYMBOL_GPL(heap_helper_export_dmabuf); static void *dma_heap_map_kernel(struct heap_helper_buffer *buffer) { -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [RFC][PATCH 2/2] dma-buf: heaps: Allow system & cma heaps to be configured as a modules Date: Fri, 25 Oct 2019 23:48:34 +0000 Message-ID: <20191025234834.28214-3-john.stultz@linaro.org> References: <20191025234834.28214-1-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id ED1896EBD0 for ; Fri, 25 Oct 2019 23:48:41 +0000 (UTC) Received: by mail-pg1-x543.google.com with SMTP id 23so2595829pgk.3 for ; Fri, 25 Oct 2019 16:48:41 -0700 (PDT) In-Reply-To: <20191025234834.28214-1-john.stultz@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: lkml Cc: Sandeep Patil , Mike Rapoport , Chenbo Feng , Alistair Strachan , Liam Mark , Yue Hu , dri-devel@lists.freedesktop.org, "Andrew F . Davis" , Hridya Valsaraju , Andrew Morton , Pratik Patel List-Id: dri-devel@lists.freedesktop.org QWxsb3cgbG9hZGluZyBzeXN0ZW0gYW5kIGNtYSBoZWFwIGFzIGEgbW9kdWxlIGluc3RlYWQgb2Yg anVzdCBhcwphIHN0YXRpY2FsbHkgYnVpbHQgaW4gaGVhcC4KClNpbmNlIHRoZXJlIGlzbid0IGEg Z29vZCBtZWNoYW5pc20gZm9yIGRtYWJ1ZiBsaWZldGltZSB0cmFja2luZwppdCBpc24ndCBzYWZl IHRvIGFsbG93IHRoZSBoZWFwIGRyaXZlcnMgdG8gYmUgdW5sb2FkZWQsIHNvIHRoZXNlCmRyaXZl cnMgZG8gbm90IGltcGxlbWVudCBhbnkgbW9kdWxlIHVubG9hZGluZyBmdW5jdGlvbmFsaXR5IGFu ZAp3aWxsIHNob3cgdXAgaW4gbHNtb2QgYXMgIltwZXJtYW5lbnRdIi4KClRoaXMgcGF0Y2ggYWxz byBleHBvcnRzIGtleSBmdW5jdGlvbnMgZnJvbSBkbWFidWYgaGVhcHMgY29yZSBhbmQKdGhlIGhl YXAgaGVscGVyIGZ1bmN0aW9ucyBzbyB0aGV5IGNhbiBiZSBhY2Nlc3NlZCBieSB0aGUgbW9kdWxl LgoKQ2M6IExhdXJhIEFiYm90dCA8bGFiYm90dEByZWRoYXQuY29tPgpDYzogQmVuamFtaW4gR2Fp Z25hcmQgPGJlbmphbWluLmdhaWduYXJkQGxpbmFyby5vcmc+CkNjOiBTdW1pdCBTZW13YWwgPHN1 bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgpDYzogTGlhbSBNYXJrIDxsbWFya0Bjb2RlYXVyb3JhLm9y Zz4KQ2M6IFByYXRpayBQYXRlbCA8cHJhdGlrcEBjb2RlYXVyb3JhLm9yZz4KQ2M6IEJyaWFuIFN0 YXJrZXkgPEJyaWFuLlN0YXJrZXlAYXJtLmNvbT4KQ2M6IEFuZHJldyBGLiBEYXZpcyA8YWZkQHRp LmNvbT4KQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBZ dWUgSHUgPGh1eXVlMkB5dWxvbmcuY29tPgpDYzogTWlrZSBSYXBvcG9ydCA8cnBwdEBsaW51eC5p Ym0uY29tPgpDYzogQ2hlbmJvIEZlbmcgPGZlbmdjQGdvb2dsZS5jb20+CkNjOiBBbGlzdGFpciBT dHJhY2hhbiA8YXN0cmFjaGFuQGdvb2dsZS5jb20+CkNjOiBTYW5kZWVwIFBhdGlsIDxzc3BhdGls QGdvb2dsZS5jb20+CkNjOiBIcmlkeWEgVmFsc2FyYWp1IDxocmlkeWFAZ29vZ2xlLmNvbT4KQ2M6 IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKU2lnbmVkLW9mZi1ieTogSm9obiBTdHVs dHogPGpvaG4uc3R1bHR6QGxpbmFyby5vcmc+Ci0tLQogZHJpdmVycy9kbWEtYnVmL2RtYS1oZWFw LmMgICAgICAgICAgIHwgMiArKwogZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcgICAgICAg IHwgNCArKy0tCiBkcml2ZXJzL2RtYS1idWYvaGVhcHMvaGVhcC1oZWxwZXJzLmMgfCAyICsrCiAz IGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWhlYXAuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtaGVh cC5jCmluZGV4IDlhNDFiNzNlNTRiNC4uMmM0YWM3MWE3MTViIDEwMDY0NAotLS0gYS9kcml2ZXJz L2RtYS1idWYvZG1hLWhlYXAuYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWhlYXAuYwpAQCAt MTYxLDYgKzE2MSw3IEBAIHZvaWQgKmRtYV9oZWFwX2dldF9kcnZkYXRhKHN0cnVjdCBkbWFfaGVh cCAqaGVhcCkKIHsKIAlyZXR1cm4gaGVhcC0+cHJpdjsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGRt YV9oZWFwX2dldF9kcnZkYXRhKTsKIAogc3RydWN0IGRtYV9oZWFwICpkbWFfaGVhcF9hZGQoY29u c3Qgc3RydWN0IGRtYV9oZWFwX2V4cG9ydF9pbmZvICpleHBfaW5mbykKIHsKQEAgLTI0Myw2ICsy NDQsNyBAQCBzdHJ1Y3QgZG1hX2hlYXAgKmRtYV9oZWFwX2FkZChjb25zdCBzdHJ1Y3QgZG1hX2hl YXBfZXhwb3J0X2luZm8gKmV4cF9pbmZvKQogCWtmcmVlKGhlYXApOwogCXJldHVybiBlcnJfcmV0 OwogfQorRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2hlYXBfYWRkKTsKIAogc3RhdGljIGNoYXIgKmRt YV9oZWFwX2Rldm5vZGUoc3RydWN0IGRldmljZSAqZGV2LCB1bW9kZV90ICptb2RlKQogewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcgYi9kcml2ZXJzL2RtYS1idWYv aGVhcHMvS2NvbmZpZwppbmRleCBhNWVlZjA2YzQyMjYuLmUyNzNmYjE4ZmVjYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcKKysrIGIvZHJpdmVycy9kbWEtYnVmL2hl YXBzL0tjb25maWcKQEAgLTEsMTIgKzEsMTIgQEAKIGNvbmZpZyBETUFCVUZfSEVBUFNfU1lTVEVN Ci0JYm9vbCAiRE1BLUJVRiBTeXN0ZW0gSGVhcCIKKwl0cmlzdGF0ZSAiRE1BLUJVRiBTeXN0ZW0g SGVhcCIKIAlkZXBlbmRzIG9uIERNQUJVRl9IRUFQUwogCWhlbHAKIAkgIENob29zZSB0aGlzIG9w dGlvbiB0byBlbmFibGUgdGhlIHN5c3RlbSBkbWFidWYgaGVhcC4gVGhlIHN5c3RlbSBoZWFwCiAJ ICBpcyBiYWNrZWQgYnkgcGFnZXMgZnJvbSB0aGUgYnVkZHkgYWxsb2NhdG9yLiBJZiBpbiBkb3Vi dCwgc2F5IFkuCiAKIGNvbmZpZyBETUFCVUZfSEVBUFNfQ01BCi0JYm9vbCAiRE1BLUJVRiBDTUEg SGVhcCIKKwl0cmlzdGF0ZSAiRE1BLUJVRiBDTUEgSGVhcCIKIAlkZXBlbmRzIG9uIERNQUJVRl9I RUFQUyAmJiBETUFfQ01BCiAJaGVscAogCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIHRvIGVuYWJsZSBk bWEtYnVmIENNQSBoZWFwLiBUaGlzIGhlYXAgaXMgYmFja2VkCmRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS1idWYvaGVhcHMvaGVhcC1oZWxwZXJzLmMgYi9kcml2ZXJzL2RtYS1idWYvaGVhcHMvaGVh cC1oZWxwZXJzLmMKaW5kZXggNzUwYmVmNGU5MDJkLi5mYjk4MzUxMjY4OTMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9oZWFwLWhlbHBlcnMuYworKysgYi9kcml2ZXJzL2RtYS1i dWYvaGVhcHMvaGVhcC1oZWxwZXJzLmMKQEAgLTI0LDYgKzI0LDcgQEAgdm9pZCBpbml0X2hlYXBf aGVscGVyX2J1ZmZlcihzdHJ1Y3QgaGVhcF9oZWxwZXJfYnVmZmVyICpidWZmZXIsCiAJSU5JVF9M SVNUX0hFQUQoJmJ1ZmZlci0+YXR0YWNobWVudHMpOwogCWJ1ZmZlci0+ZnJlZSA9IGZyZWU7CiB9 CitFWFBPUlRfU1lNQk9MX0dQTChpbml0X2hlYXBfaGVscGVyX2J1ZmZlcik7CiAKIHN0cnVjdCBk bWFfYnVmICpoZWFwX2hlbHBlcl9leHBvcnRfZG1hYnVmKHN0cnVjdCBoZWFwX2hlbHBlcl9idWZm ZXIgKmJ1ZmZlciwKIAkJCQkJICBpbnQgZmRfZmxhZ3MpCkBAIC0zNyw2ICszOCw3IEBAIHN0cnVj dCBkbWFfYnVmICpoZWFwX2hlbHBlcl9leHBvcnRfZG1hYnVmKHN0cnVjdCBoZWFwX2hlbHBlcl9i dWZmZXIgKmJ1ZmZlciwKIAogCXJldHVybiBkbWFfYnVmX2V4cG9ydCgmZXhwX2luZm8pOwogfQor RVhQT1JUX1NZTUJPTF9HUEwoaGVhcF9oZWxwZXJfZXhwb3J0X2RtYWJ1Zik7CiAKIHN0YXRpYyB2 b2lkICpkbWFfaGVhcF9tYXBfa2VybmVsKHN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1ZmZl cikKIHsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs