[Devel] [PATCH RHEL7 COMMIT] i40iw: Use kvzalloc to allocate i40iw_handler

Konstantin Khorenko khorenko at virtuozzo.com
Tue Feb 26 13:22:33 MSK 2019


The commit is pushed to "branch-rh7-3.10.0-957.1.3.vz7.83.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-957.1.3.vz7.83.14
------>
commit 6e8fb485b168001eb92294fcdef1ac865bfd1afa
Author: Andrey Ryabinin <aryabinin at virtuozzo.com>
Date:   Tue Feb 26 13:22:31 2019 +0300

    i40iw: Use kvzalloc to allocate i40iw_handler
    
    Workarounds the following warning:
     WARNING: CPU: 8 PID: 1711 at mm/page_alloc.c:3531 __alloc_pages_nodemask+0x311/0x610
     order 3 >= 3, gfp 0xc0d0
     CPU: 8 PID: 1711 Comm: kworker/8:2 ve: 0 Tainted: G               ------------ T 3.10.0-957.1.3.vz7.83.12 #1 83.12
     Call Trace:
      [<ffffffff9e391fd8>] dump_stack+0x19/0x1b
      [<ffffffff9dc98778>] __warn+0xd8/0x100
      [<ffffffff9dc987ff>] warn_slowpath_fmt+0x5f/0x80
      [<ffffffff9ddd4371>] __alloc_pages_nodemask+0x311/0x610
      [<ffffffff9de26a78>] alloc_pages_current+0x98/0x110
      [<ffffffff9ddf1ae8>] kmalloc_order+0x18/0x40
      [<ffffffff9ddf1b36>] kmalloc_order_trace+0x26/0xa0
      [<ffffffffc08efa42>] i40iw_open.part.10+0x42/0x17f0 [i40iw]
      [<ffffffffc08f122b>] i40iw_open+0x3b/0x50 [i40iw]
      [<ffffffffc04f19cd>] i40e_client_subtask+0xbd/0x130 [i40e]
      [<ffffffffc04d408f>] i40e_service_task+0x62f/0x1360 [i40e]
      [<ffffffff9dcbc1e2>] process_one_work+0x182/0x440
      [<ffffffff9dcbd396>] worker_thread+0x126/0x3c0
      [<ffffffff9dcc4401>] kthread+0xd1/0xe0
      [<ffffffff9e3a4cf7>] ret_from_fork_nospec_begin+0x21/0x21
    
    https://pmc.acronis.com/browse/VSTOR-20675
    Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
---
 drivers/infiniband/hw/i40iw/i40iw_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c
index fad8d41efd1d..cc19eb328a13 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_main.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_main.c
@@ -1538,7 +1538,7 @@ static void i40iw_deinit_device(struct i40iw_device *iwdev)
 	}
 
 	i40iw_del_handler(i40iw_find_i40e_handler(ldev));
-	kfree(iwdev->hdl);
+	kvfree(iwdev->hdl);
 }
 
 /**
@@ -1636,7 +1636,7 @@ static int i40iw_open(struct i40e_info *ldev, struct i40e_client *client)
 	if (hdl)
 		return 0;
 
-	hdl = kzalloc(sizeof(*hdl), GFP_KERNEL);
+	hdl = kvzalloc(sizeof(*hdl), GFP_KERNEL);
 	if (!hdl)
 		return -ENOMEM;
 	iwdev = &hdl->device;



More information about the Devel mailing list