diff mbox series

drm: radeon: fix overflow on 32bit systems

Message ID HK0PR01MB21638498C7DAF86591D36AB0ADD00@HK0PR01MB2163.apcprd01.prod.exchangelabs.com (mailing list archive)
State New, archived
Headers show
Series drm: radeon: fix overflow on 32bit systems | expand

Commit Message

Yang Xiao Nov. 27, 2018, 11:50 a.m. UTC
From: Young Xiao <YangX92@hotmail.com>

the type mem->start is unsigned long, so this can overflow on
32bit system, since the type addr is uint64_t.

Signed-off-by: Young Xiao <YangX92@hotmail.com>
---
 drivers/gpu/drm/radeon/radeon_vm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alex Deucher Nov. 28, 2018, 8:31 p.m. UTC | #1
On Wed, Nov 28, 2018 at 3:14 AM Christian König
<ckoenig.leichtzumerken@gmail.com> wrote:
>
> Am 27.11.18 um 12:50 schrieb Yang Xiao:
> > From: Young Xiao <YangX92@hotmail.com>
> >
> > the type mem->start is unsigned long, so this can overflow on
> > 32bit system, since the type addr is uint64_t.
> >
> > Signed-off-by: Young Xiao <YangX92@hotmail.com>
>
> Reviewed-by: Christian König <christian.koenig@amd.com>
>

Applied.  thanks!

Alex

> > ---
> >   drivers/gpu/drm/radeon/radeon_vm.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
> > index 7f1a9c7..51559d8 100644
> > --- a/drivers/gpu/drm/radeon/radeon_vm.c
> > +++ b/drivers/gpu/drm/radeon/radeon_vm.c
> > @@ -946,7 +946,7 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
> >               bo_va->flags &= ~RADEON_VM_PAGE_WRITEABLE;
> >
> >       if (mem) {
> > -             addr = mem->start << PAGE_SHIFT;
> > +             addr = (u64)mem->start << PAGE_SHIFT;
> >               if (mem->mem_type != TTM_PL_SYSTEM) {
> >                       bo_va->flags |= RADEON_VM_PAGE_VALID;
> >               }
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
diff mbox series

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
index 7f1a9c7..51559d8 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -946,7 +946,7 @@  int radeon_vm_bo_update(struct radeon_device *rdev,
 		bo_va->flags &= ~RADEON_VM_PAGE_WRITEABLE;
 
 	if (mem) {
-		addr = mem->start << PAGE_SHIFT;
+		addr = (u64)mem->start << PAGE_SHIFT;
 		if (mem->mem_type != TTM_PL_SYSTEM) {
 			bo_va->flags |= RADEON_VM_PAGE_VALID;
 		}