mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
drm/nouveau/core: use vzalloc for allocating ramht
commit 78a121d82d upstream.
Most calls to nvkm_ramht_new use 0x8000 as the size. This results in a
fairly sizeable chunk of memory to be allocated, which may not be
available with kzalloc. Since this is done fairly rarely (once per
channel), use vzalloc instead.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: Sven Joachim <svenjoac@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -131,7 +131,7 @@ nvkm_ramht_del(struct nvkm_ramht **pramht)
|
|||||||
struct nvkm_ramht *ramht = *pramht;
|
struct nvkm_ramht *ramht = *pramht;
|
||||||
if (ramht) {
|
if (ramht) {
|
||||||
nvkm_gpuobj_del(&ramht->gpuobj);
|
nvkm_gpuobj_del(&ramht->gpuobj);
|
||||||
kfree(*pramht);
|
vfree(*pramht);
|
||||||
*pramht = NULL;
|
*pramht = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,8 +143,8 @@ nvkm_ramht_new(struct nvkm_device *device, u32 size, u32 align,
|
|||||||
struct nvkm_ramht *ramht;
|
struct nvkm_ramht *ramht;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
|
||||||
if (!(ramht = *pramht = kzalloc(sizeof(*ramht) + (size >> 3) *
|
if (!(ramht = *pramht = vzalloc(sizeof(*ramht) +
|
||||||
sizeof(*ramht->data), GFP_KERNEL)))
|
(size >> 3) * sizeof(*ramht->data))))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ramht->device = device;
|
ramht->device = device;
|
||||||
|
|||||||
Reference in New Issue
Block a user