Skip to content

Commit

Permalink
enic: reconfigure resources for kdump crash kernel
Browse files Browse the repository at this point in the history
When running in kdump kernel, reduce number of resources used by the driver.
This will enable NIC to operate in low memory kdump kernel environment.

Also change the driver version to .83

Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Govindarajulu Varadarajan authored and David S. Miller committed Jan 5, 2015
1 parent 9ace422 commit 3f255dc
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/net/ethernet/cisco/enic/enic.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

#define DRV_NAME "enic"
#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
#define DRV_VERSION "2.1.1.67"
#define DRV_VERSION "2.1.1.83"
#define DRV_COPYRIGHT "Copyright 2008-2013 Cisco Systems, Inc"

#define ENIC_BARS_MAX 6
Expand Down
17 changes: 17 additions & 0 deletions drivers/net/ethernet/cisco/enic/enic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
#ifdef CONFIG_NET_RX_BUSY_POLL
#include <net/busy_poll.h>
#endif
#include <linux/crash_dump.h>

#include "cq_enet_desc.h"
#include "vnic_dev.h"
Expand Down Expand Up @@ -2265,6 +2266,18 @@ static void enic_dev_deinit(struct enic *enic)
enic_clear_intr_mode(enic);
}

static void enic_kdump_kernel_config(struct enic *enic)
{
if (is_kdump_kernel()) {
dev_info(enic_get_dev(enic), "Running from within kdump kernel. Using minimal resources\n");
enic->rq_count = 1;
enic->wq_count = 1;
enic->config.rq_desc_count = ENIC_MIN_RQ_DESCS;
enic->config.wq_desc_count = ENIC_MIN_WQ_DESCS;
enic->config.mtu = min_t(u16, 1500, enic->config.mtu);
}
}

static int enic_dev_init(struct enic *enic)
{
struct device *dev = enic_get_dev(enic);
Expand Down Expand Up @@ -2294,6 +2307,10 @@ static int enic_dev_init(struct enic *enic)

enic_get_res_counts(enic);

/* modify resource count if we are in kdump_kernel
*/
enic_kdump_kernel_config(enic);

/* Set interrupt mode based on resource counts and system
* capabilities
*/
Expand Down

0 comments on commit 3f255dc

Please sign in to comment.