|
Lines 51-57
static int set_brk(unsigned long start,
Link Here
|
| 51 |
start = PAGE_ALIGN(start); |
51 |
start = PAGE_ALIGN(start); |
| 52 |
end = PAGE_ALIGN(end); |
52 |
end = PAGE_ALIGN(end); |
| 53 |
if (end > start) { |
53 |
if (end > start) { |
| 54 |
unsigned long addr = do_brk(start, end - start); |
54 |
unsigned long addr = do_brk_unlocked(start, end - start); |
| 55 |
if (BAD_ADDR(addr)) |
55 |
if (BAD_ADDR(addr)) |
| 56 |
return addr; |
56 |
return addr; |
| 57 |
} |
57 |
} |
|
Lines 323-332
static int load_aout_binary(struct linux
Link Here
|
| 323 |
loff_t pos = fd_offset; |
323 |
loff_t pos = fd_offset; |
| 324 |
/* Fuck me plenty... */ |
324 |
/* Fuck me plenty... */ |
| 325 |
/* <AOL></AOL> */ |
325 |
/* <AOL></AOL> */ |
| 326 |
error = do_brk(N_TXTADDR(ex), ex.a_text); |
326 |
error = do_brk_unlocked(N_TXTADDR(ex), ex.a_text); |
| 327 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
327 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
| 328 |
ex.a_text, &pos); |
328 |
ex.a_text, &pos); |
| 329 |
error = do_brk(N_DATADDR(ex), ex.a_data); |
329 |
error = do_brk_unlocked(N_DATADDR(ex), ex.a_data); |
| 330 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
330 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
| 331 |
ex.a_data, &pos); |
331 |
ex.a_data, &pos); |
| 332 |
goto beyond_if; |
332 |
goto beyond_if; |
|
Lines 347-353
static int load_aout_binary(struct linux
Link Here
|
| 347 |
map_size = ex.a_text+ex.a_data; |
347 |
map_size = ex.a_text+ex.a_data; |
| 348 |
#endif |
348 |
#endif |
| 349 |
|
349 |
|
| 350 |
error = do_brk(text_addr & PAGE_MASK, map_size); |
350 |
error = do_brk_unlocked(text_addr & PAGE_MASK, map_size); |
| 351 |
if (error != (text_addr & PAGE_MASK)) { |
351 |
if (error != (text_addr & PAGE_MASK)) { |
| 352 |
send_sig(SIGKILL, current, 0); |
352 |
send_sig(SIGKILL, current, 0); |
| 353 |
return error; |
353 |
return error; |
|
Lines 381-387
static int load_aout_binary(struct linux
Link Here
|
| 381 |
|
381 |
|
| 382 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
382 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
| 383 |
loff_t pos = fd_offset; |
383 |
loff_t pos = fd_offset; |
| 384 |
do_brk(N_TXTADDR(ex), ex.a_text+ex.a_data); |
384 |
do_brk_unlocked(N_TXTADDR(ex), ex.a_text+ex.a_data); |
| 385 |
bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex), |
385 |
bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex), |
| 386 |
ex.a_text+ex.a_data, &pos); |
386 |
ex.a_text+ex.a_data, &pos); |
| 387 |
flush_icache_range((unsigned long) N_TXTADDR(ex), |
387 |
flush_icache_range((unsigned long) N_TXTADDR(ex), |
|
Lines 486-492
static int load_aout_library(struct file
Link Here
|
| 486 |
error_time = jiffies; |
486 |
error_time = jiffies; |
| 487 |
} |
487 |
} |
| 488 |
|
488 |
|
| 489 |
do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
489 |
do_brk_unlocked(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
| 490 |
|
490 |
|
| 491 |
file->f_op->read(file, (char *)start_addr, |
491 |
file->f_op->read(file, (char *)start_addr, |
| 492 |
ex.a_text + ex.a_data, &pos); |
492 |
ex.a_text + ex.a_data, &pos); |
|
Lines 510-516
static int load_aout_library(struct file
Link Here
|
| 510 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
510 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
| 511 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
511 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
| 512 |
if (bss > len) { |
512 |
if (bss > len) { |
| 513 |
error = do_brk(start_addr + len, bss - len); |
513 |
error = do_brk_unlocked(start_addr + len, bss - len); |
| 514 |
retval = error; |
514 |
retval = error; |
| 515 |
if (error != start_addr + len) |
515 |
if (error != start_addr + len) |
| 516 |
goto out; |
516 |
goto out; |