Blame SOURCES/bnx2x.patch

ddba73
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
ddba73
index 86e9451..5097083 100644
ddba73
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
ddba73
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
ddba73
@@ -2581,4 +2581,9 @@ void bnx2x_set_rx_ts(struct bnx2x *bp, struct sk_buff *skb);
ddba73
 #define BNX2X_MAX_PHC_DRIFT 31000000
ddba73
 #define BNX2X_PTP_TX_TIMEOUT
ddba73
 
ddba73
+static inline int dup_is_kdump_kernel(void)
ddba73
+{
ddba73
+	return reset_devices;
ddba73
+}
ddba73
+
ddba73
 #endif /* bnx2x.h */
ddba73
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
ddba73
index 66717c5..bd1fed9 100644
ddba73
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
ddba73
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
ddba73
@@ -65,7 +65,7 @@ static int bnx2x_calc_num_queues(struct bnx2x *bp)
ddba73
 	int nq = bnx2x_num_queues ? : netif_get_num_default_rss_queues();
ddba73
 
ddba73
 	/* Reduce memory usage in kdump environment by using only one queue */
ddba73
-	if (is_kdump_kernel())
ddba73
+	if (dup_is_kdump_kernel())
ddba73
 		nq = 1;
ddba73
 
ddba73
 	nq = clamp(nq, 1, BNX2X_MAX_QUEUES(bp));
ddba73
@@ -1647,6 +1647,44 @@ void bnx2x_free_irq(struct bnx2x *bp)
ddba73
 	}
ddba73
 }
ddba73
 
ddba73
+/**
ddba73
+ * pci_enable_msix_range - configure device's MSI-X capability structure
ddba73
+ * @dev: pointer to the pci_dev data structure of MSI-X device function
ddba73
+ * @entries: pointer to an array of MSI-X entries
ddba73
+ * @minvec: minimum number of MSI-X irqs requested
ddba73
+ * @maxvec: maximum number of MSI-X irqs requested
ddba73
+ *
ddba73
+ * Setup the MSI-X capability structure of device function with a maximum
ddba73
+ * possible number of interrupts in the range between @minvec and @maxvec
ddba73
+ * upon its software driver call to request for MSI-X mode enabled on its
ddba73
+ * hardware device function. It returns a negative errno if an error occurs.
ddba73
+ * If it succeeds, it returns the actual number of interrupts allocated and
ddba73
+ * indicates the successful configuration of MSI-X capability structure
ddba73
+ * with new allocated MSI-X interrupts.
ddba73
+ **/
ddba73
+static int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
ddba73
+			       int minvec, int maxvec)
ddba73
+{
ddba73
+	int nvec = maxvec;
ddba73
+	int rc;
ddba73
+
ddba73
+	if (maxvec < minvec)
ddba73
+		return -ERANGE;
ddba73
+
ddba73
+	do {
ddba73
+		rc = pci_enable_msix(dev, entries, nvec);
ddba73
+		if (rc < 0) {
ddba73
+			return rc;
ddba73
+		} else if (rc > 0) {
ddba73
+			if (rc < minvec)
ddba73
+				return -ENOSPC;
ddba73
+			nvec = rc;
ddba73
+		}
ddba73
+	} while (rc);
ddba73
+
ddba73
+	return nvec;
ddba73
+}
ddba73
+
ddba73
 int bnx2x_enable_msix(struct bnx2x *bp)
ddba73
 {
ddba73
 	int msix_vec = 0, i, rc;
ddba73
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
ddba73
index e22c363..491ffe0 100644
ddba73
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
ddba73
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
ddba73
@@ -11972,7 +11972,7 @@ static int bnx2x_init_bp(struct bnx2x *bp)
ddba73
 	bp->disable_tpa = disable_tpa;
ddba73
 	bp->disable_tpa |= IS_MF_STORAGE_SD(bp) || IS_MF_FCOE_AFEX(bp);
ddba73
 	/* Reduce memory usage in kdump environment by disabling TPA */
ddba73
-	bp->disable_tpa |= is_kdump_kernel();
ddba73
+	bp->disable_tpa |= dup_is_kdump_kernel();
ddba73
 
ddba73
 	/* Set TPA flags */
ddba73
 	if (bp->disable_tpa) {