Wed, 15 Jan 2014 23:08:30 -0600
applying patch-3.10.25-vs2.3.6.8.diff to linux-3.10.27 fails.
the introduction of memset to inet_diag.c invalidated the context of three
hunks.
the attached patch fixes the failure (and Makefile's EXTRAVERSION, too).
instructions:
1. acquire linux-3.10.27
2. apply patch-3.10.25-vs2.3.6.8.diff
3. apply the attached patch-3.10.25-27-vs2.3.6.8.diff
i've successfully built and tested the resulting kernel against testme.sh and
testfs.sh in virtualbox.
corey
--
undefined@pobox.com
diff -urNpd a/linux-3.10.27-vs2.3.6.8/Makefile b/linux-3.10.27-vs2.3.6.8/Makefile
--- a/linux-3.10.27-vs2.3.6.8/Makefile 2014-01-15 21:02:36.000000000 -0600
+++ b/linux-3.10.27-vs2.3.6.8/Makefile 2014-01-15 21:28:35.000000000 -0600
@@ -1,7 +1,7 @@
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 27
-EXTRAVERSION =
+EXTRAVERSION = -vs2.3.6.8
NAME = TOSSUG Baby Fish
# *DOCUMENTATION*
diff -urNpd a/linux-3.10.27-vs2.3.6.8/net/ipv4/inet_diag.c b/linux-3.10.27-vs2.3.6.8/net/ipv4/inet_diag.c
--- a/linux-3.10.27-vs2.3.6.8/net/ipv4/inet_diag.c 2014-01-15 21:39:08.000000000 -0600
+++ b/linux-3.10.27-vs2.3.6.8/net/ipv4/inet_diag.c 2014-01-15 21:28:18.000000000 -0600
@@ -112,8 +112,10 @@ int inet_sk_diag_fill(struct sock *sk, s
memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
- r->id.idiag_src[0] = inet->inet_rcv_saddr;
- r->id.idiag_dst[0] = inet->inet_daddr;
+ r->id.idiag_src[0] = nx_map_sock_lback(sk->sk_nx_info,
+ inet->inet_rcv_saddr);
+ r->id.idiag_dst[0] = nx_map_sock_lback(sk->sk_nx_info,
+ inet->inet_daddr);
if (nla_put_u8(skb, INET_DIAG_SHUTDOWN, sk->sk_shutdown))
goto errout;
@@ -256,8 +258,8 @@ static int inet_twsk_diag_fill(struct in
memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
- r->id.idiag_src[0] = tw->tw_rcv_saddr;
- r->id.idiag_dst[0] = tw->tw_daddr;
+ r->id.idiag_src[0] = nx_map_sock_lback(tw->tw_nx_info, tw->tw_rcv_saddr);
+ r->id.idiag_dst[0] = nx_map_sock_lback(tw->tw_nx_info, tw->tw_daddr);
r->idiag_state = tw->tw_substate;
r->idiag_timer = 3;
@@ -753,8 +755,8 @@ static int inet_diag_fill_req(struct sk_
memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
- r->id.idiag_src[0] = ireq->loc_addr;
- r->id.idiag_dst[0] = ireq->rmt_addr;
+ r->id.idiag_src[0] = nx_map_sock_lback(sk->sk_nx_info, ireq->loc_addr);
+ r->id.idiag_dst[0] = nx_map_sock_lback(sk->sk_nx_info, ireq->rmt_addr);
r->idiag_expires = jiffies_to_msecs(tmo);
r->idiag_rqueue = 0;