diff options
author | Ingo Molnar <mingo@elte.hu> | 2010-12-22 11:53:20 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-12-22 11:53:23 +0100 |
commit | 6c529a266bdc590a870ee2d2092ff6527eff427b (patch) | |
tree | 7be65fa2578820a1258b5a1e8e063a509a5d6176 /arch/mips/kernel/vpe.c | |
parent | 7639dae0ca11038286bbbcda05f2bef601c1eb8d (diff) | |
parent | 90a8a73c06cc32b609a880d48449d7083327e11a (diff) | |
download | op-kernel-dev-6c529a266bdc590a870ee2d2092ff6527eff427b.zip op-kernel-dev-6c529a266bdc590a870ee2d2092ff6527eff427b.tar.gz |
Merge commit 'v2.6.37-rc7' into perf/core
Merge reason: Pick up the latest -rc.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/mips/kernel/vpe.c')
-rw-r--r-- | arch/mips/kernel/vpe.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index 3eb3cde..6a1fdfe 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c @@ -1092,6 +1092,10 @@ static int vpe_open(struct inode *inode, struct file *filp) /* this of-course trashes what was there before... */ v->pbuffer = vmalloc(P_SIZE); + if (!v->pbuffer) { + pr_warning("VPE loader: unable to allocate memory\n"); + return -ENOMEM; + } v->plen = P_SIZE; v->load_addr = NULL; v->len = 0; @@ -1149,10 +1153,9 @@ static int vpe_release(struct inode *inode, struct file *filp) if (ret < 0) v->shared_ptr = NULL; - // cleanup any temp buffers - if (v->pbuffer) - vfree(v->pbuffer); + vfree(v->pbuffer); v->plen = 0; + return ret; } @@ -1169,11 +1172,6 @@ static ssize_t vpe_write(struct file *file, const char __user * buffer, if (v == NULL) return -ENODEV; - if (v->pbuffer == NULL) { - printk(KERN_ERR "VPE loader: no buffer for program\n"); - return -ENOMEM; - } - if ((count + v->len) > v->plen) { printk(KERN_WARNING "VPE loader: elf size too big. Perhaps strip uneeded symbols\n"); |