|
Lines 291-297
unsigned long do_mremap(unsigned long ad
Link Here
|
| 291 |
if ((addr <= new_addr) && (addr+old_len) > new_addr) |
291 |
if ((addr <= new_addr) && (addr+old_len) > new_addr) |
| 292 |
goto out; |
292 |
goto out; |
| 293 |
|
293 |
|
| 294 |
do_munmap(current->mm, new_addr, new_len); |
294 |
ret = do_munmap(current->mm, new_addr, new_len); |
|
|
295 |
if (ret && new_len) |
| 296 |
goto out; |
| 295 |
} |
297 |
} |
| 296 |
|
298 |
|
| 297 |
/* |
299 |
/* |
|
Lines 300-306
unsigned long do_mremap(unsigned long ad
Link Here
|
| 300 |
*/ |
302 |
*/ |
| 301 |
ret = addr; |
303 |
ret = addr; |
| 302 |
if (old_len >= new_len) { |
304 |
if (old_len >= new_len) { |
| 303 |
do_munmap(current->mm, addr+new_len, old_len - new_len); |
305 |
ret = do_munmap(current->mm, addr+new_len, old_len - new_len); |
|
|
306 |
if (ret && old_len != new_len) |
| 307 |
goto out; |
| 308 |
ret = addr; |
| 304 |
if (!(flags & MREMAP_FIXED) || (new_addr == addr)) |
309 |
if (!(flags & MREMAP_FIXED) || (new_addr == addr)) |
| 305 |
goto out; |
310 |
goto out; |
| 306 |
} |
311 |
} |