From: Hugh Dickins Date: Sat, 12 Sep 2009 11:21:27 +0000 (+0100) Subject: fix undefined reference to user_shm_unlock X-Git-Tag: v2.6.30.8~18 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d4f93b323665e2fcf97de46f9740452ebaf43e4c;p=karo-tx-linux.git fix undefined reference to user_shm_unlock 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 Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/ipc/shm.c b/ipc/shm.c index 30b126525ab0..75aac575e753 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -411,7 +411,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) 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: