[ofa-general] [PATCH] sdp: TX from 1 context only. RX with minimal context switches
Amir Vadai
amirv at mellanox.co.il
Mon Jun 22 01:18:46 PDT 2009
Do TX work from sendmsg/recvmsg context when available, and don't use
work queue.
Now all work is done from one context and workqueue is almost not waiting for
lock.
Signed-off-by: Amir Vadai <amirv at mellanox.co.il>
---
drivers/infiniband/ulp/sdp/sdp.h | 43 +--
drivers/infiniband/ulp/sdp/sdp_bcopy.c | 3 +-
drivers/infiniband/ulp/sdp/sdp_cma.c | 4 +-
drivers/infiniband/ulp/sdp/sdp_main.c | 52 +--
drivers/infiniband/ulp/sdp/sdp_proc.c | 22 +-
drivers/infiniband/ulp/sdp/sdp_rx.c | 334 +++++++++++---------
drivers/infiniband/ulp/sdp/sdp_tx.c | 6 +-
.../2.6.16/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.16/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.16_sles10/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.16_sles10/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../sdp_0090_revert_to_2_6_24.patch | 39 +--
.../sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.17/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.17/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.18-EL5.1/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.18-EL5.1/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.18_FC6/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.18_FC6/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../sdp_0090_revert_to_2_6_24.patch | 39 +--
.../sdp_0100_revert_to_2_6_23.patch | 26 +-
.../sdp_0090_revert_to_2_6_24.patch | 39 +--
.../sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.9_U4/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.9_U4/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.9_U5/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.9_U5/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../sdp_0090_revert_to_2_6_24.patch | 39 +--
.../sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.18-EL5.2/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.18-EL5.2/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.18-EL5.3/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.18-EL5.3/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.18/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.18/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.19/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.19/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.20/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.20/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.21/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.21/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.22/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.22/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.23/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.23/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.24/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.9_U6/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.9_U6/sdp_0100_revert_to_2_6_23.patch | 26 +-
.../2.6.9_U7/sdp_0090_revert_to_2_6_24.patch | 39 +--
.../2.6.9_U7/sdp_0100_revert_to_2_6_23.patch | 26 +-
50 files changed, 858 insertions(+), 1010 deletions(-)
diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h
index f9b295e..25e1844 100644
--- a/drivers/infiniband/ulp/sdp/sdp.h
+++ b/drivers/infiniband/ulp/sdp/sdp.h
@@ -6,15 +6,22 @@
#include <net/inet_sock.h>
#include <net/tcp.h> /* For urgent data flags */
#include <rdma/ib_verbs.h>
+#include <linux/sched.h>
+
+#undef SDPSTATS_ON
+#undef SDP_PROFILING
+#undef CONFIG_INFINIBAND_SDP_DEBUG_DATA
+#undef CONFIG_INFINIBAND_SDP_DEBUG
-#undef SDP_LOCKS_CHECK
#define SDPSTATS_ON
#define SDP_PROFILING
+#define CONFIG_INFINIBAND_SDP_DEBUG_DATA
+#define CONFIG_INFINIBAND_SDP_DEBUG
#define _sdp_printk(func, line, level, sk, format, arg...) \
- printk(level "%s:%d sdp_sock(%5d %d:%d): " format, \
+ printk(level "%s:%d sdp_sock(%5d:%d %d:%d): " format, \
func, line, \
- current->pid, \
+ current->pid, smp_processor_id(), \
(sk) ? inet_sk(sk)->num : -1, \
(sk) ? ntohs(inet_sk(sk)->dport) : -1, ## arg)
#define sdp_printk(level, sk, format, arg...) \
@@ -23,25 +30,6 @@
sdp_printk(KERN_WARNING, sk, format , ## arg)
-#ifdef SDP_LOCKS_CHECK
-#define WARN_ON_UNLOCKED(sk, l) do {\
- if (unlikely(!spin_is_locked(l))) { \
- sdp_warn(sk, "lock " #l " should be locked\n"); \
- WARN_ON(1); \
- } \
-} while (0)
-
-#define WARN_ON_LOCKED(sk, l) do {\
- if (unlikely(spin_is_locked(l))) { \
- sdp_warn(sk, "lock " #l " should be unlocked\n"); \
- WARN_ON(1); \
- } \
-} while (0)
-#else
-#define WARN_ON_UNLOCKED(sk, l)
-#define WARN_ON_LOCKED(sk, l)
-#endif
-
#define rx_ring_lock(ssk, f) do { \
spin_lock_irqsave(&ssk->rx_ring.lock, f); \
} while (0)
@@ -55,6 +43,7 @@ struct sk_buff;
struct sdpprf_log {
int idx;
int pid;
+ int cpu;
int sk_num;
int sk_dport;
struct sk_buff *skb;
@@ -83,6 +72,7 @@ static inline unsigned long long current_nsec(void)
l->pid = current->pid; \
l->sk_num = (sk) ? inet_sk(sk)->num : -1; \
l->sk_dport = (sk) ? ntohs(inet_sk(sk)->dport) : -1; \
+ l->cpu = smp_processor_id(); \
l->skb = s; \
snprintf(l->msg, sizeof(l->msg) - 1, format, ## arg); \
l->time = current_nsec(); \
@@ -360,7 +350,7 @@ struct sdp_sock {
struct list_head sock_list;
struct list_head accept_queue;
struct list_head backlog_queue;
- struct sk_buff_head rx_backlog;
+ struct sk_buff_head rx_ctl_q;
struct sock *parent;
struct work_struct rx_comp_work;
@@ -373,7 +363,8 @@ struct sdp_sock {
u16 urg_data;
u32 urg_seq;
u32 copied_seq;
- u32 rcv_nxt;
+#define rcv_nxt(ssk) atomic_read(&(ssk->rcv_nxt))
+ atomic_t rcv_nxt;
int write_seq;
int pushed_seq;
@@ -561,10 +552,10 @@ void sdp_nagle_timeout(unsigned long data);
void sdp_rx_ring_init(struct sdp_sock *ssk);
int sdp_rx_ring_create(struct sdp_sock *ssk, struct ib_device *device);
void sdp_rx_ring_destroy(struct sdp_sock *ssk);
-int sdp_process_rx_q(struct sdp_sock *ssk);
int sdp_resize_buffers(struct sdp_sock *ssk, u32 new_size);
int sdp_init_buffers(struct sdp_sock *ssk, u32 new_size);
-void sdp_post_recvs(struct sdp_sock *ssk);
+void sdp_schedule_post_recvs(struct sdp_sock *ssk);
+void sdp_rx_comp_full(struct sdp_sock *ssk);
static inline void sdp_arm_rx_cq(struct sock *sk)
{
diff --git a/drivers/infiniband/ulp/sdp/sdp_bcopy.c b/drivers/infiniband/ulp/sdp/sdp_bcopy.c
index 6e0a038..8f6f0e2 100644
--- a/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ b/drivers/infiniband/ulp/sdp/sdp_bcopy.c
@@ -157,7 +157,8 @@ void sdp_nagle_timeout(unsigned long data)
out:
bh_unlock_sock(sk);
out2:
- mod_timer(&ssk->nagle_timer, jiffies + SDP_NAGLE_TIMEOUT);
+ if (sk->sk_send_head) /* If has pending sends - rearm */
+ mod_timer(&ssk->nagle_timer, jiffies + SDP_NAGLE_TIMEOUT);
}
int sdp_post_credits(struct sdp_sock *ssk)
diff --git a/drivers/infiniband/ulp/sdp/sdp_cma.c b/drivers/infiniband/ulp/sdp/sdp_cma.c
index a9dcf77..5726fe4 100644
--- a/drivers/infiniband/ulp/sdp/sdp_cma.c
+++ b/drivers/infiniband/ulp/sdp/sdp_cma.c
@@ -288,15 +288,13 @@ static int sdp_disconnected_handler(struct sock *sk)
sdp_dbg(sk, "%s\n", __func__);
- sdp_process_rx_q(ssk);
-
if (ssk->tx_ring.cq)
sdp_xmit_poll(ssk, 1);
if (sk->sk_state == TCP_SYN_RECV) {
sdp_connected_handler(sk, NULL);
- if (ssk->rcv_nxt)
+ if (rcv_nxt(ssk))
return 0;
}
diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c
index c6b17db..432b198 100644
--- a/drivers/infiniband/ulp/sdp/sdp_main.c
+++ b/drivers/infiniband/ulp/sdp/sdp_main.c
@@ -325,8 +325,6 @@ void sdp_reset_sk(struct sock *sk, int rc)
read_lock(&device_removal_lock);
- sdp_process_rx_q(ssk);
-
if (ssk->tx_ring.cq)
sdp_xmit_poll(ssk, 1);
@@ -505,7 +503,7 @@ static void sdp_close(struct sock *sk, long timeout)
* descriptor close, not protocol-sourced closes, because the
* reader process may not have drained the data yet!
*/
- while ((skb = __skb_dequeue(&sk->sk_receive_queue)) != NULL) {
+ while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) {
data_was_unread = 1;
__kfree_skb(skb);
}
@@ -696,13 +694,9 @@ static int sdp_wait_for_connect(struct sock *sk, long timeo)
TASK_INTERRUPTIBLE);
release_sock(sk);
if (list_empty(&ssk->accept_queue)) {
- sdp_dbg(sk, "%s schedule_timeout\n", __func__);
timeo = schedule_timeout(timeo);
- sdp_dbg(sk, "%s schedule_timeout done\n", __func__);
}
- sdp_dbg(sk, "%s lock_sock\n", __func__);
lock_sock(sk);
- sdp_dbg(sk, "%s lock_sock done\n", __func__);
err = 0;
if (!list_empty(&ssk->accept_queue))
break;
@@ -800,8 +794,8 @@ static int sdp_ioctl(struct sock *sk, int cmd, unsigned long arg)
else if (sock_flag(sk, SOCK_URGINLINE) ||
!ssk->urg_data ||
before(ssk->urg_seq, ssk->copied_seq) ||
- !before(ssk->urg_seq, ssk->rcv_nxt)) {
- answ = ssk->rcv_nxt - ssk->copied_seq;
+ !before(ssk->urg_seq, rcv_nxt(ssk))) {
+ answ = rcv_nxt(ssk) - ssk->copied_seq;
/* Subtract 1, if FIN is in queue. */
if (answ && !skb_queue_empty(&sk->sk_receive_queue))
@@ -925,7 +919,7 @@ int sdp_init_sock(struct sock *sk)
sk->sk_route_caps |= NETIF_F_SG | NETIF_F_NO_CSUM;
- skb_queue_head_init(&ssk->rx_backlog);
+ skb_queue_head_init(&ssk->rx_ctl_q);
atomic_set(&ssk->mseq_ack, 0);
@@ -1138,7 +1132,7 @@ static inline int poll_recv_cq(struct sock *sk)
{
int i;
for (i = 0; i < recv_poll; ++i) {
- if (!sdp_process_rx_q(sdp_sk(sk))) {
+ if (!skb_queue_empty(&sk->sk_receive_queue)) {
++recv_poll_hit;
return 0;
}
@@ -1214,12 +1208,6 @@ static int sdp_recv_urg(struct sock *sk, long timeo,
return -EAGAIN;
}
-static void sdp_rcv_space_adjust(struct sock *sk)
-{
- sdp_post_recvs(sdp_sk(sk));
- sdp_post_sends(sdp_sk(sk), 0);
-}
-
static unsigned int sdp_current_mss(struct sock *sk, int large_allowed)
{
/* TODO */
@@ -1875,7 +1863,7 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
lock_sock(sk);
sdp_dbg_data(sk, "%s\n", __func__);
-// sdp_prf(sk, skb, "Read from user");
+ sdp_prf(sk, skb, "Read from user");
err = -ENOTCONN;
if (sk->sk_state == TCP_LISTEN)
@@ -1912,12 +1900,12 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
if (!skb)
break;
- if ((skb_transport_header(skb))[0] == SDP_MID_DISCONN)
- goto found_fin_ok;
+ BUG_ON((skb_transport_header(skb))[0] != SDP_MID_DATA);
if (before(*seq, TCP_SKB_CB(skb)->seq)) {
- printk(KERN_INFO "recvmsg bug: copied %X "
- "seq %X\n", *seq, TCP_SKB_CB(skb)->seq);
+ sdp_warn(sk, "recvmsg bug: copied %X seq %X\n",
+ *seq, TCP_SKB_CB(skb)->seq);
+ sdp_reset(sk);
break;
}
@@ -2034,7 +2022,7 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
sdp_dbg_data(sk, "%s: done copied %d target %d\n", __func__, copied, target);
- sdp_rcv_space_adjust(sk);
+ sdp_schedule_post_recvs(sdp_sk(sk));
skip_copy:
if (ssk->urg_data && after(ssk->copied_seq, ssk->urg_seq))
ssk->urg_data = 0;
@@ -2042,21 +2030,13 @@ skip_copy:
continue;
offset = 0;
- if (!(flags & MSG_PEEK))
- sk_eat_skb(sk, skb, 0);
-
- continue;
-found_fin_ok:
- ++*seq;
- if (!(flags & MSG_PEEK))
- sk_eat_skb(sk, skb, 0);
-
- break;
+ if (!(flags & MSG_PEEK)) {
+ skb_unlink(skb, &sk->sk_receive_queue);
+ __kfree_skb(skb);
+ }
} while (len > 0);
- release_sock(sk);
- return copied;
-
+ err = copied;
out:
release_sock(sk);
return err;
diff --git a/drivers/infiniband/ulp/sdp/sdp_proc.c b/drivers/infiniband/ulp/sdp/sdp_proc.c
index ec97854..a4a1a4d 100644
--- a/drivers/infiniband/ulp/sdp/sdp_proc.c
+++ b/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -39,9 +39,6 @@
#define PROC_SDP_STATS "sdpstats"
#define PROC_SDP_PERF "sdpprf"
-struct sdpprf_log sdpprf_log[SDPPRF_LOG_SIZE];
-int sdpprf_log_count = 0;
-
/* just like TCP fs */
struct sdp_seq_afinfo {
struct module *owner;
@@ -57,9 +54,6 @@ struct sdp_iter_state {
struct seq_operations seq_ops;
};
-//struct sdpprf sdpprf = { { 0 } };
-
-
static void *sdp_get_idx(struct seq_file *seq, loff_t pos)
{
int i = 0;
@@ -148,7 +142,7 @@ static int sdp_seq_show(struct seq_file *seq, void *v)
srcp = ntohs(inet_sk(sk)->sport);
uid = sock_i_uid(sk);
inode = sock_i_ino(sk);
- rx_queue = sdp_sk(sk)->rcv_nxt - sdp_sk(sk)->copied_seq;
+ rx_queue = rcv_nxt(sdp_sk(sk)) - sdp_sk(sk)->copied_seq;
tx_queue = sdp_sk(sk)->write_seq - sdp_sk(sk)->tx_ring.una_seq;
sprintf(tmpbuf, "%4d: %08X:%04X %08X:%04X %5d %lu %08X:%08X %X",
@@ -273,6 +267,7 @@ static int sdpstats_seq_show(struct seq_file *seq, void *v)
seq_printf(seq, "rx_poll_miss \t\t: %d\n", sdpstats.rx_poll_miss);
seq_printf(seq, "tx_poll_miss \t\t: %d\n", sdpstats.tx_poll_miss);
+ seq_printf(seq, "tx_poll_busy \t\t: %d\n", sdpstats.tx_poll_busy);
seq_printf(seq, "tx_poll_hit \t\t: %d\n", sdpstats.tx_poll_hit);
seq_printf(seq, "CQ stats:\n");
@@ -306,6 +301,10 @@ static struct file_operations sdpstats_fops = {
#endif
+#ifdef SDP_PROFILING
+struct sdpprf_log sdpprf_log[SDPPRF_LOG_SIZE];
+int sdpprf_log_count = 0;
+
unsigned long long start_t = 0;
static int sdpprf_show(struct seq_file *m, void *v)
@@ -321,9 +320,9 @@ static int sdpprf_show(struct seq_file *m, void *v)
t = l->time - start_t;
nsec_rem = do_div(t, 1000000000);
- seq_printf(m, "%-6d: [%5lu.%06lu] %-50s - [%d %d:%d] skb: %p %s:%d\n",
+ seq_printf(m, "%-6d: [%5lu.%06lu] %-50s - [%d{%d} %d:%d] skb: %p %s:%d\n",
l->idx, (unsigned long)t, nsec_rem/1000,
- l->msg, l->pid, l->sk_num, l->sk_dport,
+ l->msg, l->pid, l->cpu, l->sk_num, l->sk_dport,
l->skb, l->func, l->line);
out:
return 0;
@@ -408,6 +407,7 @@ static struct file_operations sdpprf_fops = {
.release = seq_release,
.write = sdpprf_write,
};
+#endif /* SDP_PROFILING */
int __init sdp_proc_init(void)
{
@@ -437,10 +437,12 @@ int __init sdp_proc_init(void)
#endif
+#ifdef SDP_PROFILING
sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
+#endif
return 0;
no_mem:
@@ -464,7 +466,9 @@ void sdp_proc_unregister(void)
#ifdef SDPSTATS_ON
proc_net_remove(&init_net, PROC_SDP_STATS);
#endif
+#ifdef SDP_PROFILING
proc_net_remove(&init_net, PROC_SDP_PERF);
+#endif
}
#else /* CONFIG_PROC_FS */
diff --git a/drivers/infiniband/ulp/sdp/sdp_rx.c b/drivers/infiniband/ulp/sdp/sdp_rx.c
index 05d8690..7d5b33e 100644
--- a/drivers/infiniband/ulp/sdp/sdp_rx.c
+++ b/drivers/infiniband/ulp/sdp/sdp_rx.c
@@ -149,9 +149,6 @@ static void sdp_fin(struct sock *sk)
}
}
-/* lock_sock must be taken before calling this - since rx_ring.head is not
- * protected (although being atomic
- */
static int sdp_post_recv(struct sdp_sock *ssk)
{
struct sdp_buf *rx_req;
@@ -170,7 +167,6 @@ static int sdp_post_recv(struct sdp_sock *ssk)
gfp_t gfp_page;
int ret = 0;
- WARN_ON_UNLOCKED(&ssk->isk.sk, &ssk->rx_ring.lock);
/* Now, allocate and repost recv */
/* TODO: allocate from cache */
@@ -184,6 +180,7 @@ static int sdp_post_recv(struct sdp_sock *ssk)
gfp_page = GFP_HIGHUSER;
}
+ sdp_prf(&ssk->isk.sk, skb, "Posting skb");
/* FIXME */
BUG_ON(!skb);
h = (struct sdp_bsdh *)skb->head;
@@ -231,53 +228,90 @@ static int sdp_post_recv(struct sdp_sock *ssk)
rx_wr.sg_list = ibsge;
rx_wr.num_sge = frags + 1;
rc = ib_post_recv(ssk->qp, &rx_wr, &bad_wr);
- SDPSTATS_COUNTER_INC(post_recv);
atomic_inc(&ssk->rx_ring.head);
if (unlikely(rc)) {
sdp_warn(&ssk->isk.sk, "ib_post_recv failed with status %d\n", rc);
+
+ lock_sock(&ssk->isk.sk);
sdp_reset(&ssk->isk.sk);
+ release_sock(&ssk->isk.sk);
+
ret = -1;
}
+ SDPSTATS_COUNTER_INC(post_recv);
atomic_add(SDP_MAX_SEND_SKB_FRAGS, &sdp_current_mem_usage);
return ret;
}
-/* lock_sock must be taken before calling this */
-static void _sdp_post_recvs(struct sdp_sock *ssk)
+static inline int sdp_post_recvs_needed(struct sdp_sock *ssk)
{
struct sock *sk = &ssk->isk.sk;
int scale = ssk->rcvbuf_scale;
-
- WARN_ON_UNLOCKED(&ssk->isk.sk, &ssk->rx_ring.lock);
-
- if (unlikely(!ssk->id || ((1 << sk->sk_state) &
- (TCPF_CLOSE | TCPF_TIME_WAIT)))) {
- return;
- }
+ int buffer_size = SDP_HEAD_SIZE + ssk->recv_frags * PAGE_SIZE;
+ unsigned long max_bytes;
if (top_mem_usage &&
(top_mem_usage * 0x100000) < atomic_read(&sdp_current_mem_usage) * PAGE_SIZE)
scale = 1;
- while ((likely(ring_posted(ssk->rx_ring) < SDP_RX_SIZE) &&
- (ring_posted(ssk->rx_ring) - SDP_MIN_TX_CREDITS) *
- (SDP_HEAD_SIZE + ssk->recv_frags * PAGE_SIZE) +
- ssk->rcv_nxt - ssk->copied_seq < sk->sk_rcvbuf * scale) ||
- unlikely(ring_posted(ssk->rx_ring) < SDP_MIN_TX_CREDITS)) {
- if (sdp_post_recv(ssk))
- break;
+ max_bytes = sk->sk_rcvbuf * scale;
+
+ if (unlikely(ring_posted(ssk->rx_ring) >= SDP_RX_SIZE)) {
+ sdp_prf(sk, NULL, "rx ring is full");
+ return 0;
}
+
+ if (likely(ring_posted(ssk->rx_ring) > SDP_MIN_TX_CREDITS)) {
+ unsigned long bytes_in_process =
+ (ring_posted(ssk->rx_ring) - SDP_MIN_TX_CREDITS) * buffer_size;
+ bytes_in_process += rcv_nxt(ssk) - ssk->copied_seq;
+
+ if (bytes_in_process >= max_bytes) {
+ sdp_prf(sk, NULL, "bytes_in_process:%ld > max_bytes:%ld",
+ bytes_in_process, max_bytes);
+ return 0;
+ }
+ }
+
+ return 1;
}
-void sdp_post_recvs(struct sdp_sock *ssk)
+static inline void sdp_post_recvs(struct sdp_sock *ssk)
{
- unsigned long flags;
+ int rc = 0;
+again:
+ ssk->posts_in_process = 1;
- rx_ring_lock(ssk, flags);
- _sdp_post_recvs(ssk);
- rx_ring_unlock(ssk, flags);
+ do {
+ if (!sdp_post_recvs_needed(ssk))
+ break;
+
+ rc = sdp_post_recv(ssk);
+ } while (!rc);
+
+ sk_stream_mem_reclaim(&ssk->isk.sk);
+
+ ssk->posts_in_process = 0;
+ if (sdp_post_recvs_needed(ssk))
+ goto again;
+}
+
+void sdp_schedule_post_recvs(struct sdp_sock *ssk)
+{
+ struct sock *sk = &ssk->isk.sk;
+
+ WARN_ON_LOCKED(&ssk->isk.sk, &ssk->rx_ring.lock);
+
+ if (unlikely(!ssk->id || ((1 << sk->sk_state) &
+ (TCPF_CLOSE | TCPF_TIME_WAIT)))) {
+ sdp_prf(sk, NULL, "socket is closed - not posting");
+ return;
+ }
+
+ if (!ssk->posts_in_process && sdp_post_recvs_needed(ssk))
+ queue_work(rx_comp_wq, &ssk->rx_comp_work);
}
static inline struct sk_buff *sdp_sock_queue_rcv_skb(struct sock *sk,
@@ -285,7 +319,6 @@ static inline struct sk_buff *sdp_sock_queue_rcv_skb(struct sock *sk,
{
int skb_len;
struct sdp_sock *ssk = sdp_sk(sk);
- struct sk_buff *tail = NULL;
/* not needed since sk_rmem_alloc is not currently used
* TODO - remove this?
@@ -293,16 +326,10 @@ static inline struct sk_buff *sdp_sock_queue_rcv_skb(struct sock *sk,
skb_len = skb->len;
- TCP_SKB_CB(skb)->seq = ssk->rcv_nxt;
- ssk->rcv_nxt += skb_len;
+ TCP_SKB_CB(skb)->seq = rcv_nxt(ssk);
+ atomic_add(skb_len, &ssk->rcv_nxt);
- if (likely(skb_len && (tail = skb_peek_tail(&sk->sk_receive_queue))) &&
- unlikely(skb_tailroom(tail) >= skb_len)) {
- skb_copy_bits(skb, 0, skb_put(tail, skb_len), skb_len);
- __kfree_skb(skb);
- skb = tail;
- } else
- skb_queue_tail(&sk->sk_receive_queue, skb);
+ skb_queue_tail(&sk->sk_receive_queue, skb);
if (!sock_flag(sk, SOCK_DEAD))
sk->sk_data_ready(sk, skb_len);
@@ -412,71 +439,97 @@ static struct sk_buff *sdp_recv_completion(struct sdp_sock *ssk, int id)
return skb;
}
-/* this must be called while sock_lock is taken */
-static int sdp_process_rx_skb(struct sdp_sock *ssk, struct sk_buff *skb)
+/* socket lock should be taken before calling this */
+static int sdp_process_rx_ctl_skb(struct sdp_sock *ssk, struct sk_buff *skb)
{
+ struct sdp_bsdh *h = (struct sdp_bsdh *)skb->data;
struct sock *sk = &ssk->isk.sk;
- int frags;
- struct sdp_bsdh *h;
- int pagesz, i;
-
- h = (struct sdp_bsdh *)skb->data;
-
- frags = skb_shinfo(skb)->nr_frags;
- pagesz = PAGE_ALIGN(skb->data_len);
- skb_shinfo(skb)->nr_frags = pagesz / PAGE_SIZE;
-
- for (i = skb_shinfo(skb)->nr_frags;
- i < frags; ++i) {
- put_page(skb_shinfo(skb)->frags[i].page);
- skb->truesize -= PAGE_SIZE;
- }
-
- if (unlikely(h->flags & SDP_OOB_PEND))
- sk_send_sigurg(sk);
-
- skb_pull(skb, sizeof(struct sdp_bsdh));
switch (h->mid) {
case SDP_MID_DATA:
- if (unlikely(skb->len <= 0)) {
- __kfree_skb(skb);
- break;
- }
+ WARN_ON(!(sk->sk_shutdown & RCV_SHUTDOWN));
- if (unlikely(sk->sk_shutdown & RCV_SHUTDOWN)) {
- /* got data in RCV_SHUTDOWN */
- if (sk->sk_state == TCP_FIN_WAIT1) {
- /* go into abortive close */
- sdp_exch_state(sk, TCPF_FIN_WAIT1,
- TCP_TIME_WAIT);
+ sdp_warn(sk, "DATA after socket rcv was shutdown\n");
- sk->sk_prot->disconnect(sk, 0);
- }
+ /* got data in RCV_SHUTDOWN */
+ if (sk->sk_state == TCP_FIN_WAIT1) {
+ sdp_warn(sk, "socket in shutdown, state = FIN_WAIT1 and got data\n");
+ /* go into abortive close */
+ sdp_exch_state(sk, TCPF_FIN_WAIT1,
+ TCP_TIME_WAIT);
- __kfree_skb(skb);
- break;
+ sk->sk_prot->disconnect(sk, 0);
}
- skb = sdp_sock_queue_rcv_skb(sk, skb);
- if (unlikely(h->flags & SDP_OOB_PRES))
- sdp_urg(ssk, skb);
+
break;
case SDP_MID_DISCONN:
- __kfree_skb(skb);
+ sdp_dbg_data(sk, "Handling RX disconnect\n");
sdp_fin(sk);
break;
case SDP_MID_CHRCVBUF:
+ sdp_dbg_data(sk, "Handling RX CHRCVBUF\n");
sdp_handle_resize_request(ssk,
(struct sdp_chrecvbuf *)skb->data);
- __kfree_skb(skb);
break;
case SDP_MID_CHRCVBUF_ACK:
+ sdp_dbg_data(sk, "Handling RX CHRCVBUF_ACK\n");
sdp_handle_resize_ack(ssk, (struct sdp_chrecvbuf *)skb->data);
- __kfree_skb(skb);
break;
default:
/* TODO: Handle other messages */
- printk(KERN_WARNING "SDP: FIXME MID %d\n", h->mid);
+ sdp_warn(sk, "SDP: FIXME MID %d\n", h->mid);
+ }
+
+ __kfree_skb(skb);
+
+ return 0;
+}
+
+static int sdp_process_rx_skb(struct sdp_sock *ssk, struct sk_buff *skb)
+{
+ struct sock *sk = &ssk->isk.sk;
+ int frags;
+ struct sdp_bsdh *h;
+ int pagesz, i;
+ unsigned long mseq_ack;
+ int credits_before;
+
+ h = (struct sdp_bsdh *)skb->data;
+
+ SDPSTATS_HIST_LINEAR(credits_before_update, tx_credits(ssk));
+
+ mseq_ack = ntohl(h->mseq_ack);
+ credits_before = tx_credits(ssk);
+ atomic_set(&ssk->tx_ring.credits, mseq_ack - ring_head(ssk->tx_ring) + 1 +
+ ntohs(h->bufs));
+ if (mseq_ack >= ssk->nagle_last_unacked)
+ ssk->nagle_last_unacked = 0;
+
+ sdp_prf(&ssk->isk.sk, skb, "RX %s +%d c:%d->%d mseq:%d ack:%d",
+ mid2str(h->mid), ntohs(h->bufs), credits_before,
+ tx_credits(ssk), ntohl(h->mseq), ntohl(h->mseq_ack));
+
+ frags = skb_shinfo(skb)->nr_frags;
+ pagesz = PAGE_ALIGN(skb->data_len);
+ skb_shinfo(skb)->nr_frags = pagesz / PAGE_SIZE;
+
+ for (i = skb_shinfo(skb)->nr_frags; i < frags; ++i) {
+ put_page(skb_shinfo(skb)->frags[i].page);
+ skb->truesize -= PAGE_SIZE;
+ }
+
+/* if (unlikely(h->flags & SDP_OOB_PEND))
+ sk_send_sigurg(sk);*/
+
+ if (h->mid != SDP_MID_DATA || unlikely(sk->sk_shutdown & RCV_SHUTDOWN)) {
+ sdp_warn(sk, "Control skb - queing to control queue\n");
+ skb_queue_tail(&ssk->rx_ctl_q, skb);
+ return 0;
+ }
+
+ skb_pull(skb, sizeof(struct sdp_bsdh));
+
+ if (unlikely(skb->len <= 0)) {
__kfree_skb(skb);
}
@@ -489,8 +542,7 @@ static struct sk_buff *sdp_process_rx_wc(struct sdp_sock *ssk, struct ib_wc *wc)
struct sk_buff *skb;
struct sdp_bsdh *h;
struct sock *sk = &ssk->isk.sk;
- int credits_before;
- unsigned long mseq_ack;
+ int mseq;
skb = sdp_recv_completion(ssk, wc->wr_id);
if (unlikely(!skb))
@@ -530,23 +582,12 @@ static struct sk_buff *sdp_process_rx_wc(struct sdp_sock *ssk, struct ib_wc *wc)
h = (struct sdp_bsdh *)skb->data;
SDP_DUMP_PACKET(&ssk->isk.sk, "RX", skb, h);
skb_reset_transport_header(skb);
- atomic_set(&ssk->mseq_ack, ntohl(h->mseq));
- if (mseq_ack(ssk) != (int)wc->wr_id)
- printk(KERN_WARNING "SDP BUG! mseq %d != wrid %d\n",
- mseq_ack(ssk), (int)wc->wr_id);
- SDPSTATS_HIST_LINEAR(credits_before_update, tx_credits(ssk));
-
- mseq_ack = ntohl(h->mseq_ack);
- credits_before = tx_credits(ssk);
- atomic_set(&ssk->tx_ring.credits, mseq_ack - ring_head(ssk->tx_ring) + 1 +
- ntohs(h->bufs));
- if (mseq_ack >= ssk->nagle_last_unacked)
- ssk->nagle_last_unacked = 0;
-
- sdp_prf(&ssk->isk.sk, skb, "RX %s bufs=%d c before:%d after:%d "
- "mseq:%d, ack:%d", mid2str(h->mid), ntohs(h->bufs), credits_before,
- tx_credits(ssk), ntohl(h->mseq), ntohl(h->mseq_ack));
+ mseq = ntohl(h->mseq);
+ atomic_set(&ssk->mseq_ack, mseq);
+ if (mseq != (int)wc->wr_id)
+ sdp_warn(sk, "SDP BUG! mseq %d != wrid %d\n",
+ mseq, (int)wc->wr_id);
return skb;
}
@@ -576,7 +617,6 @@ static void sdp_bzcopy_write_space(struct sdp_sock *ssk)
}
/* only from interrupt.
- * drain rx cq into rx_backlog queue */
static int sdp_poll_rx_cq(struct sdp_sock *ssk)
{
struct ib_cq *cq = ssk->rx_ring.cq;
@@ -596,7 +636,8 @@ static int sdp_poll_rx_cq(struct sdp_sock *ssk)
skb = sdp_process_rx_wc(ssk, wc);
if (!skb)
continue;
- skb_queue_tail(&ssk->rx_backlog, skb);
+
+ sdp_process_rx_skb(ssk, skb);
wc_processed++;
}
} while (n == SDP_NUM_WC);
@@ -607,69 +648,55 @@ static int sdp_poll_rx_cq(struct sdp_sock *ssk)
return wc_processed;
}
-int sdp_process_rx_q(struct sdp_sock *ssk)
+void sdp_rx_comp_work(struct work_struct *work)
{
- struct sk_buff *skb;
+ struct sdp_sock *ssk = container_of(work, struct sdp_sock, rx_comp_work);
struct sock *sk = &ssk->isk.sk;
- unsigned long flags;
+ int xmit_poll_force;
+ struct sk_buff *skb;
- if (!ssk->rx_backlog.next || !ssk->rx_backlog.prev) {
- sdp_warn(&ssk->isk.sk, "polling a zeroed rx_backlog!!!! %p\n", &ssk->rx_backlog);
- return 0;
- }
+ sdp_prf(sk, NULL, "%s", __func__);
+
+ if (unlikely(!ssk->rx_ring.cq))
+ return;
- if (skb_queue_empty(&ssk->rx_backlog)) {
- SDPSTATS_COUNTER_INC(rx_poll_miss);
- return -EAGAIN;
+ if (unlikely(!ssk->poll_cq)) {
+ struct rdma_cm_id *id = ssk->id;
+ sdp_warn(sk, "poll cq is 0. socket was reset or wasn't initialized\n");
+ if (id && id->qp)
+ rdma_notify(id, RDMA_CM_EVENT_ESTABLISHED);
+ return;
}
- /* update credits */
- sdp_post_sends(ssk, 0);
+ sdp_post_recvs(ssk);
- spin_lock_irqsave(&ssk->rx_backlog.lock, flags);
- while ((skb = __skb_dequeue(&ssk->rx_backlog))) {
- sdp_process_rx_skb(ssk, skb);
+ if (!(sk->sk_write_pending && (tx_credits(ssk) > SDP_MIN_TX_CREDITS)) &&
+ !credit_update_needed(ssk) &&
+ skb_queue_empty(&ssk->rx_ctl_q)) {
+ sdp_prf(&ssk->isk.sk, NULL, "only post recvs");
+ return;
}
- spin_unlock_irqrestore(&ssk->rx_backlog.lock, flags);
- if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
- sk_stream_write_space(&ssk->isk.sk);
+ lock_sock(sk);
- return 0;
-}
+ sdp_post_sends(ssk, 0);
-static void sdp_rx_comp_work(struct work_struct *work)
-{
- struct sdp_sock *ssk = container_of(work, struct sdp_sock, rx_comp_work);
- struct sock *sk = &ssk->isk.sk;
- struct ib_cq *rx_cq;
+ while ((skb = skb_dequeue(&ssk->rx_ctl_q))) {
+ sdp_process_rx_ctl_skb(ssk, skb);
+ }
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
- goto out;
+ sk_stream_mem_reclaim(sk);
- if (unlikely(!ssk->poll_cq)) {
- struct rdma_cm_id *id = ssk->id;
- sdp_warn(sk, "poll cq is 0. socket was reset or wasn't initialized\n");
- if (id && id->qp)
- rdma_notify(id, RDMA_CM_EVENT_ESTABLISHED);
- goto out;
- }
+ xmit_poll_force = sk->sk_write_pending && (tx_credits(ssk) > SDP_MIN_TX_CREDITS);
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
- sk_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
- goto out;
-
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1);
+ if (credit_update_needed(ssk) || xmit_poll_force) {
+ /* if has pending tx because run out of tx_credits - xmit it */
+ sdp_prf(sk, NULL, "Processing to free pending sends");
+ sdp_xmit_poll(ssk, xmit_poll_force);
+ sdp_prf(sk, NULL, "Sending credit update if needed");
+ sdp_post_sends(ssk, 0);
+ }
-out:
release_sock(sk);
}
@@ -679,6 +706,7 @@ static void sdp_rx_irq(struct ib_cq *cq, void *cq_context)
struct sdp_sock *ssk = sdp_sk(sk);
unsigned long flags;
int wc_processed = 0;
+ int credits_before;
sdp_dbg_data(&ssk->isk.sk, "rx irq called\n");
@@ -690,6 +718,8 @@ static void sdp_rx_irq(struct ib_cq *cq, void *cq_context)
rx_ring_lock(ssk, flags);
+ credits_before = tx_credits(ssk);
+
if (unlikely(!ssk->poll_cq))
sdp_warn(sk, "poll cq is 0. socket was reset or wasn't initialized\n");
@@ -703,15 +733,11 @@ static void sdp_rx_irq(struct ib_cq *cq, void *cq_context)
sdp_prf(&ssk->isk.sk, NULL, "processed %d", wc_processed);
if (wc_processed) {
- _sdp_post_recvs(ssk);
+ sdp_prf(&ssk->isk.sk, NULL, "credits: %d -> %d",
+ credits_before, tx_credits(ssk));
- /* Best was to send credit update from here */
-/* sdp_post_credits(ssk); */
-
- /* issue sdp_rx_comp_work() */
queue_work(rx_comp_wq, &ssk->rx_comp_work);
}
-
sdp_arm_rx_cq(sk);
out:
@@ -764,7 +790,7 @@ int sdp_rx_ring_create(struct sdp_sock *ssk, struct ib_device *device)
}
rx_cq = ib_create_cq(device, sdp_rx_irq, sdp_rx_cq_event_handler,
- &ssk->isk.sk, SDP_RX_SIZE, 0);
+ &ssk->isk.sk, SDP_RX_SIZE, IB_CQ_VECTOR_LEAST_ATTACHED);
if (IS_ERR(rx_cq)) {
rc = PTR_ERR(rx_cq);
diff --git a/drivers/infiniband/ulp/sdp/sdp_tx.c b/drivers/infiniband/ulp/sdp/sdp_tx.c
index a7d16fe..95e3c82 100644
--- a/drivers/infiniband/ulp/sdp/sdp_tx.c
+++ b/drivers/infiniband/ulp/sdp/sdp_tx.c
@@ -287,15 +287,19 @@ static void sdp_poll_tx_timeout(unsigned long data)
sdp_dbg_data(&ssk->isk.sk, "Polling tx cq. inflight=%d\n",
(u32) ring_posted(ssk->tx_ring));
+ sdp_prf(&ssk->isk.sk, NULL, "%s. inflight=%d", __func__,
+ (u32) ring_posted(ssk->tx_ring));
+
/* Only process if the socket is not in use */
bh_lock_sock(sk);
if (sock_owned_by_user(sk)) {
mod_timer(&ssk->tx_ring.timer, jiffies + SDP_TX_POLL_TIMEOUT);
sdp_dbg_data(&ssk->isk.sk, "socket is busy - trying later\n");
+ SDPSTATS_COUNTER_INC(tx_poll_busy);
goto out;
}
- if (sk->sk_state == TCP_CLOSE)
+ if (unlikely(sk->sk_state == TCP_CLOSE))
goto out;
wc_processed = sdp_process_tx_cq(ssk);
diff --git a/kernel_patches/attic/backport/2.6.16/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.16/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.16/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.16/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.16/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.16/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.16/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.16/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.16_sles10/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.16_sles10/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.16_sles10/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.16_sles10/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.16_sles10/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.16_sles10/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.16_sles10/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.16_sles10/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.16_sles10_sp1/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.17/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.17/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.17/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.17/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.17/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.17/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.17/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.17/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.18-EL5.1/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.18_FC6/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.18_FC6/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.18_FC6/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.18_FC6/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.18_FC6/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.18_FC6/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.18_FC6/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.18_FC6/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.18_suse10_2/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.22_suse10_3/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.9_U4/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.9_U4/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.9_U4/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.9_U4/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.9_U4/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.9_U4/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.9_U4/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.9_U4/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/attic/backport/2.6.9_U5/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/attic/backport/2.6.9_U5/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/attic/backport/2.6.9_U5/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/attic/backport/2.6.9_U5/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/attic/backport/2.6.9_U5/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/attic/backport/2.6.9_U5/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/attic/backport/2.6.9_U5/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/attic/backport/2.6.9_U5/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.16_sles10_sp2/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.18-EL5.2/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.18-EL5.2/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.18-EL5.2/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.18-EL5.2/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.18-EL5.2/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.18-EL5.2/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.18-EL5.2/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18-EL5.2/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.18-EL5.3/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.18-EL5.3/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.18-EL5.3/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.18-EL5.3/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.18-EL5.3/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.18-EL5.3/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.18-EL5.3/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18-EL5.3/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.18/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.18/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.18/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.18/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.18/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.18/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.18/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.18/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.19/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.19/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.19/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.19/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.19/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.19/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.19/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.19/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.20/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.20/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.20/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.20/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.20/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.20/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.20/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.20/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.21/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.21/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.21/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.21/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.21/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.21/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.21/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.21/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.22/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.22/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.22/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.22/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.22/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.22/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.22/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.22/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.23/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.23/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.23/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.23/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.23/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.23/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.23/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.23/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.24/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.24/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.24/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.24/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.9_U6/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.9_U6/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.9_U6/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.9_U6/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.9_U6/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.9_U6/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.9_U6/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.9_U6/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
diff --git a/kernel_patches/backport/2.6.9_U7/sdp_0090_revert_to_2_6_24.patch b/kernel_patches/backport/2.6.9_U7/sdp_0090_revert_to_2_6_24.patch
index 23d526a..2272473 100644
--- a/kernel_patches/backport/2.6.9_U7/sdp_0090_revert_to_2_6_24.patch
+++ b/kernel_patches/backport/2.6.9_U7/sdp_0090_revert_to_2_6_24.patch
@@ -9,7 +9,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp.h
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp.h
-@@ -594,30 +594,4 @@ static inline char *mid2str(int mid)
+@@ -584,30 +584,4 @@ static inline char *mid2str(int mid)
return mid2str[mid];
}
@@ -44,7 +44,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_bcopy.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
-@@ -170,7 +170,7 @@ int sdp_post_credits(struct sdp_sock *ss
+@@ -174,7 +174,7 @@ int sdp_post_credits(struct sdp_sock *ss
if (likely(tx_credits(ssk) > 1) &&
likely(sdp_tx_ring_slots_left(&ssk->tx_ring))) {
struct sk_buff *skb;
@@ -53,7 +53,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
if (!skb)
-@@ -224,7 +224,7 @@ void _sdp_post_sends(const char *func, i
+@@ -228,7 +228,7 @@ void _sdp_post_sends(const char *func, i
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *resp_size;
ssk->recv_request = 0;
@@ -62,7 +62,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*resp_size),
gfp_page);
-@@ -259,7 +259,7 @@ void _sdp_post_sends(const char *func, i
+@@ -263,7 +263,7 @@ void _sdp_post_sends(const char *func, i
ring_head(ssk->tx_ring) > ssk->sent_request_head + SDP_RESIZE_WAIT &&
sdp_tx_ring_slots_left(&ssk->tx_ring)) {
struct sdp_chrecvbuf *req_size;
@@ -71,7 +71,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh) +
sizeof(*req_size),
gfp_page);
-@@ -282,7 +282,7 @@ void _sdp_post_sends(const char *func, i
+@@ -286,7 +286,7 @@ void _sdp_post_sends(const char *func, i
likely(sdp_tx_ring_slots_left(&ssk->tx_ring)) &&
likely((1 << ssk->isk.sk.sk_state) &
(TCPF_ESTABLISHED | TCPF_FIN_WAIT1))) {
@@ -80,7 +80,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_bcopy.c
sizeof(struct sdp_bsdh),
GFP_KERNEL);
/* FIXME */
-@@ -301,7 +301,7 @@ void _sdp_post_sends(const char *func, i
+@@ -305,7 +305,7 @@ void _sdp_post_sends(const char *func, i
!ssk->isk.sk.sk_send_head &&
tx_credits(ssk) > 1) {
ssk->sdp_disconnect = 0;
@@ -93,7 +93,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
+++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -510,7 +510,7 @@ static void sdp_close(struct sock *sk, l
+@@ -508,7 +508,7 @@ static void sdp_close(struct sock *sk, l
__kfree_skb(skb);
}
@@ -102,7 +102,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
/* As outlined in draft-ietf-tcpimpl-prob-03.txt, section
* 3.10, we send a RST here because data was lost. To
-@@ -1241,7 +1241,7 @@ static inline void sdp_mark_urg(struct s
+@@ -1229,7 +1229,7 @@ static inline void sdp_mark_urg(struct s
{
if (unlikely(flags & MSG_OOB)) {
struct sk_buff *skb = sk->sk_write_queue.prev;
@@ -111,7 +111,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
}
}
-@@ -1258,8 +1258,7 @@ static inline void skb_entail(struct soc
+@@ -1246,8 +1246,7 @@ static inline void skb_entail(struct soc
{
skb_header_release(skb);
__skb_queue_tail(&sk->sk_write_queue, skb);
@@ -121,7 +121,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk->sk_send_head)
sk->sk_send_head = skb;
if (ssk->nonagle & TCP_NAGLE_PUSH)
-@@ -1432,7 +1431,7 @@ static inline int sdp_bcopy_get(struct s
+@@ -1420,7 +1419,7 @@ static inline int sdp_bcopy_get(struct s
if (copy > PAGE_SIZE - off)
copy = PAGE_SIZE - off;
@@ -130,7 +130,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
if (!page) {
-@@ -1508,7 +1507,7 @@ static inline int sdp_bzcopy_get(struct
+@@ -1496,7 +1495,7 @@ static inline int sdp_bzcopy_get(struct
if (left <= this_page)
this_page = left;
@@ -139,7 +139,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
return SDP_DO_WAIT_MEM;
get_page(bz->pages[bz->cur_page]);
-@@ -1709,8 +1708,8 @@ new_segment:
+@@ -1697,8 +1696,8 @@ new_segment:
goto wait_for_sndbuf;
}
@@ -150,7 +150,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
if (!skb)
goto wait_for_memory;
-@@ -1743,7 +1742,7 @@ new_segment:
+@@ -1731,7 +1730,7 @@ new_segment:
/* OOB data byte should be the last byte of
the data payload */
@@ -159,7 +159,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
!(flags & MSG_OOB)) {
sdp_mark_push(ssk, skb);
goto new_segment;
-@@ -1826,7 +1825,7 @@ do_fault:
+@@ -1814,7 +1813,7 @@ do_fault:
if (sk->sk_send_head == skb)
sk->sk_send_head = NULL;
__skb_unlink(skb, &sk->sk_write_queue);
@@ -181,7 +181,7 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
if (!sock_flag(sk, SOCK_DEAD)) {
sk->sk_state_change(sk);
-@@ -175,11 +175,11 @@ static int sdp_post_recv(struct sdp_sock
+@@ -171,11 +171,11 @@ static int sdp_post_recv(struct sdp_sock
/* TODO: allocate from cache */
if (unlikely(ssk->isk.sk.sk_allocation)) {
@@ -195,15 +195,6 @@ Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_rx.c
GFP_KERNEL);
gfp_page = GFP_HIGHUSER;
}
-@@ -660,7 +660,7 @@ static void sdp_rx_comp_work(struct work
- sdp_process_rx_q(ssk);
- sdp_xmit_poll(ssk, 1); /* if has pending tx because run out of tx_credits - xmit it */
- release_sock(sk);
-- sk_mem_reclaim(sk);
-+ sk_stream_mem_reclaim(sk);
- lock_sock(sk);
- rx_cq = ssk->rx_ring.cq;
- if (unlikely(!rx_cq))
Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_tx.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_tx.c
diff --git a/kernel_patches/backport/2.6.9_U7/sdp_0100_revert_to_2_6_23.patch b/kernel_patches/backport/2.6.9_U7/sdp_0100_revert_to_2_6_23.patch
index 608dd83..90d8e67 100644
--- a/kernel_patches/backport/2.6.9_U7/sdp_0100_revert_to_2_6_23.patch
+++ b/kernel_patches/backport/2.6.9_U7/sdp_0100_revert_to_2_6_23.patch
@@ -2,11 +2,11 @@
drivers/infiniband/ulp/sdp/sdp_main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_main.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
-@@ -2238,16 +2238,13 @@ static struct proto_ops sdp_proto_ops =
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_main.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_main.c
+@@ -2218,16 +2218,13 @@ static struct proto_ops sdp_proto_ops =
.sendpage = sock_no_sendpage,
};
@@ -24,7 +24,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (sock->type != SOCK_STREAM) {
sdp_warn(NULL, "SDP: unsupported type %d.\n", sock->type);
return -ESOCKTNOSUPPORT;
-@@ -2259,7 +2256,7 @@ static int sdp_create_socket(struct net
+@@ -2239,7 +2236,7 @@ static int sdp_create_socket(struct net
return -EPROTONOSUPPORT;
}
@@ -33,10 +33,10 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_main.c
if (!sk) {
sdp_warn(NULL, "SDP: failed to allocate socket.\n");
return -ENOMEM;
-Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+Index: ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
===================================================================
---- ofed_kernel-2.6.16_sles10_sp2.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
-+++ ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
+--- ofed_kernel.orig/drivers/infiniband/ulp/sdp/sdp_proc.c
++++ ofed_kernel/drivers/infiniband/ulp/sdp/sdp_proc.c
@@ -421,7 +421,7 @@ int __init sdp_proc_init(void)
sdp_seq_afinfo.seq_fops->llseek = seq_lseek;
sdp_seq_afinfo.seq_fops->release = seq_release_private;
@@ -46,7 +46,7 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
sdp_seq_afinfo.seq_fops);
if (p)
p->data = &sdp_seq_afinfo;
-@@ -430,14 +430,14 @@ int __init sdp_proc_init(void)
+@@ -430,7 +430,7 @@ int __init sdp_proc_init(void)
#ifdef SDPSTATS_ON
@@ -55,15 +55,16 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
S_IRUGO | S_IWUGO, &sdpstats_fops);
if (!sdpstats)
goto no_mem;
-
+@@ -438,7 +438,7 @@ int __init sdp_proc_init(void)
#endif
+ #ifdef SDP_PROFILING
- sdpprf = proc_net_fops_create(&init_net, PROC_SDP_PERF,
+ sdpprf = proc_net_fops_create(PROC_SDP_PERF,
S_IRUGO | S_IWUGO, &sdpprf_fops);
if (!sdpprf)
goto no_mem;
-@@ -445,26 +445,26 @@ int __init sdp_proc_init(void)
+@@ -447,27 +447,27 @@ int __init sdp_proc_init(void)
return 0;
no_mem:
if (sdpprf)
@@ -91,8 +92,9 @@ Index: ofed_kernel-2.6.16_sles10_sp2/drivers/infiniband/ulp/sdp/sdp_proc.c
- proc_net_remove(&init_net, PROC_SDP_STATS);
+ proc_net_remove(PROC_SDP_STATS);
#endif
+ #ifdef SDP_PROFILING
- proc_net_remove(&init_net, PROC_SDP_PERF);
+ proc_net_remove(PROC_SDP_PERF);
+ #endif
}
- #else /* CONFIG_PROC_FS */
--
1.5.3.7
More information about the general
mailing list