aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorMichel Lespinasse2013-02-22 18:32:47 -0600
committerLinus Torvalds2013-02-23 19:50:11 -0600
commit41badc15cbad0350de34408c1b0c690f9df76d4b (patch)
tree2545134398b99b37259bf6412a0bb56442f120fa /ipc
parent1869305009857cdeaabe6283bcdc2359c5784543 (diff)
downloadam43-linux-kernel-41badc15cbad0350de34408c1b0c690f9df76d4b.tar.gz
am43-linux-kernel-41badc15cbad0350de34408c1b0c690f9df76d4b.tar.xz
am43-linux-kernel-41badc15cbad0350de34408c1b0c690f9df76d4b.zip
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')
-rw-r--r--ipc/shm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index 9f047ba69e6..be3ec9ae454 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -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,
1078invalid: 1078invalid:
1079 up_write(&current->mm->mmap_sem); 1079 up_write(&current->mm->mmap_sem);
1080 if (populate) 1080 if (populate)
1081 mm_populate(addr, size); 1081 mm_populate(addr, populate);
1082 1082
1083out_fput: 1083out_fput:
1084 fput(file); 1084 fput(file);