From: Seung-Woo Kim Date: Mon, 18 Jan 2021 07:16:24 +0000 (+0900) Subject: amlogic: drm/meson: Fix to use address type for 64bit X-Git-Tag: submit/tizen/20210204.012538~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=37a9041f85094da32a0069a13392d8bb4c4dfdbb;p=platform%2Fkernel%2Flinux-amlogic.git 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 --- 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);