|
Lines 45-51
Link Here
|
| 45 |
end = PAGE_ALIGN(end); |
45 |
end = PAGE_ALIGN(end); |
| 46 |
if (end <= start) |
46 |
if (end <= start) |
| 47 |
return; |
47 |
return; |
| 48 |
do_brk(start, end - start); |
48 |
do_brk_locked(start, end - start); |
| 49 |
} |
49 |
} |
| 50 |
|
50 |
|
| 51 |
/* |
51 |
/* |
|
Lines 312-321
Link Here
|
| 312 |
loff_t pos = fd_offset; |
312 |
loff_t pos = fd_offset; |
| 313 |
/* Fuck me plenty... */ |
313 |
/* Fuck me plenty... */ |
| 314 |
/* <AOL></AOL> */ |
314 |
/* <AOL></AOL> */ |
| 315 |
error = do_brk(N_TXTADDR(ex), ex.a_text); |
315 |
error = do_brk_locked(N_TXTADDR(ex), ex.a_text); |
| 316 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
316 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
| 317 |
ex.a_text, &pos); |
317 |
ex.a_text, &pos); |
| 318 |
error = do_brk(N_DATADDR(ex), ex.a_data); |
318 |
error = do_brk_locked(N_DATADDR(ex), ex.a_data); |
| 319 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
319 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
| 320 |
ex.a_data, &pos); |
320 |
ex.a_data, &pos); |
| 321 |
goto beyond_if; |
321 |
goto beyond_if; |
|
Lines 336-342
Link Here
|
| 336 |
map_size = ex.a_text+ex.a_data; |
336 |
map_size = ex.a_text+ex.a_data; |
| 337 |
#endif |
337 |
#endif |
| 338 |
|
338 |
|
| 339 |
error = do_brk(text_addr & PAGE_MASK, map_size); |
339 |
error = do_brk_locked(text_addr & PAGE_MASK, map_size); |
| 340 |
if (error != (text_addr & PAGE_MASK)) { |
340 |
if (error != (text_addr & PAGE_MASK)) { |
| 341 |
send_sig(SIGKILL, current, 0); |
341 |
send_sig(SIGKILL, current, 0); |
| 342 |
return error; |
342 |
return error; |
|
Lines 370-376
Link Here
|
| 370 |
|
370 |
|
| 371 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
371 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
| 372 |
loff_t pos = fd_offset; |
372 |
loff_t pos = fd_offset; |
| 373 |
do_brk(N_TXTADDR(ex), ex.a_text+ex.a_data); |
373 |
do_brk_locked(N_TXTADDR(ex), ex.a_text+ex.a_data); |
| 374 |
bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex), |
374 |
bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex), |
| 375 |
ex.a_text+ex.a_data, &pos); |
375 |
ex.a_text+ex.a_data, &pos); |
| 376 |
flush_icache_range((unsigned long) N_TXTADDR(ex), |
376 |
flush_icache_range((unsigned long) N_TXTADDR(ex), |
|
Lines 467-473
Link Here
|
| 467 |
error_time = jiffies; |
467 |
error_time = jiffies; |
| 468 |
} |
468 |
} |
| 469 |
|
469 |
|
| 470 |
do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
470 |
do_brk_locked(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
| 471 |
|
471 |
|
| 472 |
file->f_op->read(file, (char *)start_addr, |
472 |
file->f_op->read(file, (char *)start_addr, |
| 473 |
ex.a_text + ex.a_data, &pos); |
473 |
ex.a_text + ex.a_data, &pos); |
|
Lines 491-497
Link Here
|
| 491 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
491 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
| 492 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
492 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
| 493 |
if (bss > len) { |
493 |
if (bss > len) { |
| 494 |
error = do_brk(start_addr + len, bss - len); |
494 |
error = do_brk_locked(start_addr + len, bss - len); |
| 495 |
retval = error; |
495 |
retval = error; |
| 496 |
if (error != start_addr + len) |
496 |
if (error != start_addr + len) |
| 497 |
goto out; |
497 |
goto out; |