[PATCH] fix undefined reference to user_shm_unlock

From: Hugh Dickins
Date: Sat Sep 12 2009 - 07:22:15 EST


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@xxxxxxxxxx>
Signed-off-by: Hugh Dickins <hugh.dickins@xxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxx
---

ipc/shm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- 2.6.31/ipc/shm.c 2009-09-09 23:13:59.000000000 +0100
+++ linux/ipc/shm.c 2009-09-12 11:27:00.000000000 +0100
@@ -410,7 +410,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:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/