diff options
author | Michel Lespinasse <walken@google.com> | 2013-02-22 19:32:47 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-23 20:50:11 -0500 |
commit | 41badc15cbad0350de34408c1b0c690f9df76d4b (patch) | |
tree | 2545134398b99b37259bf6412a0bb56442f120fa /ipc/shm.c | |
parent | 1869305009857cdeaabe6283bcdc2359c5784543 (diff) |
mm: make do_mmap_pgoff return populate as a size in bytes, not as a bool
do_mmap_pgoff() rounds up the desired size to the next PAGE_SIZE
multiple, however there was no equivalent code in mm_populate(), which
caused issues.
This could be fixed by introduced the same rounding in mm_populate(),
however I think it's preferable to make do_mmap_pgoff() return populate
as a size rather than as a boolean, so we don't have to duplicate the
size rounding logic in mm_populate().
Signed-off-by: Michel Lespinasse <walken@google.com>
Acked-by: Rik van Riel <riel@redhat.com>
Tested-by: Andy Lutomirski <luto@amacapital.net>
Cc: Greg Ungerer <gregungerer@westnet.com.au>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/shm.c')
-rw-r--r-- | ipc/shm.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -971,7 +971,7 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, | |||
971 | struct shm_file_data *sfd; | 971 | struct shm_file_data *sfd; |
972 | struct path path; | 972 | struct path path; |
973 | fmode_t f_mode; | 973 | fmode_t f_mode; |
974 | bool populate = false; | 974 | unsigned long populate = 0; |
975 | 975 | ||
976 | err = -EINVAL; | 976 | err = -EINVAL; |
977 | if (shmid < 0) | 977 | if (shmid < 0) |
@@ -1078,7 +1078,7 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, | |||
1078 | invalid: | 1078 | invalid: |
1079 | up_write(¤t->mm->mmap_sem); | 1079 | up_write(¤t->mm->mmap_sem); |
1080 | if (populate) | 1080 | if (populate) |
1081 | mm_populate(addr, size); | 1081 | mm_populate(addr, populate); |
1082 | 1082 | ||
1083 | out_fput: | 1083 | out_fput: |
1084 | fput(file); | 1084 | fput(file); |