summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonghan Ryu <dryu@nvidia.com>2012-01-20 04:56:01 +0900
committerSimone Willett <swillett@nvidia.com>2012-03-07 22:24:05 -0800
commit0d441392be71b23aa5adaa2533318bf2d38c643e (patch)
tree9f33c82d9b7e6a2a6651c6b1f43e65747b72235f
parent027dab22573050fb1b33d14bfd48ee79eaafeeb1 (diff)
video: tegra: host: convert kzalloc to vzalloc
nvhost_job uses kzalloc to hold meta data. Convert it to vzalloc to avoid large physically contiguous allocations at runtime. Change-Id: I13d7e7d60e93354fcf69e5478437fa206b880dcc Signed-off-by: Donghan Ryu <dryu@nvidia.com> Reviewed-on: http://git-master/r/87967 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
-rw-r--r--drivers/video/tegra/host/nvhost_job.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/video/tegra/host/nvhost_job.c b/drivers/video/tegra/host/nvhost_job.c
index c7e700fce264..e0aa39fafc42 100644
--- a/drivers/video/tegra/host/nvhost_job.c
+++ b/drivers/video/tegra/host/nvhost_job.c
@@ -23,6 +23,7 @@
#include <linux/slab.h>
#include <linux/kref.h>
#include <linux/err.h>
+#include <linux/vmalloc.h>
#include <mach/nvmap.h>
#include "nvhost_channel.h"
#include "nvhost_job.h"
@@ -175,7 +176,7 @@ struct nvhost_job *nvhost_job_alloc(struct nvhost_channel *ch,
int num_cmdbufs = hdr ? hdr->num_cmdbufs : 0;
int err = 0;
- job = kzalloc(job_size(hdr), GFP_KERNEL);
+ job = vzalloc(job_size(hdr));
if (!job)
goto error;
@@ -208,7 +209,7 @@ struct nvhost_job *nvhost_job_realloc(
int num_cmdbufs = hdr ? hdr->num_cmdbufs : 0;
int err = 0;
- newjob = kzalloc(job_size(hdr), GFP_KERNEL);
+ newjob = vzalloc(job_size(hdr));
if (!newjob)
goto error;
kref_init(&newjob->ref);
@@ -250,7 +251,7 @@ static void job_free(struct kref *ref)
nvmap_free(job->nvmap, job->gather_mem);
if (job->nvmap)
nvmap_client_put(job->nvmap);
- kfree(job);
+ vfree(job);
}
void nvhost_job_put(struct nvhost_job *job)