diff options
author | Steven Truelove <steven.truelove@utoronto.ca> | 2012-03-21 19:34:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 20:54:59 -0400 |
commit | 40716e29243de46720e5773797791466c28904ec (patch) | |
tree | 19616ad05cbead73d0643b002a7ced8baa292ee2 /ipc/shm.c | |
parent | 21a3c273f88c9cbbaf7e14505df0131d95c8f262 (diff) |
hugetlbfs: fix alignment of huge page requests
When calling shmget() with SHM_HUGETLB, shmget aligns the request size to
PAGE_SIZE, but this is not sufficient.
Modify hugetlb_file_setup() to align requests to the huge page size, and
to accept an address argument so that all alignment checks can be
performed in hugetlb_file_setup(), rather than in its callers. Change
newseg() and mmap_pgoff() to match the new prototype and eliminate a now
redundant alignment check.
[akpm@linux-foundation.org: fix build]
Signed-off-by: Steven Truelove <steven.truelove@utoronto.ca>
Cc: Hugh Dickins <hughd@google.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 | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -482,7 +482,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) | |||
482 | /* hugetlb_file_setup applies strict accounting */ | 482 | /* hugetlb_file_setup applies strict accounting */ |
483 | if (shmflg & SHM_NORESERVE) | 483 | if (shmflg & SHM_NORESERVE) |
484 | acctflag = VM_NORESERVE; | 484 | acctflag = VM_NORESERVE; |
485 | file = hugetlb_file_setup(name, size, acctflag, | 485 | file = hugetlb_file_setup(name, 0, size, acctflag, |
486 | &shp->mlock_user, HUGETLB_SHMFS_INODE); | 486 | &shp->mlock_user, HUGETLB_SHMFS_INODE); |
487 | } else { | 487 | } else { |
488 | /* | 488 | /* |