On Mon, Oct 20, 2014 at 5:40 AM, Michel Dänzer <michel@xxxxxxxxxxx> wrote: > From: Michel Dänzer <michel.daenzer@xxxxxxx> > > Should avoid kmalloc failures due to large number of array entries. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81991 > Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx> Applied to my -fixes tree. thanks! Alex > --- > drivers/gpu/drm/radeon/radeon_cs.c | 2 +- > drivers/gpu/drm/radeon/radeon_ring.c | 4 ++-- > drivers/gpu/drm/radeon/radeon_vm.c | 4 ++-- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c > index 1c89344..a3e7aed 100644 > --- a/drivers/gpu/drm/radeon/radeon_cs.c > +++ b/drivers/gpu/drm/radeon/radeon_cs.c > @@ -450,7 +450,7 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error, bo > kfree(parser->track); > kfree(parser->relocs); > kfree(parser->relocs_ptr); > - kfree(parser->vm_bos); > + drm_free_large(parser->vm_bos); > for (i = 0; i < parser->nchunks; i++) > drm_free_large(parser->chunks[i].kdata); > kfree(parser->chunks); > diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c > index 596e591..51dcf40 100644 > --- a/drivers/gpu/drm/radeon/radeon_ring.c > +++ b/drivers/gpu/drm/radeon/radeon_ring.c > @@ -314,7 +314,7 @@ unsigned radeon_ring_backup(struct radeon_device *rdev, struct radeon_ring *ring > } > > /* and then save the content of the ring */ > - *data = kmalloc_array(size, sizeof(uint32_t), GFP_KERNEL); > + *data = drm_malloc_ab(size, sizeof(uint32_t)); > if (!*data) { > mutex_unlock(&rdev->ring_lock); > return 0; > @@ -356,7 +356,7 @@ int radeon_ring_restore(struct radeon_device *rdev, struct radeon_ring *ring, > } > > radeon_ring_unlock_commit(rdev, ring, false); > - kfree(data); > + drm_free_large(data); > return 0; > } > > diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c > index 4532cc7..dfde266 100644 > --- a/drivers/gpu/drm/radeon/radeon_vm.c > +++ b/drivers/gpu/drm/radeon/radeon_vm.c > @@ -132,8 +132,8 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct radeon_device *rdev, > struct radeon_cs_reloc *list; > unsigned i, idx; > > - list = kmalloc_array(vm->max_pde_used + 2, > - sizeof(struct radeon_cs_reloc), GFP_KERNEL); > + list = drm_malloc_ab(vm->max_pde_used + 2, > + sizeof(struct radeon_cs_reloc)); > if (!list) > return NULL; > > -- > 2.1.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel