| From 2195d2818c37bdf263865f1e9effccdd9fc5f9d4 Mon Sep 17 00:00:00 2001 |
| From: Hugh Dickins <hugh.dickins@tiscali.co.uk> |
| Date: Sat, 12 Sep 2009 12:21:27 +0100 |
| Subject: fix undefined reference to user_shm_unlock |
| |
| From: Hugh Dickins <hugh.dickins@tiscali.co.uk> |
| |
| commit 2195d2818c37bdf263865f1e9effccdd9fc5f9d4 upstream. |
| |
| My 353d5c30c666580347515da609dd74a2b8e9b828 "mm: fix hugetlb bug due to |
| user_shm_unlock call" broke the CONFIG_SYSVIPC !CONFIG_MMU build of both |
| 2.6.31 and 2.6.30.6: "undefined reference to `user_shm_unlock'". |
| |
| gcc didn't understand my comment! so couldn't figure out to optimize |
| away user_shm_unlock() from the error path in the hugetlb-less case, as |
| it does elsewhere. Help it to do so, in a language it understands. |
| |
| Reported-by: Mike Frysinger <vapier@gentoo.org> |
| Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| ipc/shm.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/ipc/shm.c |
| +++ b/ipc/shm.c |
| @@ -411,7 +411,7 @@ static int newseg(struct ipc_namespace * |
| return error; |
| |
| no_id: |
| - if (shp->mlock_user) /* shmflg & SHM_HUGETLB case */ |
| + if (is_file_hugepages(file) && shp->mlock_user) |
| user_shm_unlock(size, shp->mlock_user); |
| fput(file); |
| no_file: |