Jon Mason wrote:
The OFED-1.4 RDS calls to sk_alloc are broken, thus preventing rds from establishing a connection. sk_alloc function parameters changed between kernel versions 2.6.23 and 2.6.24. The current code erroneously checks for 2.6.26 for this change. The workaround code for no KERNEL_HAS_PROTO_REGISTER lacks a function parameter (as it is #defined over the standard sk_alloc call), and that functions call to sk_alloc has parameters 3 and 4 swapped.With the patch below, RDS will start working again. Signed-Off-By: Jon Mason <[EMAIL PROTECTED]> diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c index e32f502..3b7ad33 100644 --- a/net/rds/af_rds.c +++ b/net/rds/af_rds.c @@ -399,11 +399,11 @@ static struct proto_ops rds_proto_ops = { };#ifndef KERNEL_HAS_PROTO_REGISTER-static struct sock *sk_alloc_compat(int pf, gfp_t gfp, struct proto *prot) +static struct sock *sk_alloc_compat(int pf, gfp_t gfp, struct proto *prot, int zero_it) { struct rds_sock *rs;- sk = sk_alloc(pf, gfp, 1, NULL);+ sk = sk_alloc(pf, gfp, prot, zero_it); if (sk == NULL) return NULL;@@ -455,7 +455,7 @@ static int __rds_create(struct socket *sock, struct sock *sk, int protocol)return 0; }-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24) static int rds_create(struct socket *sock, int protocol) { struct sock *sk;
Applied to git://git.openfabrics.org/ofed_1_4/linux-2.6.git ofed_2_6_27 Thanks, Vladimir _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
