From 37a9041f85094da32a0069a13392d8bb4c4dfdbb Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 18 Jan 2021 16:16:24 +0900 Subject: [PATCH] amlogic: drm/meson: Fix to use address type for 64bit In arm64, physical address type is accessed as 64bit, but there is 32bit variable for it, so there is out-of-bounds access. Fix to use address type for 64bit. This fixes following kasan wanring: BUG: KASAN: stack-out-of-bounds in ion_phys+0xb4/0x180 Write of size 8 at addr ffffffc0a152f700 by task enlightenment/4189 ... [] ion_phys+0xb4/0x180 [] am_meson_gem_object_get_phyaddr+0x114/0x148 [] meson_plane_atomic_check+0x570/0xea8 ... Change-Id: I185601b2dd8f0bb9c700f87c2baaa9f6ebb183d8 Signed-off-by: Seung-Woo Kim --- drivers/amlogic/drm/meson_gem.c | 4 ++-- drivers/amlogic/drm/meson_gem.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/amlogic/drm/meson_gem.c b/drivers/amlogic/drm/meson_gem.c index 4c6ef32a2098..fba2bb7e8037 100644 --- a/drivers/amlogic/drm/meson_gem.c +++ b/drivers/amlogic/drm/meson_gem.c @@ -212,11 +212,11 @@ int am_meson_gem_mmap( return ret; } -int am_meson_gem_object_get_phyaddr( +phys_addr_t am_meson_gem_object_get_phyaddr( struct meson_drm *drm, struct am_meson_gem_object *meson_gem) { - int addr; + phys_addr_t addr; size_t len; if (meson_gem->sg) { diff --git a/drivers/amlogic/drm/meson_gem.h b/drivers/amlogic/drm/meson_gem.h index c644112bd8fc..cab22a5db073 100644 --- a/drivers/amlogic/drm/meson_gem.h +++ b/drivers/amlogic/drm/meson_gem.h @@ -78,7 +78,7 @@ int am_meson_gem_object_mmap( struct am_meson_gem_object *obj, struct vm_area_struct *vma); -extern int am_meson_gem_object_get_phyaddr( +extern phys_addr_t am_meson_gem_object_get_phyaddr( struct meson_drm *drm, struct am_meson_gem_object *meson_gem); -- 2.34.1