Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp211329imj; Wed, 13 Feb 2019 07:08:38 -0800 (PST) X-Google-Smtp-Source: AHgI3IYVYoEREIHCg9mCMQ3JOAjEPaY3y1eRZmuFwE4XXAnER9e6LlUHoqnQhMEwy1y93qdauVYd X-Received: by 2002:a62:4414:: with SMTP id r20mr950317pfa.37.1550070518701; Wed, 13 Feb 2019 07:08:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550070518; cv=none; d=google.com; s=arc-20160816; b=BDlV8Fhq9Oc6cfj7nFkcBkF3XEoOM89/Zm/hvykhVv8K2lZI+EAN7Yz0JxVnpjBtDo YAdNr9ckYA1Fu2xtwTwGThEyUSVnS1bCOXk6AgqB+9rp/nYe8UEVbn+7e4EY4bK9Ry5J 48iWe/qmLjnTCSb8T+xP1pBDe5q60q/TRsdgJUtPUiyQaoHA20qOJyorupD/5Gx11/Rv 0j6MdQs4Y8rIZlzOuSV3ONqOJKo6yJCCtGRJVtzKuYLuN/lCwMO1vUBjswFe2p6lX5am eJbQwL5XWPRlnFfWWJV02BRnphaglPCheCqgz757YHv118Jsr1fcONuPxMcjDkdHxoSX UKUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=V2qFA0OcwjrK68risolzFdRV/D9+52UF5C3nMIQDVp4=; b=U5olxjncv0t+1g6Mt3N/ldV9L6WaZs/ietWeMhv++NS5kl91N0Qxlx8qO+op81wHRr k56++5I4gT2WoXlU6fOX601tjRftu/7wlpdbXDpcr3jnwbmqQBQtjt2pA9ViiroeuOkI T4yU3DuET5FmTtxjuRUgcHRUzfGJaheJJFF3khnnVqAFZJgDIMicZ/gDSLg3YV6TXJWK P3Uj92D1mZtyUQrxbUyU0PvjjiPKQOdvUegkMHEX7Ai+GHJfW9oDT5BxfDpcHTm8gu06 R3lHV/nqz3yJq47x90EvZhGDGZo5AXp7mOxQNaoD6qhkROYmT+owEUwRbwsAb4uNEm3Q J2Dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Wo+rn4+r; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e7si15238303pgv.499.2019.02.13.07.08.22; Wed, 13 Feb 2019 07:08:38 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Wo+rn4+r; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387828AbfBMN4U (ORCPT + 99 others); Wed, 13 Feb 2019 08:56:20 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:41619 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726277AbfBMN4U (ORCPT ); Wed, 13 Feb 2019 08:56:20 -0500 Received: by mail-pl1-f195.google.com with SMTP id k15so1195963pls.8; Wed, 13 Feb 2019 05:56:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=V2qFA0OcwjrK68risolzFdRV/D9+52UF5C3nMIQDVp4=; b=Wo+rn4+rpbWNXMXw8f961P6oxr28SV0R3AE2+Iuvqh7fxEkblbcFpBrThrdGUZASMo +obY5tWBT5FcDq1TCc2YALzjSj/RwS62oxijXHr27AMGgQQ5EAXv7KDXIR8qS+CriIzl v+ii3rGwru5TZogwAVIdxKFZ3HcsQXSMp2qyjqUotAp7B0lv2662QZR8uNlKx7/r97Wt Q1kF7Xrwhfuo0ODVWB5AEbZlo/SYZi2B7iswqgis9OVmaodYPCQ5gXnYca7KlKSYKhWN qJ16mA6TwoJHT3BVnzle1LT/35tmCVTvOSmsrJwpZE+NSxRv6QEEiAd7//aDbrQIA0zS /cfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=V2qFA0OcwjrK68risolzFdRV/D9+52UF5C3nMIQDVp4=; b=JFaa37+XiYe9JPr0XfKQc6WYbIOCVkpCwXm7zuVN+cYFGNpKWC0FXEkzYAWXvP70zH TCFQE6EUXJslOoFeC5aKpjPiLZusO+G3OnSGvrWH2f+4n20iaSknYqXY+65AlFbiIriB 4Sb9YyXXT1RGxK8QBAOT06/FHzQZ4I0zVPURxTo61sCaUJxOKhnpOuSjp4s3P0HPjN1F EPtRCnQV1KLXV48iPnl96GAfyQn/J9Rhyka+Ohe5/73MO1Diq7o3K5dYsAHWDchcBv0f u1BSBl1tBijpeGOSu+aXNFLWfmC+QmLEqCr9tb62OigW7sD/r8Mv35OcakN1GRN/uztj MIQQ== X-Gm-Message-State: AHQUAuZKVOeEthb5q/kjmMlDvIPebsdCfzspheuG32yrRE89rOBmQ4As YF3hQRAUP3yWyVXN5PknYLISHdc3 X-Received: by 2002:a17:902:161:: with SMTP id 88mr683223plb.306.1550066178456; Wed, 13 Feb 2019 05:56:18 -0800 (PST) Received: from jordon-HP-15-Notebook-PC ([49.207.48.54]) by smtp.gmail.com with ESMTPSA id y20sm26266582pfd.161.2019.02.13.05.56.16 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 13 Feb 2019 05:56:17 -0800 (PST) Date: Wed, 13 Feb 2019 19:30:35 +0530 From: Souptick Joarder To: akpm@linux-foundation.org, willy@infradead.org, mhocko@suse.com, kirill.shutemov@linux.intel.com, vbabka@suse.cz, riel@surriel.com, sfr@canb.auug.org.au, rppt@linux.vnet.ibm.com, peterz@infradead.org, linux@armlinux.org.uk, robin.murphy@arm.com, iamjoonsoo.kim@lge.com, treding@nvidia.com, keescook@chromium.org, m.szyprowski@samsung.com, stefanr@s5r6.in-berlin.de, hjc@rock-chips.com, heiko@sntech.de, airlied@linux.ie, oleksandr_andrushchenko@epam.com, joro@8bytes.org, pawel@osciak.com, kyungmin.park@samsung.com, mchehab@kernel.org, boris.ostrovsky@oracle.com, jgross@suse.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux1394-devel@lists.sourceforge.net, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, xen-devel@lists.xen.org, iommu@lists.linux-foundation.org, linux-media@vger.kernel.org Subject: [PATCH v3 0/9] mm: Use vm_map_pages() and vm_map_pages_zero() API Message-ID: <20190213140035.GA21935@jordon-HP-15-Notebook-PC> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Previouly drivers have their own way of mapping range of kernel pages/memory into user vma and this was done by invoking vm_insert_page() within a loop. As this pattern is common across different drivers, it can be generalized by creating new functions and use it across the drivers. vm_map_pages() is the API which could be used to map kernel memory/pages in drivers which has considered vm_pgoff. vm_map_pages_zero() is the API which could be used to map range of kernel memory/pages in drivers which has not considered vm_pgoff. vm_pgoff is passed default as 0 for those drivers. We _could_ then at a later "fix" these drivers which are using vm_map_pages_zero() to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Tested on Rockchip hardware and display is working fine, including talking to Lima via prime. v1 -> v2: Few Reviewed-by. Updated the change log in [8/9] In [7/9], vm_pgoff is treated in V4L2 API as a 'cookie' to select a buffer, not as a in-buffer offset by design and it always want to mmap a whole buffer from its beginning. Added additional changes after discussing with Marek and vm_map_pages() could be used instead of vm_map_pages_zero(). v2 -> v3: Corrected the documentation as per review comment. As suggested in v2, renaming the interfaces to - *vm_insert_range() -> vm_map_pages()* and *vm_insert_range_buggy() -> vm_map_pages_zero()*. As the interface is renamed, modified the code accordingly, updated the change logs and modified the subject lines to use the new interfaces. There is no other change apart from renaming and using the new interface. Patch[1/9] & [4/9], Tested on Rockchip hardware. Souptick Joarder (9): mm: Introduce new vm_map_pages() and vm_map_pages_zero() API arm: mm: dma-mapping: Convert to use vm_map_pages() drivers/firewire/core-iso.c: Convert to use vm_map_pages_zero() drm/rockchip/rockchip_drm_gem.c: Convert to use vm_map_pages() drm/xen/xen_drm_front_gem.c: Convert to use vm_map_pages() iommu/dma-iommu.c: Convert to use vm_map_pages() videobuf2/videobuf2-dma-sg.c: Convert to use vm_map_pages() xen/gntdev.c: Convert to use vm_map_pages() xen/privcmd-buf.c: Convert to use vm_map_pages_zero() arch/arm/mm/dma-mapping.c | 22 ++---- drivers/firewire/core-iso.c | 15 +--- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 17 +---- drivers/gpu/drm/xen/xen_drm_front_gem.c | 18 ++--- drivers/iommu/dma-iommu.c | 12 +--- drivers/media/common/videobuf2/videobuf2-core.c | 7 ++ .../media/common/videobuf2/videobuf2-dma-contig.c | 6 -- drivers/media/common/videobuf2/videobuf2-dma-sg.c | 22 ++---- drivers/xen/gntdev.c | 16 ++--- drivers/xen/privcmd-buf.c | 8 +-- include/linux/mm.h | 4 ++ mm/memory.c | 81 ++++++++++++++++++++++ mm/nommu.c | 14 ++++ 13 files changed, 136 insertions(+), 106 deletions(-) -- 1.9.1