Subject: Re: Fixing Linux emulated brk()
To: Wolfgang Solfrank <ws@tools.de>
From: Christos Zoulas <christos@zoulas.com>
List: tech-kern
Date: 03/15/2001 09:25:58
On Mar 15,  3:23pm, ws@tools.de (Wolfgang Solfrank) wrote:
-- Subject: Re: Fixing Linux emulated brk()

| Wouldn't simply always returning a page-aligned value (even if the user
| didn't ask for it) help here?  Actually, the real break value cannot be
| non-page-aligned anyways...

I think that you are absolutely right. Let's try to do that.

| BTW, the linux_sys_brk looks a bit broken to me.
| 
| 1. It doesn't take into account that vm_daddr might be unaligned.
| It probably should do something similar to what sys_obreak does when
| extracting the old value, i.e.
| 	oldbrk = round_page(vm->vm_daddr + ctob(vm->vm_dsize));
| 
| 2. From the comment in this file, it seems that it wants to only increase
| the break value.  The actual code however doesn't compare with the old
| break value, but with vm_daddr, i.e. the start of the data area.

Yes.

christos