|
@@ -821,13 +821,18 @@ static int vpe_release(struct inode *inode, struct file *filp)
|
|
Elf_Ehdr *hdr;
|
|
Elf_Ehdr *hdr;
|
|
int ret = 0;
|
|
int ret = 0;
|
|
|
|
|
|
|
|
+ if (!vpe_run) {
|
|
|
|
+ pr_warn("VPE loader: ELF load failed.\n");
|
|
|
|
+ return -ENOEXEC;
|
|
|
|
+ }
|
|
|
|
+
|
|
v = get_vpe(aprp_cpu_index());
|
|
v = get_vpe(aprp_cpu_index());
|
|
if (v == NULL)
|
|
if (v == NULL)
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
|
|
|
|
hdr = (Elf_Ehdr *) v->pbuffer;
|
|
hdr = (Elf_Ehdr *) v->pbuffer;
|
|
if (memcmp(hdr->e_ident, ELFMAG, SELFMAG) == 0) {
|
|
if (memcmp(hdr->e_ident, ELFMAG, SELFMAG) == 0) {
|
|
- if ((vpe_elfload(v) >= 0) && vpe_run) {
|
|
|
|
|
|
+ if (vpe_elfload(v) >= 0) {
|
|
vpe_run(v);
|
|
vpe_run(v);
|
|
} else {
|
|
} else {
|
|
pr_warn("VPE loader: ELF load failed.\n");
|
|
pr_warn("VPE loader: ELF load failed.\n");
|