]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.drivers/bnx2x-tx_has_work-should-not-wait-for-FW.patch
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.drivers / bnx2x-tx_has_work-should-not-wait-for-FW.patch
diff --git a/src/patches/suse-2.6.27.25/patches.drivers/bnx2x-tx_has_work-should-not-wait-for-FW.patch b/src/patches/suse-2.6.27.25/patches.drivers/bnx2x-tx_has_work-should-not-wait-for-FW.patch
deleted file mode 100644 (file)
index 9c4cf3b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From e8b5fc514d1c7637cb4b8f77e7d8ac33ef66130c Mon Sep 17 00:00:00 2001
-From: Vladislav Zolotarov <vladz@broadcom.com>
-Date: Mon, 26 Jan 2009 12:36:42 -0800
-Subject: bnx2x: tx_has_work should not wait for FW
-Acked-by: Karsten Keil <kkeil@novell.com>
-Reference: bnc#472500
-
-The current tx_has_work waited until all packets sent by the driver
-are marked as completed by the FW. This is too greedy and it causes
-the bnx2x_poll to spin in vain. The driver should only check that all
-packets FW already completed are freed - only in unload flow the
-driver should make sure that transmit queue is empty
-
-Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
-Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/bnx2x_main.c |   17 ++++++++++++-----
- 1 files changed, 12 insertions(+), 5 deletions(-)
-
-Index: linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c
-===================================================================
---- linux-2.6.27-bnx2x_2.orig/drivers/net/bnx2x_main.c
-+++ linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c
-@@ -57,8 +57,8 @@
- #include "bnx2x.h"
- #include "bnx2x_init.h"
--#define DRV_MODULE_VERSION    "1.45.25"
--#define DRV_MODULE_RELDATE    "2009/01/22"
-+#define DRV_MODULE_VERSION    "1.45.26"
-+#define DRV_MODULE_RELDATE    "2009/01/26"
- #define BNX2X_BC_VER          0x040200
- /* Time in jiffies before concluding the transmitter is hung */
-@@ -740,8 +740,15 @@ static inline int bnx2x_has_tx_work(stru
-       /* Tell compiler that status block fields can change */
-       barrier();
-       tx_cons_sb = le16_to_cpu(*fp->tx_cons_sb);
--      return ((fp->tx_pkt_prod != tx_cons_sb) ||
--              (fp->tx_pkt_prod != fp->tx_pkt_cons));
-+      return (fp->tx_pkt_cons != tx_cons_sb);
-+}
-+
-+static inline int bnx2x_has_tx_work_unload(struct bnx2x_fastpath *fp)
-+{
-+      /* Tell compiler that consumer and producer can change */
-+      barrier();
-+      return (fp->tx_pkt_prod != fp->tx_pkt_cons);
-+
- }
- /* free skb in the packet ring at pos idx
-@@ -6732,7 +6739,7 @@ static int bnx2x_nic_unload(struct bnx2x
-               cnt = 1000;
-               smp_rmb();
--              while (bnx2x_has_tx_work(fp)) {
-+              while (bnx2x_has_tx_work_unload(fp)) {
-                       bnx2x_tx_int(fp, 1000);
-                       if (!cnt) {