From patchwork Mon Aug 21 09:55:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hsia-Jun Li X-Patchwork-Id: 715622 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 862E7EE49A8 for ; Mon, 21 Aug 2023 09:56:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229854AbjHUJ4G (ORCPT ); Mon, 21 Aug 2023 05:56:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234494AbjHUJ4D (ORCPT ); Mon, 21 Aug 2023 05:56:03 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2043.outbound.protection.outlook.com [40.107.92.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0616CF; Mon, 21 Aug 2023 02:56:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XXyLZDJrwgw5AH42b71/svzb444gC7dLsZxkdkpByX+p7ahr5LGZ5J/1+mmZGgfFCUp7erwqkexB4ln2jAeTZ2w7lhAL40QD4nQSFeKxI8Nij7naGDKrpB0LzdI16QQPrL6yM14tDiRDUxx6pMdp3MXjPdTsQSq69h82h9Ra3omNgXhp0FlOs+MFv/MCFwsCoOmqAWjsghUirQp3M2nAeuXrt8aXVmpUvQn/cLaj1MtU/2CVzaVc6PQedcYtOo5Izpochg9VaKnOdvsnFzBn7Q+ysqV5HH0/hllvE0VT8UYpSqJbrlcbYmQST2CPRzHWRDNOCBHUoL9qoI6DgffqLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1FuPL7FmuIQgEDPkCDqfM1Ni9PxwH61leV+wFWQGML4=; b=KJptosJbEI0D16hpk0zplxwYzmGs7W7gXWnt+Tv6aEWYlN7+LMMb45jKY79DNXHH/UX4PN4AB6Nle06OfUpqz+kTwwgXC/IZ14ubcr79fI6f1MUwDMPdC7ZcHGxU032tKhJwGVkVI4VU3zNi7OKqZEF2iMJLiET5tXHotdC26Smk/QB+8xhjLqPCf7lYYCxH0XXEGGPVRb6rM1jMAZHGcsbS5fCt1DUnfLE4nOS/oLL5BwblAf1X9b+YXss1A8GcozNKCraexGuk33dtHdrvhbfG4xEgwCiWlgPFZ3IYat8T41fr6v2zlPL0dFA6E5zyaEWXQNLmJit+32kyoZVeaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synaptics.com; dmarc=pass action=none header.from=synaptics.com; dkim=pass header.d=synaptics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Synaptics.onmicrosoft.com; s=selector2-Synaptics-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1FuPL7FmuIQgEDPkCDqfM1Ni9PxwH61leV+wFWQGML4=; b=IQ+/wfbF+pvOA8S0FnVvKJZ2sglfCHPENsfKDr1ZsBx2D+qVJeH0/dyZI2/9CxG9jxZNnuCiE0vrrOAwJrY25/8XnIluSQmclF8H8Pve9i4noNO1SXzvSwJ7eBFdKi0VxbdBvZvT7X8m4ExRxk11m0M0WE1WUsbM0Zag0HKKIrc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=synaptics.com; Received: from DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) by SN4PR03MB6734.namprd03.prod.outlook.com (2603:10b6:806:1ee::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.20; Mon, 21 Aug 2023 09:55:58 +0000 Received: from DM6PR03MB5196.namprd03.prod.outlook.com ([fe80::411c:e486:3837:cc25]) by DM6PR03MB5196.namprd03.prod.outlook.com ([fe80::411c:e486:3837:cc25%3]) with mapi id 15.20.6699.022; Mon, 21 Aug 2023 09:55:58 +0000 Message-ID: <242cf022-503d-553a-8b78-f0abdb58d374@synaptics.com> Date: Mon, 21 Aug 2023 17:55:51 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 From: Hsia-Jun Li Subject: [PATCH] dma-buf/heaps: map CMA all pages for user Content-Language: en-GB To: linaro-mm-sig@lists.linaro.org Cc: sumit.semwal@linaro.org, Benjamin Gaignard , Brian.Starkey@arm.com, jstultz@google.com, tjmercier@google.com, christian.koenig@amd.com, Linux Media Mailing List , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org X-ClientProxiedBy: SJ0PR05CA0197.namprd05.prod.outlook.com (2603:10b6:a03:330::22) To DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR03MB5196:EE_|SN4PR03MB6734:EE_ X-MS-Office365-Filtering-Correlation-Id: 198c29c1-f463-4852-34bb-08dba22cd1a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0xZMuP1vzxcvyqaQFQ39jWTV2gm0RuaLV+tXm01qisvaJL/t3E5fNaDx3wCx7D2fRo76MJQpiiyGr7+UPQw8aeh0c9H5KFSyE6qPaZt6nrCFOVjTAAsqQAoxVS1RGOPQv8030S08hcHM/d8QLSp+MCn89MYFZh8zPFDM++DN2UJW6FfYKWcqgHkQW6gQMQJbOo7rGCtiFZkw4ngIQVTu6kTxAOZWmogobIlW3svXpJTTKTvie+/4OSjRg434EKJacU8IRO6OhfPaMf2+RRUrfQRdJuf70JG+NA7xzmhaMVKsIbdNbEgIFdwhR3DBEZMxqcE44KI1IYuylyGl/q9pXp9reIoP3RQfpQYdEQiUp78AWBKtG5ytfKJPhny6HqsRysK96JaJDkYnFQxWT83kOzpQGfMlYoMi9gSUaEKrTX15Jd6T6Rq8YSquiiXJz1PXeOSbAul3ZoM3Qpy8t2cIncNw9cMQpq5KTHK2Vo++PA7RTYl1Kyw50zRBCBwi2H15jP++yd1USzJjcPEll9RvbFrvHgndRt1r+ecjvRs64wO7AlWuapQEO3jE060/tqhnCKcFPXwBAyV2aBeJLBdUfmn26V/xA5wFiVx1GVcisRCzbZYSc5rZ71kc8UqTm1+hnQCbSRIrNC4wgrG+bJqydPpIi3yXLTUVIlzAu/RVvTuMu+nQBxArgY1stAbQubi/ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR03MB5196.namprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(376002)(366004)(136003)(396003)(346002)(451199024)(1800799009)(186009)(86362001)(5660300002)(41300700001)(2616005)(66476007)(6916009)(316002)(66946007)(2906002)(66556008)(54906003)(7416002)(31686004)(8676002)(4326008)(8936002)(478600001)(31696002)(6666004)(6486002)(38350700002)(52116002)(6506007)(38100700002)(6512007)(26005)(36756003)(83380400001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?OI1+EryApr/Pm4Kd8BJcPHkbYhmI?= =?utf-8?q?2NhI3C6EU6OahyeYhadlq2gDIVq/BIm0qa2WYmSMg3aK7NRdfmsM+YNrA0F2aEjBo?= =?utf-8?q?W4r+DA97AIsCyfUguE5TEegtFJFCCbjQtAB7aI6+knD0NdCAF8iIFMyVnOGRrggDG?= =?utf-8?q?GC3V/1FFnV1c3CvT4liTx4GZkxCIBmickbZvJhi/AZLOeqZmwABhcjAMYoICLAcxL?= =?utf-8?q?Egw19CGMNQDZQ/f+aqOaFesrTaZvhtB7T6jZ8UN9A4qo68WzYDSbTxQupTAzPL7uS?= =?utf-8?q?cBMHwIBprzOPTmrHoJUz3rcReZxJpiSjGfPTxiG/zEKKZHGMeI7KUkrt25uDW6TRp?= =?utf-8?q?3cmGZcL8sLDVq1VGZYQ+EncJ+ZDu00gEtxdQlM20uXa9d2G+zM16UXw8gSvGg1DCx?= =?utf-8?q?/FaeompTipV57+UPHX0SJkXziA63T4l8xl0oIu+QBFiNGVvjpfC5jZS7aJ8VbLyHf?= =?utf-8?q?wB/GxlxZ528vi1fd0fxMsT/OIPN0AaJ6OnZA71pEA2hNbzXDBQ20tsJo/RJxEk9v2?= =?utf-8?q?HMlVY72H+S5gxjNIuanraN8q2qMTjV1eZO7LnKdZT1BNuNp8w6AgkB/AecK4ZuerB?= =?utf-8?q?/YFmO0BBoZkwHO1dPDFN/whcIyfki6hyNp+iLh0wgj4F55ei+UMynUyVTEe50OhB/?= =?utf-8?q?zZcBVLkJKrg7WKAvnI78/5mqKNXvWiDOoSMGoEoy+uE6U6vAgWgEM/O3Vtma5ZP7/?= =?utf-8?q?iJfZw520PJQEsnIY2hiXOalJcvN3h4aILfsGvkC7IVHbycDEEbduSWxCKzpwzzpi7?= =?utf-8?q?51T2xn9feQax+d0TVbRxAT9tioeGMIE/33FHsDx+gvwE2XxNofHy2jHrEOjyNcv6S?= =?utf-8?q?HoV+KBD7H9jUCKETSOo8berLNcmM16UbieDqrMsfAHD2bsDgxcnCYEyCWiR7qCsxu?= =?utf-8?q?DqBv+hajIA1cz0wkkjQKZ0RMho6vm0MuFWyjPgRw0Fj16j7+evmpQDM0nxTnWZ3TQ?= =?utf-8?q?WG8H3Q/+SceUKCW3rwa/RfyWpyyIclrjllMyUNGOred1e7HpRw25EF/u4TGY/OXoL?= =?utf-8?q?MMboYK6LAFDYU6y/LW4mYGjnSwaWCcQRSztY6JMmKYRKp2z9HyPPscg8MAm/QdtEx?= =?utf-8?q?m3kY8Zv7sRP0zhM+vJbYR3SuzvdS+oWl4v+V7ZhQPdXrQFcnpTbIYA9hLjc9DhUAO?= =?utf-8?q?1Xu3wVPOYU6A+znHsvlOspEY70fqN8nTZ7SmSmBxMAJLMPRtHq5pJ7qN38oBsdgVr?= =?utf-8?q?VGp4+pt6Db4csdJ1aohRaQDa3q7HalOIY5/2V8ddbnW7MtiYthubQ1xrwH4OsifV9?= =?utf-8?q?4bKLOH4mWdNr9uFYpLu5yBbFjBwSIPKep70hKLQZR7NxPmv0Jx4i/icycYL6j7n1s?= =?utf-8?q?5NV4MOqMfoInJzU/Diz4oSu8GOePosWN5HwW5kQ5o7mTBrNOHMi1PnkZM7+BjnpKg?= =?utf-8?q?XMQugnm1mZ8hf697ze1aFKbu73Fqj8DpXbyHln3qXncSf855cyFYOv3g+bXCe7DG4?= =?utf-8?q?VHqVXg6Jcks/f1FQKb5hLfX3qXdAZGtHm1s9VRbp5Z3brF6kGDkbqOzV9UYMs/1HA?= =?utf-8?q?PRKMEXpXqj74?= X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 198c29c1-f463-4852-34bb-08dba22cd1a5 X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5196.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2023 09:55:58.4594 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335d1fbc-2124-4173-9863-17e7051a2a0e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: E34fHlxjgHQ6MhmvC/b578MZEfvdNU9adnORjoppHde8QiZPuLgLullFoxkl1H3DgdUFilMXEIQrRtMndivECg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR03MB6734 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Page fault would raise a CPU interrupt, it is not a good idea. Signed-off-by: Hsia-Jun(Randy) Li --- drivers/dma-buf/heaps/cma_heap.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) 2.17.1 diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c index ee899f8e6721..7d0b15ad21a7 100644 --- a/drivers/dma-buf/heaps/cma_heap.c +++ b/drivers/dma-buf/heaps/cma_heap.c @@ -160,35 +160,15 @@ static int cma_heap_dma_buf_end_cpu_access(struct dma_buf *dmabuf, return 0; } -static vm_fault_t cma_heap_vm_fault(struct vm_fault *vmf) -{ - struct vm_area_struct *vma = vmf->vma; - struct cma_heap_buffer *buffer = vma->vm_private_data; - - if (vmf->pgoff > buffer->pagecount) - return VM_FAULT_SIGBUS; - - vmf->page = buffer->pages[vmf->pgoff]; - get_page(vmf->page); - - return 0; -} - -static const struct vm_operations_struct dma_heap_vm_ops = { - .fault = cma_heap_vm_fault, -}; - static int cma_heap_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) { struct cma_heap_buffer *buffer = dmabuf->priv; - if ((vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) == 0) return -EINVAL; - vma->vm_ops = &dma_heap_vm_ops; - vma->vm_private_data = buffer; - - return 0; + return remap_pfn_range(vma, vma->vm_start, + page_to_pfn(buffer->pages[vma->vm_pgoff]), + vma->vm_end - vma->vm_start, vma->vm_page_prot); } static void *cma_heap_do_vmap(struct cma_heap_buffer *buffer) --