From nobody Tue Jun 30 06:16:39 2026 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 DC0DBC43217 for ; Mon, 24 Jan 2022 01:54:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240761AbiAXByU (ORCPT ); Sun, 23 Jan 2022 20:54:20 -0500 Received: from mga06.intel.com ([134.134.136.31]:20501 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240706AbiAXByN (ORCPT ); Sun, 23 Jan 2022 20:54:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989253; x=1674525253; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=84M7HeoIxv/91epM6lK+BRfbuXYxR6dGfA3sWedpn9Y=; b=IjnEJmGddrmmXWY369mqJBOSRqxESLp2uMP48j/xa6Y0AnYX794ebCu8 PlzR/GiJwqCUijrWUIp+AH0cD3Ani3d27kAetAB0DMlMep2xXukFqQLkK cXTRjM29CiU752rn3SAw+C53UUB2WxbaWO/QyFPOkmaaUOQBG8ssv5Zw2 +I7mOJnW8P1Y3u2oJJEThgvftzD+5s2ztZRnP2dsPHr7WljQ2Y+VS0rsu JVnAmtXjn5teCmOF2BXh4d7dgOamONxoNF82r/SEst+FP71SRARvy282S eJG+qzRe7Ozl0qjXmN3jCRsx05BBFArxyZDvMrRbo6NfHR2cJQOFcTg/3 w==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658404" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658404" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:13 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320385" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:12 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 1/7] drm/i915: Replace kmap() with kmap_local_page() Date: Sun, 23 Jan 2022 17:54:03 -0800 Message-Id: <20220124015409.807587-2-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny kmap() is being deprecated and these usages are all local to the thread so there is no reason kmap_local_page() can't be used. Replace kmap() calls with kmap_local_page(). Signed-off-by: Ira Weiny --- Changes for V2: From Christoph Helwig Prefer the use of memcpy_*_page() where appropriate. --- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 6 ++---- drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 8 ++++---- drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 4 ++-- drivers/gpu/drm/i915/gt/shmem_utils.c | 7 ++----- drivers/gpu/drm/i915/i915_gem.c | 8 ++++---- drivers/gpu/drm/i915/i915_gpu_error.c | 4 ++-- 6 files changed, 16 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i9= 15/gem/i915_gem_shmem.c index cc9fe258fba7..8d6983312cda 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -619,7 +619,7 @@ i915_gem_object_create_shmem_from_data(struct drm_i915_= private *dev_priv, do { unsigned int len =3D min_t(typeof(size), size, PAGE_SIZE); struct page *page; - void *pgdata, *vaddr; + void *pgdata; =20 err =3D pagecache_write_begin(file, file->f_mapping, offset, len, 0, @@ -627,9 +627,7 @@ i915_gem_object_create_shmem_from_data(struct drm_i915_= private *dev_priv, if (err < 0) goto fail; =20 - vaddr =3D kmap(page); - memcpy(vaddr, data, len); - kunmap(page); + memcpy_to_page(page, 0, data, len); =20 err =3D pagecache_write_end(file, file->f_mapping, offset, len, len, diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/g= pu/drm/i915/gem/selftests/i915_gem_mman.c index c6291429b00c..faf9f14e13eb 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c @@ -145,7 +145,7 @@ static int check_partial_mapping(struct drm_i915_gem_ob= ject *obj, intel_gt_flush_ggtt_writes(to_gt(i915)); =20 p =3D i915_gem_object_get_page(obj, offset >> PAGE_SHIFT); - cpu =3D kmap(p) + offset_in_page(offset); + cpu =3D kmap_local_page(p) + offset_in_page(offset); drm_clflush_virt_range(cpu, sizeof(*cpu)); if (*cpu !=3D (u32)page) { pr_err("Partial view for %lu [%u] (offset=3D%llu, size=3D%u [%llu, row s= ize %u], fence=3D%d, tiling=3D%d, stride=3D%d) misalignment, expected write= to page (%llu + %u [0x%llx]) of 0x%x, found 0x%x\n", @@ -163,7 +163,7 @@ static int check_partial_mapping(struct drm_i915_gem_ob= ject *obj, } *cpu =3D 0; drm_clflush_virt_range(cpu, sizeof(*cpu)); - kunmap(p); + kunmap_local(cpu); =20 out: __i915_vma_put(vma); @@ -239,7 +239,7 @@ static int check_partial_mappings(struct drm_i915_gem_o= bject *obj, intel_gt_flush_ggtt_writes(to_gt(i915)); =20 p =3D i915_gem_object_get_page(obj, offset >> PAGE_SHIFT); - cpu =3D kmap(p) + offset_in_page(offset); + cpu =3D kmap_local_page(p) + offset_in_page(offset); drm_clflush_virt_range(cpu, sizeof(*cpu)); if (*cpu !=3D (u32)page) { pr_err("Partial view for %lu [%u] (offset=3D%llu, size=3D%u [%llu, row = size %u], fence=3D%d, tiling=3D%d, stride=3D%d) misalignment, expected writ= e to page (%llu + %u [0x%llx]) of 0x%x, found 0x%x\n", @@ -257,7 +257,7 @@ static int check_partial_mappings(struct drm_i915_gem_o= bject *obj, } *cpu =3D 0; drm_clflush_virt_range(cpu, sizeof(*cpu)); - kunmap(p); + kunmap_local(cpu); if (err) return err; =20 diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c b/drivers/gpu/drm= /i915/gt/intel_ggtt_fencing.c index f8948de72036..743a414f86f3 100644 --- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c @@ -743,7 +743,7 @@ static void swizzle_page(struct page *page) char *vaddr; int i; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_local_page(page); =20 for (i =3D 0; i < PAGE_SIZE; i +=3D 128) { memcpy(temp, &vaddr[i], 64); @@ -751,7 +751,7 @@ static void swizzle_page(struct page *page) memcpy(&vaddr[i + 64], temp, 64); } =20 - kunmap(page); + kunmap_local(vaddr); } =20 /** diff --git a/drivers/gpu/drm/i915/gt/shmem_utils.c b/drivers/gpu/drm/i915/g= t/shmem_utils.c index 0683b27a3890..d47f262d2f07 100644 --- a/drivers/gpu/drm/i915/gt/shmem_utils.c +++ b/drivers/gpu/drm/i915/gt/shmem_utils.c @@ -97,22 +97,19 @@ static int __shmem_rw(struct file *file, loff_t off, unsigned int this =3D min_t(size_t, PAGE_SIZE - offset_in_page(off), len); struct page *page; - void *vaddr; =20 page =3D shmem_read_mapping_page_gfp(file->f_mapping, pfn, GFP_KERNEL); if (IS_ERR(page)) return PTR_ERR(page); =20 - vaddr =3D kmap(page); if (write) { - memcpy(vaddr + offset_in_page(off), ptr, this); + memcpy_to_page(page, offset_in_page(off), ptr, this); set_page_dirty(page); } else { - memcpy(ptr, vaddr + offset_in_page(off), this); + memcpy_from_page(ptr, page, offset_in_page(off), this); } mark_page_accessed(page); - kunmap(page); put_page(page); =20 len -=3D this; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_ge= m.c index 915bf431f320..62ba61f31ad1 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -196,14 +196,14 @@ shmem_pread(struct page *page, int offset, int len, c= har __user *user_data, char *vaddr; int ret; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_local_page(page); =20 if (needs_clflush) drm_clflush_virt_range(vaddr + offset, len); =20 ret =3D __copy_to_user(user_data, vaddr + offset, len); =20 - kunmap(page); + kunmap_local(vaddr); =20 return ret ? -EFAULT : 0; } @@ -618,7 +618,7 @@ shmem_pwrite(struct page *page, int offset, int len, ch= ar __user *user_data, char *vaddr; int ret; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_local_page(page); =20 if (needs_clflush_before) drm_clflush_virt_range(vaddr + offset, len); @@ -627,7 +627,7 @@ shmem_pwrite(struct page *page, int offset, int len, ch= ar __user *user_data, if (!ret && needs_clflush_after) drm_clflush_virt_range(vaddr + offset, len); =20 - kunmap(page); + kunmap_local(vaddr); =20 return ret ? -EFAULT : 0; } diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i= 915_gpu_error.c index 5ae812d60abe..e83821914703 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c @@ -1093,9 +1093,9 @@ i915_vma_coredump_create(const struct intel_gt *gt, =20 drm_clflush_pages(&page, 1); =20 - s =3D kmap(page); + s =3D kmap_local_page(page); ret =3D compress_page(compress, s, dst, false); - kunmap(page); + kunmap_local(s); =20 drm_clflush_pages(&page, 1); =20 --=20 2.31.1 From nobody Tue Jun 30 06:16:39 2026 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 AFF97C433F5 for ; Mon, 24 Jan 2022 01:54:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240766AbiAXByY (ORCPT ); Sun, 23 Jan 2022 20:54:24 -0500 Received: from mga06.intel.com ([134.134.136.31]:20501 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240737AbiAXByN (ORCPT ); Sun, 23 Jan 2022 20:54:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989253; x=1674525253; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RJ38NFsCxCGkkXpWENl1lI1EVp6t2oKoNxmZY3ee8wg=; b=Jyy15f8dPYdyowpJf5mEcuDa4aem/Cvj9/Ifm9eHgtls8O4djsNiA80A CP2wvU5EgAedrp99DI3OnPEqZ1lN9gzNnP0PRuNBcCQoJuhR0b0+TkW+T wY2Hg6HWPGw18252jDSZU7DgEZTdwiVvSKwVDtlKvtpa70Gntk90y+vSc gszToOs/Tv7oahNeFqKZsGfu9iJDCdF81G/sd4QyvGSGE8cRYVoTXxrE7 CBY8Re/g+XqmFF0LB/KkC0dnWIBa4bCbs+ZhSy5coA0Ef2rxMxf3+X5jY BipM40bBEjrknGRLB1mThr86MJUzYLW25ZgYsz99HAgY6Uwln1mgJqcIM A==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658408" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658408" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:13 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320389" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:13 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 2/7] drm/amd: Replace kmap() with kmap_local_page() Date: Sun, 23 Jan 2022 17:54:04 -0800 Message-Id: <20220124015409.807587-3-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny kmap() is being deprecated. These maps are thread local and can be replaced with kmap_local_page(). Replace kmap() with kmap_local_page() Signed-off-by: Ira Weiny --- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_ttm.c index 5c3f24069f2a..54973824f8f9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -2272,9 +2272,9 @@ static ssize_t amdgpu_iomem_read(struct file *f, char= __user *buf, if (p->mapping !=3D adev->mman.bdev.dev_mapping) return -EPERM; =20 - ptr =3D kmap(p); + ptr =3D kmap_local_page(p); r =3D copy_to_user(buf, ptr + off, bytes); - kunmap(p); + kunmap_local(ptr); if (r) return -EFAULT; =20 @@ -2323,9 +2323,9 @@ static ssize_t amdgpu_iomem_write(struct file *f, con= st char __user *buf, if (p->mapping !=3D adev->mman.bdev.dev_mapping) return -EPERM; =20 - ptr =3D kmap(p); + ptr =3D kmap_local_page(p); r =3D copy_from_user(ptr + off, buf, bytes); - kunmap(p); + kunmap_local(ptr); if (r) return -EFAULT; =20 --=20 2.31.1 From nobody Tue Jun 30 06:16:39 2026 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 A5CA0C4332F for ; Mon, 24 Jan 2022 01:54:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240755AbiAXByW (ORCPT ); Sun, 23 Jan 2022 20:54:22 -0500 Received: from mga06.intel.com ([134.134.136.31]:20501 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240743AbiAXByO (ORCPT ); Sun, 23 Jan 2022 20:54:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989254; x=1674525254; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+LXecIMRVcm+6l6u17VPJeZsX7SGcDdtoraU1ufkp0U=; b=R5xyLskPBTZNg58Kl/RPA5/3s7uSoIYM/XXZGmgN7bKkeqjdO44ODBUc JzQ8UMsLgq4YyfHs63pUMNoV40cVaW7bZdgAo/SAcbOESCEGvfnTo3JOj oZjIixLOl6XBjVpTE09R5jbkmqbYFCwlYKSrfy4pMWXZVWPBuoub++QpC dtW3UNaQutkloRSpQnfbTPjEXQiJ+8Cq+yxvzTOwpqJq+5Rlf76SrX+bK qGJ3Nf7TRkreXbMjo5gqaGsK9eGGuE3/dVzLcdZspcJREWftHDWXqbYzM 493fJ7c0KTr/vTx65y8RB0JFBfpO6CS66mqyVCSwAE+IxmuQywMOLC0vY A==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658411" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658411" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:13 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320393" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:13 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 3/7] drm/gma: Remove calls to kmap() Date: Sun, 23 Jan 2022 17:54:05 -0800 Message-Id: <20220124015409.807587-4-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny kmap() is being deprecated and these instances are easy to convert to kmap_local_page(). Furthermore, in gma_crtc_cursor_set() use the memcpy_from_page() helper instead of an open coded use of kmap_local_page(). Signed-off-by: Ira Weiny --- drivers/gpu/drm/gma500/gma_display.c | 6 ++---- drivers/gpu/drm/gma500/mmu.c | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/gma500/gma_display.c b/drivers/gpu/drm/gma500/= gma_display.c index 99da3118131a..60ba7de59139 100644 --- a/drivers/gpu/drm/gma500/gma_display.c +++ b/drivers/gpu/drm/gma500/gma_display.c @@ -335,7 +335,7 @@ int gma_crtc_cursor_set(struct drm_crtc *crtc, struct psb_gem_object *pobj; struct psb_gem_object *cursor_pobj =3D gma_crtc->cursor_pobj; struct drm_gem_object *obj; - void *tmp_dst, *tmp_src; + void *tmp_dst; int ret =3D 0, i, cursor_pages; =20 /* If we didn't get a handle then turn the cursor off */ @@ -400,9 +400,7 @@ int gma_crtc_cursor_set(struct drm_crtc *crtc, /* Copy the cursor to cursor mem */ tmp_dst =3D dev_priv->vram_addr + cursor_pobj->offset; for (i =3D 0; i < cursor_pages; i++) { - tmp_src =3D kmap(pobj->pages[i]); - memcpy(tmp_dst, tmp_src, PAGE_SIZE); - kunmap(pobj->pages[i]); + memcpy_from_page(tmp_dst, pobj->pages[i], 0, PAGE_SIZE); tmp_dst +=3D PAGE_SIZE; } =20 diff --git a/drivers/gpu/drm/gma500/mmu.c b/drivers/gpu/drm/gma500/mmu.c index fe9ace2a7967..a70b01ccdf70 100644 --- a/drivers/gpu/drm/gma500/mmu.c +++ b/drivers/gpu/drm/gma500/mmu.c @@ -184,17 +184,17 @@ struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_dr= iver *driver, pd->invalid_pte =3D 0; } =20 - v =3D kmap(pd->dummy_pt); + v =3D kmap_local_page(pd->dummy_pt); for (i =3D 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i) v[i] =3D pd->invalid_pte; =20 - kunmap(pd->dummy_pt); + kunmap_local(v); =20 - v =3D kmap(pd->p); + v =3D kmap_local_page(pd->p); for (i =3D 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i) v[i] =3D pd->invalid_pde; =20 - kunmap(pd->p); + kunmap_local(v); =20 clear_page(kmap(pd->dummy_page)); kunmap(pd->dummy_page); --=20 2.31.1 From nobody Tue Jun 30 06:16:39 2026 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 8C102C433F5 for ; Mon, 24 Jan 2022 01:54:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240838AbiAXByc (ORCPT ); Sun, 23 Jan 2022 20:54:32 -0500 Received: from mga06.intel.com ([134.134.136.31]:20505 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240744AbiAXByO (ORCPT ); Sun, 23 Jan 2022 20:54:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989254; x=1674525254; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KXyxgwUM4bkXvDM+XyNRIjGv+8i1m09MysFfC7KN7A8=; b=Z5Pco8GtxyNqDKHUduC4Y5R1leAPoQimDF9hc5zhPoj+FVuA0vh1wmDh pZ+VoB9cvt5zLgNojaVNON8cnUhXY9liwJ8RvZzYHeUjDxHzKIV1gVd8H Bxgx43wjXXq22Vt1ReBrG/PxC844XN5EWBK+dJNs46gCLP4LBB8WV1AKT TjFX2etnIjedsIIoCYdzKAXVTMOcAwIMCSzFjziVpzHxsnDRrFXCQc7UK 6y55KOKzsWN3D4Z8TvB0PnuuLfSJWqhnq6PI0qHF0Sj4/4x8xZ8y06XM9 uLyjCXDfA2nyCPowq2Za0HrUuqrSCbHgS4c2vko9KHOHzL6UeXq2E7mpK g==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658415" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658415" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:14 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320397" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:14 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 4/7] drm/radeon: Replace kmap() with kmap_local_page() Date: Sun, 23 Jan 2022 17:54:06 -0800 Message-Id: <20220124015409.807587-5-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny kmap() is being deprecated and this usage is local to the thread. Use kmap_local_page() instead. Signed-off-by: Ira Weiny --- drivers/gpu/drm/radeon/radeon_ttm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/r= adeon_ttm.c index 11b21d605584..76d7906e1785 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -907,11 +907,11 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, ch= ar __user *buf, =20 page =3D rdev->gart.pages[p]; if (page) { - ptr =3D kmap(page); + ptr =3D kmap_local_page(page); ptr +=3D off; =20 r =3D copy_to_user(buf, ptr, cur_size); - kunmap(rdev->gart.pages[p]); + kunmap_local(ptr); } else r =3D clear_user(buf, cur_size); =20 --=20 2.31.1 From nobody Tue Jun 30 06:16:39 2026 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 C5101C433EF for ; Mon, 24 Jan 2022 01:54:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240817AbiAXBy3 (ORCPT ); Sun, 23 Jan 2022 20:54:29 -0500 Received: from mga06.intel.com ([134.134.136.31]:20501 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240745AbiAXByP (ORCPT ); Sun, 23 Jan 2022 20:54:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989255; x=1674525255; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6XGSnQ9TBlvVO/HCj7hdTuMI8xk5GqvKzVoFd47JxeM=; b=HpxAay3e1Sb6cpqa5PLUHH0itRrLmsJ6oZ/dZU39VtjkrSdqZle2JJQh gn2nU2VT2hUKGOKCFR/j4OpDi0jIYTWckRWJdUY2A1DD75Sddp5N4fsZh +a7w6XZcFfsuhhoUPYOh2YWs4lzxcMwRypkvZyKApQiVnPzQwCpmInxA8 QcHLJKofSq30zEDTi9KbPyInJxb2yFvDjXodMFhSwaGHjjX1CZkJ4YKyO BxLXZ8ewDuODMVV0Zvm9FfGFwkky9ywwIQguAUgps1EUFXwa2UCMwD1rb mfi1MqdXFgo1YpxCbVS3vXliLNPnKJzrXEtHUkHrxB0SFRZ4bagc11+4h g==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658418" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658418" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:14 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320404" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:14 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 5/7] drm/msm: Alter comment to use kmap_local_page() Date: Sun, 23 Jan 2022 17:54:07 -0800 Message-Id: <20220124015409.807587-6-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny kmap() is being deprecated. So this comment could be misleading in the future. Change this comment to point to using kmap_local_page(). While here remove 'we' from the comment. Signed-off-by: Ira Weiny --- drivers/gpu/drm/msm/msm_gem_submit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm= _gem_submit.c index 6cfa984dee6a..cc18d5d1fe5a 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -438,8 +438,8 @@ static int submit_reloc(struct msm_gem_submit *submit, = struct msm_gem_object *ob return -EINVAL; } =20 - /* For now, just map the entire thing. Eventually we probably - * to do it page-by-page, w/ kmap() if not vmap()d.. + /* For now, just map the entire thing. Eventually it should probably + * be done page-by-page, w/ kmap_local_page() if not vmap()d.. */ ptr =3D msm_gem_get_vaddr_locked(&obj->base); =20 --=20 2.31.1 From nobody Tue Jun 30 06:16:39 2026 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 7E0CEC433FE for ; Mon, 24 Jan 2022 01:54:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240789AbiAXBy0 (ORCPT ); Sun, 23 Jan 2022 20:54:26 -0500 Received: from mga06.intel.com ([134.134.136.31]:20509 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240747AbiAXByP (ORCPT ); Sun, 23 Jan 2022 20:54:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989255; x=1674525255; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8QsQEKSxoLGHydWZTS5T8WXMzBP5ZWfGvu6Ze1y391U=; b=HmjPJ0I7fUjK05LRt3yk8Fy/iRmUsSIS7UL3AtG6XI/dLSIGi6ojslZQ +jZBfDmV7ruuU+AvcZ/0oxCMTY6YAdeUROg3laUEBHcmzycaBH2Z3vI+n HMCt507oTKSbZIHcaLzES9rrFj7Vc0e7YUqCvBMvQIAUuG4FE9autOdGn M8J8xvZ0cL4iDAuv6SSw/2Xs201VOuLNLfoYa8AcDXlp9qa491oA4Sas3 P3SShzo8FlHwwSyybOV0nLxXYt31kx1F1Naq4SqkM3kA9xtjuuikNB2Yg QEi7eM/1TlfoL+cveDEwXAWZMhJbP0WyhNe3+tO/FVBoPifJJxkgSqm5F w==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658422" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658422" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:15 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320407" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:15 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 6/7] drm/amdgpu: Ensure kunmap is called on error Date: Sun, 23 Jan 2022 17:54:08 -0800 Message-Id: <20220124015409.807587-7-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny The default case leaves the buffer object mapped in error. Add amdgpu_bo_kunmap() to that case to ensure the mapping is cleaned up. Signed-off-by: Ira Weiny --- NOTE: It seems like this function could use a fair bit of refactoring but this is the easiest way to fix the actual bug. --- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_uvd.c index 6f8de11a17f1..b3ffd0f6b35f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c @@ -889,6 +889,7 @@ static int amdgpu_uvd_cs_msg(struct amdgpu_uvd_cs_ctx *= ctx, return 0; =20 default: + amdgpu_bo_kunmap(bo); DRM_ERROR("Illegal UVD message type (%d)!\n", msg_type); } =20 --=20 2.31.1 From nobody Tue Jun 30 06:16:39 2026 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 DE58DC4332F for ; Mon, 24 Jan 2022 01:54:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240855AbiAXByd (ORCPT ); Sun, 23 Jan 2022 20:54:33 -0500 Received: from mga06.intel.com ([134.134.136.31]:20509 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240748AbiAXByQ (ORCPT ); Sun, 23 Jan 2022 20:54:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642989256; x=1674525256; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BBygKGffoL5d5GTpz8jASmHam5hJkymlp1BmAKuyaH0=; b=PD4oMlRRxBya31CJ67nZZoXbbELU3HVJQjWbceQvGLHUaFyLNA5lHoLo tK4Hh9B7pCs4dGRaVVmN+i3QsbfN4F1rMe+bVqsJQDrxJcN8rLj5p2/X1 4iYnPYLv/zhZXGFJ7fhf6OzpaSgvKGwe8A/t1MVt9l+fr3D+AtA3A6hMj tfFjpWpxWfAc9rc5100fSjdwnGX65fbB+dO3zTZ6dsbPnlJxbSCSw5b0Z coR9aE+6m8k0RVOPvJxHYOZnvZrLRAi+sOBhPR32k0XFAtoMuQ79TuABF W6kovrFCD39/5EKHxVbmiAXD+MrsdVR64pQuAmW/WQFj5DBx4hvKCX0U3 Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="306658425" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="306658425" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:15 -0800 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="627320411" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 17:54:15 -0800 From: ira.weiny@intel.com To: David Airlie , Daniel Vetter , Patrik Jakobsson , Rob Clark , Sean Paul Cc: Ira Weiny , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH V2 7/7] drm/radeon: Ensure kunmap is called on error Date: Sun, 23 Jan 2022 17:54:09 -0800 Message-Id: <20220124015409.807587-8-ira.weiny@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220124015409.807587-1-ira.weiny@intel.com> References: <20220124015409.807587-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ira Weiny The default case leaves the buffer object mapped in error. Add radeon_bo_kunmap() to that case to ensure the mapping is cleaned up. Signed-off-by: Ira Weiny --- NOTE: It seems like this function could use a fair bit of refactoring but this is the easiest way to fix the actual bug. --- drivers/gpu/drm/radeon/radeon_uvd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/r= adeon_uvd.c index 377f9cdb5b53..7cca283f6202 100644 --- a/drivers/gpu/drm/radeon/radeon_uvd.c +++ b/drivers/gpu/drm/radeon/radeon_uvd.c @@ -560,6 +560,7 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p= , struct radeon_bo *bo, =20 default: =20 + radeon_bo_kunmap(bo); DRM_ERROR("Illegal UVD message type (%d)!\n", msg_type); return -EINVAL; } --=20 2.31.1