| summaryrefslogtreecommitdiff |
| author | Brandon Philips <bphilips@suse.de> | 2009-09-04 01:28:03 (GMT) |
|---|---|---|
| committer | Brandon Philips <bphilips@suse.de> | 2009-09-04 01:28:03 (GMT) |
| commit | 8b942c5859377f705f977236129b4d860d2e1880 (patch) (side-by-side diff) | |
| tree | 9227463c0491c6d49b3db19fe76f8a5ac6d750b8 | |
| parent | f57ebf8e407512d2960fb11423d0426041205f56 (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).
| -rw-r--r-- | kernel-source.changes | 6 | ||||
| -rw-r--r-- | patches.drivers/netxen-enable-napi-in-dev-open.patch | 169 | ||||
| -rw-r--r-- | series.conf | 1 |
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 |