| From foo@baz Thu 06 Feb 2020 06:56:59 AM GMT |
| From: Taehee Yoo <ap420073@gmail.com> |
| Date: Tue, 4 Feb 2020 03:24:59 +0000 |
| Subject: gtp: use __GFP_NOWARN to avoid memalloc warning |
| |
| From: Taehee Yoo <ap420073@gmail.com> |
| |
| [ Upstream commit bd5cd35b782abf5437fbd01dfaee12437d20e832 ] |
| |
| gtp hashtable size is received by user-space. |
| So, this hashtable size could be too large. If so, kmalloc will internally |
| print a warning message. |
| This warning message is actually not necessary for the gtp module. |
| So, this patch adds __GFP_NOWARN to avoid this message. |
| |
| Splat looks like: |
| [ 2171.200049][ T1860] WARNING: CPU: 1 PID: 1860 at mm/page_alloc.c:4713 __alloc_pages_nodemask+0x2f3/0x740 |
| [ 2171.238885][ T1860] Modules linked in: gtp veth openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv] |
| [ 2171.262680][ T1860] CPU: 1 PID: 1860 Comm: gtp-link Not tainted 5.5.0+ #321 |
| [ 2171.263567][ T1860] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 |
| [ 2171.264681][ T1860] RIP: 0010:__alloc_pages_nodemask+0x2f3/0x740 |
| [ 2171.265332][ T1860] Code: 64 fe ff ff 65 48 8b 04 25 c0 0f 02 00 48 05 f0 12 00 00 41 be 01 00 00 00 49 89 47 0 |
| [ 2171.267301][ T1860] RSP: 0018:ffff8880b51af1f0 EFLAGS: 00010246 |
| [ 2171.268320][ T1860] RAX: ffffed1016a35e43 RBX: 0000000000000000 RCX: 0000000000000000 |
| [ 2171.269517][ T1860] RDX: 0000000000000000 RSI: 000000000000000b RDI: 0000000000000000 |
| [ 2171.270305][ T1860] RBP: 0000000000040cc0 R08: ffffed1018893109 R09: dffffc0000000000 |
| [ 2171.275973][ T1860] R10: 0000000000000001 R11: ffffed1018893108 R12: 1ffff11016a35e43 |
| [ 2171.291039][ T1860] R13: 000000000000000b R14: 000000000000000b R15: 00000000000f4240 |
| [ 2171.292328][ T1860] FS: 00007f53cbc83740(0000) GS:ffff8880da000000(0000) knlGS:0000000000000000 |
| [ 2171.293409][ T1860] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 |
| [ 2171.294586][ T1860] CR2: 000055f540014508 CR3: 00000000b49f2004 CR4: 00000000000606e0 |
| [ 2171.295424][ T1860] Call Trace: |
| [ 2171.295756][ T1860] ? mark_held_locks+0xa5/0xe0 |
| [ 2171.296659][ T1860] ? __alloc_pages_slowpath+0x21b0/0x21b0 |
| [ 2171.298283][ T1860] ? gtp_encap_enable_socket+0x13e/0x400 [gtp] |
| [ 2171.298962][ T1860] ? alloc_pages_current+0xc1/0x1a0 |
| [ 2171.299475][ T1860] kmalloc_order+0x22/0x80 |
| [ 2171.299936][ T1860] kmalloc_order_trace+0x1d/0x140 |
| [ 2171.300437][ T1860] __kmalloc+0x302/0x3a0 |
| [ 2171.300896][ T1860] gtp_newlink+0x293/0xba0 [gtp] |
| [ ... ] |
| |
| Fixes: 459aa660eb1d ("gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U)") |
| Signed-off-by: Taehee Yoo <ap420073@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/gtp.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/gtp.c |
| +++ b/drivers/net/gtp.c |
| @@ -772,12 +772,12 @@ static int gtp_hashtable_new(struct gtp_ |
| int i; |
| |
| gtp->addr_hash = kmalloc_array(hsize, sizeof(struct hlist_head), |
| - GFP_KERNEL); |
| + GFP_KERNEL | __GFP_NOWARN); |
| if (gtp->addr_hash == NULL) |
| return -ENOMEM; |
| |
| gtp->tid_hash = kmalloc_array(hsize, sizeof(struct hlist_head), |
| - GFP_KERNEL); |
| + GFP_KERNEL | __GFP_NOWARN); |
| if (gtp->tid_hash == NULL) |
| goto err1; |
| |