diff --git a/mm/mlock.c b/mm/mlock.c
index 263e49dd1ba9f81b635c359b0e33cca8a91c7285..1a1b2a57f6ad842f411d51ba0892471f4cb372b1 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -23,10 +23,10 @@
 
 int can_do_mlock(void)
 {
-	if (capable(CAP_IPC_LOCK))
-		return 1;
 	if (rlimit(RLIMIT_MEMLOCK) != 0)
 		return 1;
+	if (capable(CAP_IPC_LOCK))
+		return 1;
 	return 0;
 }
 EXPORT_SYMBOL(can_do_mlock);