diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 5eea4dc0509ef0d738814f05ee5261c3bbcded97..a7cbd69efbef861fbc412b479fca4bbb8a4e6cac 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -903,7 +903,8 @@ static int do_mq_open(const char __user *u_name, int oflag, umode_t mode,
 
 	audit_mq_open(oflag, mode, attr);
 
-	if (IS_ERR(name = getname(u_name)))
+	name = getname(u_name);
+	if (IS_ERR(name))
 		return PTR_ERR(name);
 
 	fd = get_unused_fd_flags(O_CLOEXEC);