sctp: use GFP_KERNEL in sctp_init()
authorEric Dumazet <edumazet@google.com>
Tue, 15 Dec 2015 23:33:39 +0000 (15:33 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Dec 2015 04:27:45 +0000 (23:27 -0500)
modules init functions being called from process context, we better
use GFP_KERNEL allocations to increase our chances to get these
high-order pages we want for SCTP hash tables.

This mostly matters if SCTP module is loaded once memory got fragmented.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/protocol.c

index 3d9ea9a48289af7324d2c96d82938dd978634ce5..6c2c0accc6a0577084b24c06a3f832581797b9c5 100644 (file)
@@ -1419,7 +1419,7 @@ static __init int sctp_init(void)
                if ((sctp_assoc_hashsize > (64 * 1024)) && order > 0)
                        continue;
                sctp_assoc_hashtable = (struct sctp_hashbucket *)
-                       __get_free_pages(GFP_ATOMIC|__GFP_NOWARN, order);
+                       __get_free_pages(GFP_KERNEL | __GFP_NOWARN, order);
        } while (!sctp_assoc_hashtable && --order > 0);
        if (!sctp_assoc_hashtable) {
                pr_err("Failed association hash alloc\n");
@@ -1452,7 +1452,7 @@ static __init int sctp_init(void)
                if ((sctp_port_hashsize > (64 * 1024)) && order > 0)
                        continue;
                sctp_port_hashtable = (struct sctp_bind_hashbucket *)
-                       __get_free_pages(GFP_ATOMIC|__GFP_NOWARN, order);
+                       __get_free_pages(GFP_KERNEL | __GFP_NOWARN, order);
        } while (!sctp_port_hashtable && --order > 0);
        if (!sctp_port_hashtable) {
                pr_err("Failed bind hash alloc\n");