i40e: Fix kdump failure
authorAvinash Dayanand <avinash.dayanand@intel.com>
Wed, 27 Dec 2017 13:22:11 +0000 (08:22 -0500)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 26 Jan 2018 21:23:33 +0000 (13:23 -0800)
kdump fails in the system when used in conjunction with Ethernet driver
X722/X710. This is mainly because when we are resource constrained i.e.
when we have just one online_cpus, we are enabling VMDq and iWARP. It
doesn't make sense to enable them with just one CPU and starve kdump
for lack of IRQs.

So don't enable VMDq or iWARP when we just have a single CPU.

Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index ed0870ff4be22a4696db684847f5e8897ded45a4..db611433120aa1bba15a56ab564075da8095ec6e 100644 (file)
@@ -11069,13 +11069,13 @@ static int i40e_sw_init(struct i40e_pf *pf)
            pf->hw.aq.fw_maj_ver >= 6)
                pf->hw_features |= I40E_HW_PTP_L4_CAPABLE;
 
-       if (pf->hw.func_caps.vmdq) {
+       if (pf->hw.func_caps.vmdq && num_online_cpus() != 1) {
                pf->num_vmdq_vsis = I40E_DEFAULT_NUM_VMDQ_VSI;
                pf->flags |= I40E_FLAG_VMDQ_ENABLED;
                pf->num_vmdq_qps = i40e_default_queues_per_vmdq(pf);
        }
 
-       if (pf->hw.func_caps.iwarp) {
+       if (pf->hw.func_caps.iwarp && num_online_cpus() != 1) {
                pf->flags |= I40E_FLAG_IWARP_ENABLED;
                /* IWARP needs one extra vector for CQP just like MISC.*/
                pf->num_iwarp_msix = (int)num_online_cpus() + 1;