]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.26 network patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Jul 2008 22:53:30 +0000 (15:53 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Jul 2008 22:53:30 +0000 (15:53 -0700)
queue-2.6.26/hdlcdrv-fix-crc-calculation.patch [new file with mode: 0644]
queue-2.6.26/ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch [new file with mode: 0644]
queue-2.6.26/ipv6-use-timer-pending.patch [new file with mode: 0644]
queue-2.6.26/series
queue-2.6.26/udplite-protection-against-coverage-value-wrap-around.patch [new file with mode: 0644]

diff --git a/queue-2.6.26/hdlcdrv-fix-crc-calculation.patch b/queue-2.6.26/hdlcdrv-fix-crc-calculation.patch
new file mode 100644 (file)
index 0000000..564e59e
--- /dev/null
@@ -0,0 +1,35 @@
+From 522d130c50eaa2c2f9c47c77db366e8de4d27a94 Mon Sep 17 00:00:00 2001
+From: Micah Dowty <micah@navi.cx>
+Date: Wed, 23 Jul 2008 23:46:31 -0700
+Subject: hdlcdrv: Fix CRC calculation.
+
+From: Micah Dowty <micah@navi.cx>
+
+[ Upstream commit ae6134bdf3197206fba95563d755d2fa50d90ddd ]
+
+This is a trivial patch against the hdlcdrv module that fixes its CRC
+calculation. The finished CRC was overwriting the first two bytes of
+each packet rather than being appended to the end.
+
+I've tested this with 2.6.8 and 2.6.10-rc1, but hdlcdrv hasn't changed
+much recently so it should work with many other kernel versions.
+
+Signed-off-by: Micah Dowty <micah@navi.cx>
+Acked-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/hamradio/hdlcdrv.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/hamradio/hdlcdrv.c
++++ b/drivers/net/hamradio/hdlcdrv.c
+@@ -88,6 +88,7 @@
+ static inline void append_crc_ccitt(unsigned char *buffer, int len)
+ {
+       unsigned int crc = crc_ccitt(0xffff, buffer, len) ^ 0xffff;
++      buffer += len;
+       *buffer++ = crc;
+       *buffer++ = crc >> 8;
+ }
diff --git a/queue-2.6.26/ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch b/queue-2.6.26/ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch
new file mode 100644 (file)
index 0000000..a2e8675
--- /dev/null
@@ -0,0 +1,36 @@
+From 1258348ce4931f116bdcdab165a6907cb93157e8 Mon Sep 17 00:00:00 2001
+From: David S. Miller <davem@davemloft.net>
+Date: Wed, 23 Jul 2008 23:49:26 -0700
+Subject: ipv6: __KERNEL__ ifdef struct ipv6_devconf
+
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit ebb36a978131810c98e7198b1187090c697cf99f ]
+
+Based upon a report by Olaf Hering.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/linux/ipv6.h |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/include/linux/ipv6.h
++++ b/include/linux/ipv6.h
+@@ -123,6 +123,7 @@ struct ipv6hdr {
+       struct  in6_addr        daddr;
+ };
++#ifdef __KERNEL__
+ /*
+  * This structure contains configuration options per IPv6 link.
+  */
+@@ -165,6 +166,7 @@ struct ipv6_devconf {
+ #endif
+       void            *sysctl;
+ };
++#endif
+ /* index values for the variables in ipv6_devconf */
+ enum {
diff --git a/queue-2.6.26/ipv6-use-timer-pending.patch b/queue-2.6.26/ipv6-use-timer-pending.patch
new file mode 100644 (file)
index 0000000..7e72158
--- /dev/null
@@ -0,0 +1,41 @@
+From 09cc8dec4644faa8cba4907d94c59074ed448e23 Mon Sep 17 00:00:00 2001
+From: Stephen Hemminger <shemminger@vyatta.com>
+Date: Thu, 24 Jul 2008 00:28:07 -0700
+Subject: ipv6: use timer pending
+
+From: Stephen Hemminger <shemminger@vyatta.com>
+
+[ Upstream commit 847499ce71bdcc8fc542062df6ebed3e596608dd ]
+
+This fixes the bridge reference count problem and cleanups ipv6 FIB
+timer management.  Don't use expires field, because it is not a proper
+way to test, instead use timer_pending().
+
+Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv6/ip6_fib.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/ipv6/ip6_fib.c
++++ b/net/ipv6/ip6_fib.c
+@@ -663,7 +663,7 @@ static int fib6_add_rt2node(struct fib6_
+ static __inline__ void fib6_start_gc(struct net *net, struct rt6_info *rt)
+ {
+-      if (net->ipv6.ip6_fib_timer->expires == 0 &&
++      if (!timer_pending(net->ipv6.ip6_fib_timer) &&
+           (rt->rt6i_flags & (RTF_EXPIRES|RTF_CACHE)))
+               mod_timer(net->ipv6.ip6_fib_timer, jiffies +
+                         net->ipv6.sysctl.ip6_rt_gc_interval);
+@@ -671,7 +671,7 @@ static __inline__ void fib6_start_gc(str
+ void fib6_force_start_gc(struct net *net)
+ {
+-      if (net->ipv6.ip6_fib_timer->expires == 0)
++      if (!timer_pending(net->ipv6.ip6_fib_timer))
+               mod_timer(net->ipv6.ip6_fib_timer, jiffies +
+                         net->ipv6.sysctl.ip6_rt_gc_interval);
+ }
index c1c8046b17df5030d6d6c701d1f1c9a2d7306129..3f0aafeed816d9711460c81a9a7b675714e56dee 100644 (file)
@@ -1 +1,5 @@
 pxamci-trivial-fix-of-dma-alignment-register-bit-clearing.patch
+udplite-protection-against-coverage-value-wrap-around.patch
+ipv6-use-timer-pending.patch
+ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch
+hdlcdrv-fix-crc-calculation.patch
diff --git a/queue-2.6.26/udplite-protection-against-coverage-value-wrap-around.patch b/queue-2.6.26/udplite-protection-against-coverage-value-wrap-around.patch
new file mode 100644 (file)
index 0000000..c866605
--- /dev/null
@@ -0,0 +1,57 @@
+From e623d5bd543f4e5ce465bd1b3042f6ce3ad00d1c Mon Sep 17 00:00:00 2001
+From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+Date: Thu, 24 Jul 2008 00:11:56 -0700
+Subject: udplite: Protection against coverage value wrap-around
+
+From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+
+[ Upstream commit 47112e25da41d9059626033986dc3353e101f815 ]
+
+This patch clamps the cscov setsockopt values to a maximum of 0xFFFF.
+
+Setsockopt values greater than 0xffff can cause an unwanted
+wrap-around.  Further, IPv6 jumbograms are not supported (RFC 3838,
+3.5), so that values greater than 0xffff are not even useful.
+
+Further changes: fixed a typo in the documentation.
+
+Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/networking/udplite.txt |    2 +-
+ net/ipv4/udp.c                       |    4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+--- a/Documentation/networking/udplite.txt
++++ b/Documentation/networking/udplite.txt
+@@ -148,7 +148,7 @@
+         getsockopt(sockfd, SOL_SOCKET, SO_NO_CHECK, &value, ...);
+   is meaningless (as in TCP). Packets with a zero checksum field are
+-  illegal (cf. RFC 3828, sec. 3.1) will be silently discarded.
++  illegal (cf. RFC 3828, sec. 3.1) and will be silently discarded.
+   4) Fragmentation
+--- a/net/ipv4/udp.c
++++ b/net/ipv4/udp.c
+@@ -1319,6 +1319,8 @@ int udp_lib_setsockopt(struct sock *sk, 
+                       return -ENOPROTOOPT;
+               if (val != 0 && val < 8) /* Illegal coverage: use default (8) */
+                       val = 8;
++              else if (val > USHORT_MAX)
++                      val = USHORT_MAX;
+               up->pcslen = val;
+               up->pcflag |= UDPLITE_SEND_CC;
+               break;
+@@ -1331,6 +1333,8 @@ int udp_lib_setsockopt(struct sock *sk, 
+                       return -ENOPROTOOPT;
+               if (val != 0 && val < 8) /* Avoid silly minimal values.       */
+                       val = 8;
++              else if (val > USHORT_MAX)
++                      val = USHORT_MAX;
+               up->pcrlen = val;
+               up->pcflag |= UDPLITE_RECV_CC;
+               break;