[ewg] [PATCH 2/4] RDMA/nes: send IB_EVENT_PORT_ERR/PORT_ACTIVE event on link state interrupt
Maciej Sosnowski
maciej.sosnowski at intel.com
Fri Dec 3 07:53:31 PST 2010
Depending on link state change IB_EVENT_PORT_ERR or IB_EVENT_PORT_ACTIVE
should be dispatched in processing of mac interrupt.
Plug in the cable happen to result in series of interrupts
changing driver's link state for a number of times before finally
staying at link up (e.g. link up, link down, link up, link down, ..., link up).
To prevent sending series of redundant IB_EVENT_PORT_ACTIVE
and IB_EVENT_PORT_ERR events they get filtered out by timer based
nes_port_ibevent() routine.
Signed-off-by: Maciej Sosnowski <maciej.sosnowski at intel.com>
---
.../2.6.16_sles10_sp2/iw_nes_880_to_2_6_23.patch | 56 +++----
.../2.6.16_sles10_sp3/iw_nes_880_to_2_6_23.patch | 56 +++----
.../2.6.18-EL5.2/iw_nes_880_to_2_6_23.patch | 56 +++----
.../2.6.18-EL5.3/iw_nes_880_to_2_6_23.patch | 56 +++----
.../2.6.18-EL5.4/iw_nes_880_to_2_6_23.patch | 56 +++----
.../2.6.18-EL5.5/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.18/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.19/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.20/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.21/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.22/iw_nes_880_to_2_6_23.patch | 56 +++----
.../2.6.22_slert10_sp2/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.23/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.9_U6/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.9_U7/iw_nes_880_to_2_6_23.patch | 56 +++----
.../backport/2.6.9_U8/iw_nes_880_to_2_6_23.patch | 56 +++----
.../fixes/nes_0048_port_state_events_fix.patch | 196 +++++++++++++++++++++++
17 files changed, 644 insertions(+), 448 deletions(-)
diff --git a/kernel_patches/backport/2.6.16_sles10_sp2/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.16_sles10_sp2/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.16_sles10_sp2/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.16_sles10_sp2/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.16_sles10_sp3/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.16_sles10_sp3/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.16_sles10_sp3/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.16_sles10_sp3/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.18-EL5.2/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.18-EL5.2/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.18-EL5.2/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18-EL5.2/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.18-EL5.3/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.18-EL5.3/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.18-EL5.3/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18-EL5.3/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.18-EL5.4/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.18-EL5.4/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.18-EL5.4/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18-EL5.4/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.18-EL5.5/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.18-EL5.5/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.18-EL5.5/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18-EL5.5/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.18/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.18/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.18/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.19/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.19/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.19/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.19/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.20/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.20/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.20/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.20/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.21/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.21/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.21/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.21/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.22/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.22/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.22/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.22/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.22_slert10_sp2/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.22_slert10_sp2/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.22_slert10_sp2/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.22_slert10_sp2/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.23/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.23/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.23/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.23/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.9_U6/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.9_U6/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.9_U6/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.9_U6/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.9_U7/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.9_U7/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.9_U7/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.9_U7/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/backport/2.6.9_U8/iw_nes_880_to_2_6_23.patch b/kernel_patches/backport/2.6.9_U8/iw_nes_880_to_2_6_23.patch
index 9545aa8..3fb71c6 100644
--- a/kernel_patches/backport/2.6.9_U8/iw_nes_880_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.9_U8/iw_nes_880_to_2_6_23.patch
@@ -1,6 +1,6 @@
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/Kconfig nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig
---- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:20:10.882363000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-05-10 11:21:29.731487000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/Kconfig 2010-11-25 14:10:32.000000000 +0100
@@ -2,7 +2,6 @@ config INFINIBAND_NES
tristate "NetEffect RNIC Driver"
depends on PCI && INET && INFINIBAND
@@ -10,8 +10,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
This is the RDMA Network Interface Card (RNIC) driver for
NetEffect Ethernet Cluster Server Adapters.
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 16:43:23.149014000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-05-10 11:21:29.739491000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.c 2010-11-25 14:10:32.000000000 +0100
@@ -38,14 +38,9 @@
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -68,7 +68,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
return 0;
}
-@@ -2647,7 +2615,7 @@ static void nes_nic_napi_ce_handler(stru
+@@ -2743,7 +2711,7 @@ static void nes_nic_napi_ce_handler(stru
{
struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
@@ -77,7 +77,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -2682,13 +2650,10 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2778,13 +2746,10 @@ void nes_nic_ce_handler(struct nes_devic
u16 pkt_type;
u16 rqes_processed = 0;
u8 sq_cqes = 0;
@@ -91,7 +91,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
do {
if (le32_to_cpu(cq->cq_vbase[head].cqe_words[NES_NIC_CQE_MISC_IDX]) &
NES_NIC_CQE_VALID) {
-@@ -2820,17 +2785,9 @@ void nes_nic_ce_handler(struct nes_devic
+@@ -2916,17 +2881,9 @@ void nes_nic_ce_handler(struct nes_devic
>> 16);
nes_debug(NES_DBG_CQ, "%s: Reporting stripped VLAN packet. Tag = 0x%04X\n",
nesvnic->netdev->name, vlan_tag);
@@ -112,7 +112,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
skip_rx_indicate0:
;
-@@ -2861,8 +2818,6 @@ skip_rx_indicate0:
+@@ -2957,8 +2914,6 @@ skip_rx_indicate0:
} while (1);
@@ -122,8 +122,8 @@ diff -Nurp linux-2.6/drivers/infiniband/
barrier();
/* restart the queue if it had been stopped */
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_hw.h nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h
---- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:20:11.037369000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-05-10 11:21:29.744492000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:09:57.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_hw.h 2010-11-25 14:23:56.000000000 +0100
@@ -33,8 +33,6 @@
#ifndef __NES_HW_H
#define __NES_HW_H
@@ -133,7 +133,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
#define NES_PHY_TYPE_CX4 1
#define NES_PHY_TYPE_1G 2
#define NES_PHY_TYPE_ARGUS 4
-@@ -1024,8 +1022,6 @@ struct nes_hw_tune_timer {
+@@ -1025,8 +1023,6 @@ struct nes_hw_tune_timer {
#define NES_TIMER_ENABLE_LIMIT 4
#define NES_MAX_LINK_INTERRUPTS 128
#define NES_MAX_LINK_CHECK 200
@@ -142,7 +142,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
struct nes_adapter {
u64 fw_ver;
-@@ -1201,7 +1197,6 @@ struct nes_vnic {
+@@ -1205,7 +1201,6 @@ struct nes_vnic {
u32 msg_enable;
/* u32 tx_avail; */
__be32 local_ipaddr;
@@ -150,19 +150,19 @@ diff -Nurp linux-2.6/drivers/infiniband/
spinlock_t tx_lock; /* could use netdev tx lock? */
struct timer_list rq_wqes_timer;
u32 nic_mem_size;
-@@ -1229,9 +1224,6 @@ struct nes_vnic {
+@@ -1233,9 +1228,6 @@ struct nes_vnic {
u8 of_device_registered;
u8 rdma_enabled;
u8 rx_checksum_disabled;
- u32 lro_max_aggr;
- struct net_lro_mgr lro_mgr;
- struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
- };
-
- struct nes_ib_device {
+ struct timer_list event_timer;
+ enum ib_event_type delayed_event;
+ enum ib_event_type last_dispatched_event;
diff -Nurp linux-2.6/drivers/infiniband/hw/nes/nes_nic.c nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c
---- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 16:43:23.155011000 +0200
-+++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-05-10 11:21:29.752485000 +0200
+--- linux-2.6/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:34:51.000000000 +0100
++++ nes.2_6_23_patch/drivers/infiniband/hw/nes/nes_nic.c 2010-11-25 14:27:03.000000000 +0100
@@ -96,35 +96,38 @@ static int nics_per_function = 1;
/**
* nes_netdev_poll
@@ -210,23 +210,23 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
-@@ -238,7 +241,6 @@ static int nes_netdev_open(struct net_de
- netif_start_queue(netdev);
- netif_carrier_on(netdev);
+@@ -264,7 +267,6 @@ static int nes_netdev_open(struct net_de
}
+ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
+
- napi_enable(&nesvnic->napi);
nesvnic->netdev_open = 1;
return 0;
-@@ -266,7 +268,6 @@ static int nes_netdev_stop(struct net_de
- printk(KERN_INFO PFX "%s: disabling interface\n", netdev->name);
+@@ -294,7 +296,6 @@ static int nes_netdev_stop(struct net_de
+ netif_carrier_off(netdev);
/* Disable network packets */
- napi_disable(&nesvnic->napi);
netif_stop_queue(netdev);
list_for_each_safe(list_pos, list_temp, &nesdev->nesadapter->nesvnic_list[nesdev->mac_index]) {
first_nesvnic = container_of(list_pos, struct nes_vnic, list);
-@@ -1038,9 +1039,6 @@ static const char nes_ethtool_stringset[
+@@ -1071,9 +1072,6 @@ static const char nes_ethtool_stringset[
"Free 4Kpbls",
"Free 256pbls",
"Timer Inits",
@@ -236,7 +236,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
#define NES_ETHTOOL_STAT_COUNT ARRAY_SIZE(nes_ethtool_stringset)
-@@ -1278,9 +1276,6 @@ static void nes_netdev_get_ethtool_stats
+@@ -1311,9 +1309,6 @@ static void nes_netdev_get_ethtool_stats
target_stat_values[++index] = nesadapter->free_4kpbl;
target_stat_values[++index] = nesadapter->free_256pbl;
target_stat_values[++index] = int_mod_timer_init;
@@ -246,7 +246,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
}
/**
-@@ -1567,8 +1562,6 @@ static struct ethtool_ops nes_ethtool_op
+@@ -1600,8 +1595,6 @@ static struct ethtool_ops nes_ethtool_op
.set_sg = ethtool_op_set_sg,
.get_tso = ethtool_op_get_tso,
.set_tso = ethtool_op_set_tso,
@@ -255,7 +255,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
};
-@@ -1639,7 +1632,8 @@ struct net_device *nes_netdev_init(struc
+@@ -1672,7 +1665,8 @@ struct net_device *nes_netdev_init(struc
netdev->type = ARPHRD_ETHER;
netdev->features = NETIF_F_HIGHDMA;
netdev->ethtool_ops = &nes_ethtool_ops;
@@ -265,7 +265,7 @@ diff -Nurp linux-2.6/drivers/infiniband/
nes_debug(NES_DBG_INIT, "Enabling VLAN Insert/Delete.\n");
netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
netdev->vlan_rx_register = nes_netdev_vlan_rx_register;
-@@ -1671,7 +1665,6 @@ struct net_device *nes_netdev_init(struc
+@@ -1704,7 +1698,6 @@ struct net_device *nes_netdev_init(struc
if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
diff --git a/kernel_patches/fixes/nes_0048_port_state_events_fix.patch b/kernel_patches/fixes/nes_0048_port_state_events_fix.patch
new file mode 100644
index 0000000..faeea30
--- /dev/null
+++ b/kernel_patches/fixes/nes_0048_port_state_events_fix.patch
@@ -0,0 +1,196 @@
+diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
+index ef4efaa..d605393 100644
+--- a/drivers/infiniband/hw/nes/nes_hw.c
++++ b/drivers/infiniband/hw/nes/nes_hw.c
+@@ -2607,6 +2607,13 @@ static void nes_process_mac_intr(struct
+ netif_start_queue(nesvnic->netdev);
+ nesvnic->linkup = 1;
+ netif_carrier_on(nesvnic->netdev);
++
++ spin_lock(&nesvnic->port_ibevent_lock);
++ if (nesdev->iw_status == 0) {
++ nesdev->iw_status = 1;
++ nes_port_ibevent(nesvnic);
++ }
++ spin_unlock(&nesvnic->port_ibevent_lock);
+ }
+ }
+ } else {
+@@ -2632,6 +2639,13 @@ static void nes_process_mac_intr(struct
+ netif_stop_queue(nesvnic->netdev);
+ nesvnic->linkup = 0;
+ netif_carrier_off(nesvnic->netdev);
++
++ spin_lock(&nesvnic->port_ibevent_lock);
++ if (nesdev->iw_status == 1) {
++ nesdev->iw_status = 0;
++ nes_port_ibevent(nesvnic);
++ }
++ spin_unlock(&nesvnic->port_ibevent_lock);
+ }
+ }
+ }
+diff --git a/drivers/infiniband/hw/nes/nes_hw.h b/drivers/infiniband/hw/nes/nes_hw.h
+index 19c5633..2a4b7e2 100644
+--- a/drivers/infiniband/hw/nes/nes_hw.h
++++ b/drivers/infiniband/hw/nes/nes_hw.h
+@@ -1180,6 +1180,8 @@ struct nes_ib_fast_reg_page_list {
+
+ struct nes_ib_device;
+
++#define NES_EVENT_DELAY msecs_to_jiffies(100)
++
+ struct nes_vnic {
+ struct nes_ib_device *nesibdev;
+ u64 sq_full;
+@@ -1234,6 +1236,10 @@ struct nes_vnic {
+ u32 lro_max_aggr;
+ struct net_lro_mgr lro_mgr;
+ struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
++ struct timer_list event_timer;
++ enum ib_event_type delayed_event;
++ enum ib_event_type last_dispatched_event;
++ spinlock_t port_ibevent_lock;
+ };
+
+ struct nes_ib_device {
+diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
+index 97def4d..9500cb0 100644
+--- a/drivers/infiniband/hw/nes/nes_nic.c
++++ b/drivers/infiniband/hw/nes/nes_nic.c
+@@ -143,6 +143,7 @@ static int nes_netdev_open(struct net_de
+ u32 nic_active_bit;
+ u32 nic_active;
+ struct list_head *list_pos, *list_temp;
++ unsigned long flags;
+
+ assert(nesdev != NULL);
+
+@@ -232,18 +233,27 @@ static int nes_netdev_open(struct net_de
+ first_nesvnic = nesvnic;
+ }
+
+- if (nesvnic->of_device_registered) {
+- nesdev->iw_status = 1;
+- nesdev->nesadapter->send_term_ok = 1;
+- nes_port_ibevent(nesvnic);
+- }
+-
+ if (first_nesvnic->linkup) {
+ /* Enable network packets */
+ nesvnic->linkup = 1;
+ netif_start_queue(netdev);
+ netif_carrier_on(netdev);
+ }
++
++ spin_lock_irqsave(&nesvnic->port_ibevent_lock, flags);
++ if (nesvnic->of_device_registered) {
++ nesdev->nesadapter->send_term_ok = 1;
++ if (nesvnic->linkup == 1) {
++ if (nesdev->iw_status == 0) {
++ nesdev->iw_status = 1;
++ nes_port_ibevent(nesvnic);
++ }
++ } else {
++ nesdev->iw_status = 0;
++ }
++ }
++ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
++
+ napi_enable(&nesvnic->napi);
+ nesvnic->netdev_open = 1;
+
+@@ -262,6 +272,7 @@ static int nes_netdev_stop(struct net_de
+ u32 nic_active;
+ struct nes_vnic *first_nesvnic = NULL;
+ struct list_head *list_pos, *list_temp;
++ unsigned long flags;
+
+ nes_debug(NES_DBG_SHUTDOWN, "nesvnic=%p, nesdev=%p, netdev=%p %s\n",
+ nesvnic, nesdev, netdev, netdev->name);
+@@ -314,12 +325,17 @@ static int nes_netdev_stop(struct net_de
+ nic_active &= nic_active_mask;
+ nes_write_indexed(nesdev, NES_IDX_NIC_BROADCAST_ON, nic_active);
+
+-
++ spin_lock_irqsave(&nesvnic->port_ibevent_lock, flags);
+ if (nesvnic->of_device_registered) {
+ nesdev->nesadapter->send_term_ok = 0;
+ nesdev->iw_status = 0;
+- nes_port_ibevent(nesvnic);
++ if (nesvnic->linkup == 1)
++ nes_port_ibevent(nesvnic);
+ }
++ del_timer_sync(&nesvnic->event_timer);
++ nesvnic->event_timer.function = NULL;
++ spin_unlock_irqrestore(&nesvnic->port_ibevent_lock, flags);
++
+ nes_destroy_nic_qp(nesvnic);
+
+ nesvnic->netdev_open = 0;
+@@ -1728,7 +1744,10 @@ struct net_device *nes_netdev_init(struc
+ nesvnic->rdma_enabled = 0;
+ }
+ nesvnic->nic_cq.cq_number = nesvnic->nic.qp_id;
++ init_timer(&nesvnic->event_timer);
++ nesvnic->event_timer.function = NULL;
+ spin_lock_init(&nesvnic->tx_lock);
++ spin_lock_init(&nesvnic->port_ibevent_lock);
+ nesdev->netdev[nesdev->netdev_count] = netdev;
+
+ nes_debug(NES_DBG_INIT, "Adding nesvnic (%p) to the adapters nesvnic_list for MAC%d.\n",
+diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
+index edaa824..50e9d37 100644
+--- a/drivers/infiniband/hw/nes/nes_verbs.c
++++ b/drivers/infiniband/hw/nes/nes_verbs.c
+@@ -4149,6 +4149,30 @@ struct nes_ib_device *nes_init_ofa_devic
+ return nesibdev;
+ }
+
++
++/**
++ * nes_handle_delayed_event
++ */
++static void nes_handle_delayed_event(unsigned long data)
++{
++ struct nes_vnic *nesvnic = (void *) data;
++
++ if (nesvnic->delayed_event != nesvnic->last_dispatched_event) {
++ struct ib_event event;
++
++ event.device = &nesvnic->nesibdev->ibdev;
++ if (!event.device)
++ goto stop_timer;
++ event.event = nesvnic->delayed_event;
++ event.element.port_num = nesvnic->logical_port + 1;
++ ib_dispatch_event(&event);
++ }
++
++stop_timer:
++ nesvnic->event_timer.function = NULL;
++}
++
++
+ void nes_port_ibevent(struct nes_vnic *nesvnic)
+ {
+ struct nes_ib_device *nesibdev = nesvnic->nesibdev;
+@@ -4157,7 +4181,18 @@ void nes_port_ibevent(struct nes_vnic *
+ event.device = &nesibdev->ibdev;
+ event.element.port_num = nesvnic->logical_port + 1;
+ event.event = nesdev->iw_status ? IB_EVENT_PORT_ACTIVE : IB_EVENT_PORT_ERR;
+- ib_dispatch_event(&event);
++
++ if (!nesvnic->event_timer.function) {
++ ib_dispatch_event(&event);
++ nesvnic->last_dispatched_event = event.event;
++ nesvnic->event_timer.function = nes_handle_delayed_event;
++ nesvnic->event_timer.data = (unsigned long) nesvnic;
++ nesvnic->event_timer.expires = jiffies + NES_EVENT_DELAY;
++ add_timer(&nesvnic->event_timer);
++ } else {
++ mod_timer(&nesvnic->event_timer, jiffies + NES_EVENT_DELAY);
++ }
++ nesvnic->delayed_event = event.event;
+ }
+
+
More information about the ewg
mailing list