Home Home > GIT Browse > openSUSE-12.1
summaryrefslogtreecommitdiff
authorBrandon Philips <bphilips@suse.de>2009-09-04 01:28:03 (GMT)
committer Brandon Philips <bphilips@suse.de>2009-09-04 01:28:03 (GMT)
commit8b942c5859377f705f977236129b4d860d2e1880 (patch) (side-by-side diff)
tree9227463c0491c6d49b3db19fe76f8a5ac6d750b8
parentf57ebf8e407512d2960fb11423d0426041205f56 (diff)
- patches.drivers/netxen-enable-napi-in-dev-open.patch: netxen:rpm-2.6.16.60-0.54
enable napi in dev open (bnc#532210).
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kernel-source.changes6
-rw-r--r--patches.drivers/netxen-enable-napi-in-dev-open.patch169
-rw-r--r--series.conf1
3 files changed, 176 insertions, 0 deletions
diff --git a/kernel-source.changes b/kernel-source.changes
index ce9fcce..5258fc5 100644
--- a/kernel-source.changes
+++ b/kernel-source.changes
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Sep 4 03:27:35 CEST 2009 - bphilips@suse.de
+
+- patches.drivers/netxen-enable-napi-in-dev-open.patch: netxen:
+ enable napi in dev open (bnc#532210).
+
+-------------------------------------------------------------------
Thu Sep 3 09:48:30 CEST 2009 - bphilips@suse.de
- patches.drivers/qlge-change-large-rx-buffer-logic-rss-hash-and-qlge_sb_pad-for-performance.patch:
diff --git a/patches.drivers/netxen-enable-napi-in-dev-open.patch b/patches.drivers/netxen-enable-napi-in-dev-open.patch
new file mode 100644
index 0000000..47019de
--- a/dev/null
+++ b/patches.drivers/netxen-enable-napi-in-dev-open.patch
@@ -0,0 +1,169 @@
+From: Dhananjay Phadke <dhananjay@netxen.com>
+Date: Thu, Sep 3 10:59:32 PDT 2009
+Subject: [PATCH] netxen: enable napi in dev open
+References: bnc#532210
+
+NAPI needs to be enabled before sending any commands
+to firmware. Otherwise the responses are not processed.
+
+This is required for getting link events from firmware.
+
+Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
+Signed-off-by: Brandon Philips <bphilips@suse.de>
+
+Also includes the following upstream fixes.
+
+From 23b6cc425d718fce2501d5f60e368cfa44ef7d86 Mon Sep 17 00:00:00 2001
+From: Dhananjay Phadke <dhananjay@netxen.com>
+Date: Fri, 8 May 2009 22:02:30 +0000
+Subject: [PATCH] netxen: trivial register access cleanup
+
+Remove unnecessary length parameter since it's always 4 bytes.
+
+Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+
+From f2333a014c1e13ac8e1b73a6fd77731c524eff78 Mon Sep 17 00:00:00 2001
+From: Figo.zhang <figo1802@gmail.com>
+Date: Thu, 11 Jun 2009 02:49:10 -0700
+Subject: [PATCH] netxen: No need to check vfree() pointer.
+
+vfree() does its own 'NULL' check, so no need for check before
+calling it.
+
+Signed-off-by: Figo.zhang <figo1802@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+
+From d173346040af497af22818dfc48cff369e67cf50 Mon Sep 17 00:00:00 2001
+From: Dhananjay Phadke <dhananjay@netxen.com>
+Date: Wed, 17 Jun 2009 17:27:24 +0000
+Subject: [PATCH] netxen: fix detection of cut-thru firmware mode
+
+Fix the detection of cut-thru mode of the hardware (direct dma
+to host) to mode configured in SRE (ingress block) rather than
+onboard memory control.
+
+Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+
+
+Index: b/drivers/net/netxen/netxen_nic_hdr.h
+===================================================================
+--- a/drivers/net/netxen/netxen_nic_hdr.h
++++ b/drivers/net/netxen/netxen_nic_hdr.h
+@@ -355,6 +355,7 @@ enum {
+ #define NETXEN_HW_CRB_HUB_AGT_ADR_LPC \
+ ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_LPC_CRB_AGT_ADR)
+
++#define NETXEN_SRE_MISC (NETXEN_CRB_SRE + 0x0002c)
+ #define NETXEN_SRE_INT_STATUS (NETXEN_CRB_SRE + 0x00034)
+ #define NETXEN_SRE_PBI_ACTIVE_STATUS (NETXEN_CRB_SRE + 0x01014)
+ #define NETXEN_SRE_L1RE_CTL (NETXEN_CRB_SRE + 0x03000)
+Index: b/drivers/net/netxen/netxen_nic_hw.c
+===================================================================
+--- a/drivers/net/netxen/netxen_nic_hw.c
++++ b/drivers/net/netxen/netxen_nic_hw.c
+@@ -911,17 +911,15 @@ netxen_nic_pci_change_crbwindow_128M(str
+ * In: 'off' is offset from base in 128M pci map
+ */
+ static int
+-netxen_nic_pci_get_crb_addr_2M(struct netxen_adapter *adapter,
+- ulong *off, int len)
++netxen_nic_pci_get_crb_addr_2M(struct netxen_adapter *adapter, ulong *off)
+ {
+- unsigned long end = *off + len;
+ crb_128M_2M_sub_block_map_t *m;
+
+
+ if (*off >= NETXEN_CRB_MAX)
+ return -1;
+
+- if (*off >= NETXEN_PCI_CAMQM && (end <= NETXEN_PCI_CAMQM_2M_END)) {
++ if (*off >= NETXEN_PCI_CAMQM && (*off < NETXEN_PCI_CAMQM_2M_END)) {
+ *off = (*off - NETXEN_PCI_CAMQM) + NETXEN_PCI_CAMQM_2M_BASE +
+ (ulong)adapter->ahw.pci_base0;
+ return 0;
+@@ -931,14 +929,13 @@ netxen_nic_pci_get_crb_addr_2M(struct ne
+ return -1;
+
+ *off -= NETXEN_PCI_CRBSPACE;
+- end = *off + len;
+
+ /*
+ * Try direct map
+ */
+ m = &crb_128M_2M_map[CRB_BLK(*off)].sub_block[CRB_SUBBLK(*off)];
+
+- if (m->valid && (m->start_128M <= *off) && (m->end_128M >= end)) {
++ if (m->valid && (m->start_128M <= *off) && (m->end_128M > *off)) {
+ *off = *off + m->start_2M - m->start_128M +
+ (ulong)adapter->ahw.pci_base0;
+ return 0;
+@@ -1033,7 +1030,7 @@ netxen_nic_hw_write_wx_2M(struct netxen_
+ unsigned long flags = 0;
+ int rv;
+
+- rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, 4);
++ rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off);
+
+ if (rv == -1) {
+ printk(KERN_ERR "%s: invalid offset: 0x%016lx\n",
+@@ -1063,7 +1060,7 @@ netxen_nic_hw_read_wx_2M(struct netxen_a
+ int rv;
+ u32 data;
+
+- rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, 4);
++ rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off);
+
+ if (rv == -1) {
+ printk(KERN_ERR "%s: invalid offset: 0x%016lx\n",
+@@ -2039,8 +2036,8 @@ void netxen_nic_get_firmware_info(struct
+ fw_major, fw_minor, fw_build);
+
+ if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
+- i = NXRD32(adapter, NETXEN_MIU_MN_CONTROL);
+- adapter->ahw.cut_through = (i & 0x4) ? 1 : 0;
++ i = NXRD32(adapter, NETXEN_SRE_MISC);
++ adapter->ahw.cut_through = (i & 0x8000) ? 1 : 0;
+ dev_info(&pdev->dev, "firmware running in %s mode\n",
+ adapter->ahw.cut_through ? "cut-through" : "legacy");
+ }
+Index: b/drivers/net/netxen/netxen_nic_init.c
+===================================================================
+--- a/drivers/net/netxen/netxen_nic_init.c
++++ b/drivers/net/netxen/netxen_nic_init.c
+@@ -178,10 +178,8 @@ void netxen_free_sw_resources(struct net
+
+ for (ring = 0; ring < adapter->max_rds_rings; ring++) {
+ rds_ring = &recv_ctx->rds_rings[ring];
+- if (rds_ring->rx_buf_arr) {
+- vfree(rds_ring->rx_buf_arr);
+- rds_ring->rx_buf_arr = NULL;
+- }
++ vfree(rds_ring->rx_buf_arr);
++ rds_ring->rx_buf_arr = NULL;
+ }
+ kfree(recv_ctx->rds_rings);
+
+@@ -190,8 +188,7 @@ skip_rds:
+ return;
+
+ tx_ring = adapter->tx_ring;
+- if (tx_ring->cmd_buf_arr)
+- vfree(tx_ring->cmd_buf_arr);
++ vfree(tx_ring->cmd_buf_arr);
+ }
+
+ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
+Index: b/drivers/net/netxen/netxen_nic_main.c
+===================================================================
+--- a/drivers/net/netxen/netxen_nic_main.c
++++ b/drivers/net/netxen/netxen_nic_main.c
+@@ -195,6 +195,7 @@ netxen_napi_enable(struct netxen_adapter
+
+ for (ring = 0; ring < adapter->max_sds_rings; ring++) {
+ sds_ring = &recv_ctx->sds_rings[ring];
++ netif_poll_enable(adapter->netdev);
+ netxen_nic_enable_int(sds_ring);
+ }
+ }
diff --git a/series.conf b/series.conf
index 89c3bab..5be2a88 100644
--- a/series.conf
+++ b/series.conf
@@ -2019,6 +2019,7 @@
patches.drivers/netxen-2.6.23.patch
patches.drivers/netxen-update-to-4.0.30.patch
patches.drivers/netxen-update-to-4.0.30-upstream-fixes.patch
+ patches.drivers/netxen-enable-napi-in-dev-open.patch
# Latest net/ieee80211 patches submitted upstream
patches.drivers/ieee802.11-2