diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
index 47db8eb6cbcf463f4dedf05b8eb28ec4f951c6ce..c7f0c8566442592a9aeece43eaaf0fa312e7f84e 100644
--- a/fs/cifs/smb1ops.c
+++ b/fs/cifs/smb1ops.c
@@ -183,6 +183,9 @@ cifs_get_next_mid(struct TCP_Server_Info *server)
 	/* we do not want to loop forever */
 	last_mid = cur_mid;
 	cur_mid++;
+	/* avoid 0xFFFF MID */
+	if (cur_mid == 0xffff)
+		cur_mid++;
 
 	/*
 	 * This nested loop looks more expensive than it is.