summaryrefslogtreecommitdiff |
diff options
author | Bernhard Walle <bwalle@suse.de> | 2007-10-05 21:32:21 +0000 |
---|---|---|
committer | Bernhard Walle <bwalle@suse.de> | 2007-10-05 21:32:21 +0000 |
commit | 81fcbb71f724b3fa2ff6a8d5eae7199afd85219e (patch) | |
tree | b467a641c3807fb11843ecd6acb851502adf7cd9 | |
parent | 46cf6db64166017561114c9232b702f0d597a35c (diff) |
- patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg:rpm-2.6.22.9-0.4
Add trampoline function also for IPv6 and fix kernel hang
(331456)
-rw-r--r-- | kernel-source.changes | 7 | ||||
-rw-r--r-- | patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg | 52 |
2 files changed, 48 insertions, 11 deletions
diff --git a/kernel-source.changes b/kernel-source.changes index 48d5d2fd9e..6e24bc171c 100644 --- a/kernel-source.changes +++ b/kernel-source.changes @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Oct 5 23:29:22 CEST 2007 - bwalle@suse.de + +- patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg: + Add trampoline function also for IPv6 and fix kernel hang + (331456) + +------------------------------------------------------------------- Fri Oct 5 01:51:15 CEST 2007 - teheo@suse.de - patches.drivers/libata-disable-NCQ-for-ST9160821AS-3.ALD: diff --git a/patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg b/patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg index ac6e410044..2f4fe36c73 100644 --- a/patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg +++ b/patches.suse/kabi-safe-2.6.22.6-tcp_sendmsg @@ -3,17 +3,22 @@ Subject: [PATCH] kABI: rework tcp_sendmsg fix from 2.6.22.6 References: None, proactive fix. Patch-mainline: Never - This patch adds a trampoline so we don't change the prototype of tcp_sendmsg. +This patch adds a trampoline so we don't change the prototype of tcp_sendmsg. + +Modification from bwalle@suse.de: +Do the same for IPv6. Signed-off-by: Jeff Mahoney <jeffm@suse.com> + --- - include/net/tcp.h | 2 +- - net/ipv4/af_inet.c | 8 +++++++- - net/ipv4/tcp.c | 3 +-- - 3 files changed, 9 insertions(+), 4 deletions(-) + include/net/tcp.h | 2 +- + net/ipv4/af_inet.c | 8 +++++++- + net/ipv4/tcp.c | 3 +-- + net/ipv6/af_inet6.c | 9 ++++++++- + 4 files changed, 17 insertions(+), 5 deletions(-) ---- a/include/net/tcp.h 2007-10-01 15:36:23.000000000 -0400 -+++ b/include/net/tcp.h 2007-10-01 15:38:03.000000000 -0400 +--- a/include/net/tcp.h ++++ b/include/net/tcp.h @@ -281,7 +281,7 @@ extern int tcp_v4_remember_stamp(struc extern int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw); @@ -23,8 +28,8 @@ Signed-off-by: Jeff Mahoney <jeffm@suse.com> struct msghdr *msg, size_t size); extern ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags); ---- a/net/ipv4/af_inet.c 2007-10-01 15:36:23.000000000 -0400 -+++ b/net/ipv4/af_inet.c 2007-10-01 15:41:13.000000000 -0400 +--- a/net/ipv4/af_inet.c ++++ b/net/ipv4/af_inet.c @@ -692,6 +692,12 @@ int inet_sendmsg(struct kiocb *iocb, str return sk->sk_prot->sendmsg(iocb, sk, msg, size); } @@ -47,8 +52,8 @@ Signed-off-by: Jeff Mahoney <jeffm@suse.com> .recvmsg = sock_common_recvmsg, .mmap = sock_no_mmap, .sendpage = tcp_sendpage, ---- a/net/ipv4/tcp.c 2007-10-01 15:36:23.000000000 -0400 -+++ b/net/ipv4/tcp.c 2007-10-01 15:38:17.000000000 -0400 +--- a/net/ipv4/tcp.c ++++ b/net/ipv4/tcp.c @@ -658,10 +658,9 @@ static inline int select_size(struct soc return tmp; } @@ -61,3 +66,28 @@ Signed-off-by: Jeff Mahoney <jeffm@suse.com> struct iovec *iov; struct tcp_sock *tp = tcp_sk(sk); struct sk_buff *skb; +--- a/net/ipv6/af_inet6.c ++++ b/net/ipv6/af_inet6.c +@@ -472,6 +472,13 @@ int inet6_ioctl(struct socket *sock, uns + + EXPORT_SYMBOL(inet6_ioctl); + ++/* KABI safe workaround for 2.6.22.6 tcp_sendmsg change -bwalle, copied from ipv4 */ ++static int inet_tcp_sendmsg(struct kiocb *iocb, struct socket *sock, ++ struct msghdr *msg, size_t size) ++{ ++ return tcp_sendmsg(iocb, sock->sk, msg, size); ++} ++ + const struct proto_ops inet6_stream_ops = { + .family = PF_INET6, + .owner = THIS_MODULE, +@@ -487,7 +494,7 @@ const struct proto_ops inet6_stream_ops + .shutdown = inet_shutdown, /* ok */ + .setsockopt = sock_common_setsockopt, /* ok */ + .getsockopt = sock_common_getsockopt, /* ok */ +- .sendmsg = tcp_sendmsg, /* ok */ ++ .sendmsg = inet_tcp_sendmsg, /* ok */ + .recvmsg = sock_common_recvmsg, /* ok */ + .mmap = sock_no_mmap, + .sendpage = tcp_sendpage, |