]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/5.1.7/bnxt_en-reduce-memory-usage-when-running-in-kdump-kernel.patch
Linux 5.1.7
[thirdparty/kernel/stable-queue.git] / releases / 5.1.7 / bnxt_en-reduce-memory-usage-when-running-in-kdump-kernel.patch
1 From foo@baz Fri 31 May 2019 03:16:39 PM PDT
2 From: Michael Chan <michael.chan@broadcom.com>
3 Date: Wed, 22 May 2019 19:12:56 -0400
4 Subject: bnxt_en: Reduce memory usage when running in kdump kernel.
5
6 From: Michael Chan <michael.chan@broadcom.com>
7
8 [ Upstream commit d629522e1d66561f38e5c8d4f52bb6d254ec0707 ]
9
10 Skip RDMA context memory allocations, reduce to 1 ring, and disable
11 TPA when running in the kdump kernel. Without this patch, the driver
12 fails to initialize with memory allocation errors when running in a
13 typical kdump kernel.
14
15 Fixes: cf6daed098d1 ("bnxt_en: Increase context memory allocations on 57500 chips for RDMA.")
16 Signed-off-by: Michael Chan <michael.chan@broadcom.com>
17 Signed-off-by: David S. Miller <davem@davemloft.net>
18 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19 ---
20 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++--
21 drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 +++-
22 2 files changed, 5 insertions(+), 3 deletions(-)
23
24 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
25 +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
26 @@ -6342,7 +6342,7 @@ static int bnxt_alloc_ctx_mem(struct bnx
27 if (!ctx || (ctx->flags & BNXT_CTX_FLAG_INITED))
28 return 0;
29
30 - if (bp->flags & BNXT_FLAG_ROCE_CAP) {
31 + if ((bp->flags & BNXT_FLAG_ROCE_CAP) && !is_kdump_kernel()) {
32 pg_lvl = 2;
33 extra_qps = 65536;
34 extra_srqs = 8192;
35 @@ -10340,7 +10340,7 @@ static int bnxt_set_dflt_rings(struct bn
36
37 if (sh)
38 bp->flags |= BNXT_FLAG_SHARED_RINGS;
39 - dflt_rings = netif_get_num_default_rss_queues();
40 + dflt_rings = is_kdump_kernel() ? 1 : netif_get_num_default_rss_queues();
41 /* Reduce default rings on multi-port cards so that total default
42 * rings do not exceed CPU count.
43 */
44 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
45 +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
46 @@ -20,6 +20,7 @@
47
48 #include <linux/interrupt.h>
49 #include <linux/rhashtable.h>
50 +#include <linux/crash_dump.h>
51 #include <net/devlink.h>
52 #include <net/dst_metadata.h>
53 #include <net/xdp.h>
54 @@ -1367,7 +1368,8 @@ struct bnxt {
55 #define BNXT_CHIP_TYPE_NITRO_A0(bp) ((bp)->flags & BNXT_FLAG_CHIP_NITRO_A0)
56 #define BNXT_RX_PAGE_MODE(bp) ((bp)->flags & BNXT_FLAG_RX_PAGE_MODE)
57 #define BNXT_SUPPORTS_TPA(bp) (!BNXT_CHIP_TYPE_NITRO_A0(bp) && \
58 - !(bp->flags & BNXT_FLAG_CHIP_P5))
59 + !(bp->flags & BNXT_FLAG_CHIP_P5) && \
60 + !is_kdump_kernel())
61
62 /* Chip class phase 5 */
63 #define BNXT_CHIP_P5(bp) \