ksmbd: do not call kvmalloc() with __GFP_NORETRY | __GFP_NO_WARN
authorMarios Makassikis <mmakassikis@freebox.fr>
Thu, 16 Mar 2023 13:40:43 +0000 (14:40 +0100)
committerSteve French <stfrench@microsoft.com>
Sat, 25 Mar 2023 19:54:06 +0000 (14:54 -0500)
Commit 83dcedd5540d ("ksmbd: fix infinite loop in ksmbd_conn_handler_loop()"),
changes GFP modifiers passed to kvmalloc(). This cause xfstests generic/551
test to fail. We limit pdu length size according to connection status and
maximum number of connections. In the rest, memory allocation of request
is limited by credit management. so these flags are no longer needed.

Fixes: 83dcedd5540d ("ksmbd: fix infinite loop in ksmbd_conn_handler_loop()")
Cc: stable@vger.kernel.org
Signed-off-by: Marios Makassikis <mmakassikis@freebox.fr>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/ksmbd/connection.c

index 115a67d2cf7850f83a6102f52d35f76e0014ed47..3f5dfebaa0418a1d6ac25d5978568a0bea0709ca 100644 (file)
@@ -326,10 +326,7 @@ int ksmbd_conn_handler_loop(void *p)
 
                /* 4 for rfc1002 length field */
                size = pdu_size + 4;
-               conn->request_buf = kvmalloc(size,
-                                            GFP_KERNEL |
-                                            __GFP_NOWARN |
-                                            __GFP_NORETRY);
+               conn->request_buf = kvmalloc(size, GFP_KERNEL);
                if (!conn->request_buf)
                        break;