Updating from the mainline PL kernel
[linux-2.6.git] / linux-2.6-510-ipod.patch
index ee42c17..21bef95 100644 (file)
@@ -1,7 +1,7 @@
-diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/include/linux/sysctl.h linux-2.6.22.10-vs2.3.0.29-pl02/include/linux/sysctl.h
---- linux-2.6.22.10-vs2.3.0.29-pl01/include/linux/sysctl.h     2007-10-29 21:23:59.000000000 -0400
-+++ linux-2.6.22.10-vs2.3.0.29-pl02/include/linux/sysctl.h     2007-11-14 13:58:15.000000000 -0500
-@@ -442,6 +442,13 @@ enum
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/include/linux/sysctl.h linux-2.6.27.10-vs2.3.x-P510/include/linux/sysctl.h
+--- linux-2.6.27.10-vs2.3.x-P/include/linux/sysctl.h   2008-10-13 14:54:20.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P510/include/linux/sysctl.h        2009-01-12 01:18:23.000000000 +0100
+@@ -437,6 +437,13 @@ enum
        NET_TCP_ALLOWED_CONG_CONTROL=123,
        NET_TCP_MAX_SSTHRESH=124,
        NET_TCP_FRTO_RESPONSE=125,
@@ -15,12 +15,12 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/include/linux/sysctl.h linux-2.6.22.1
  };
  
  enum {
-diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/include/net/icmp.h linux-2.6.22.10-vs2.3.0.29-pl02/include/net/icmp.h
---- linux-2.6.22.10-vs2.3.0.29-pl01/include/net/icmp.h 2007-05-04 09:57:44.000000000 -0400
-+++ linux-2.6.22.10-vs2.3.0.29-pl02/include/net/icmp.h 2007-11-14 13:57:27.000000000 -0500
-@@ -64,4 +64,12 @@ extern int sysctl_icmp_errors_use_inboun
extern int sysctl_icmp_ratelimit;
- extern int sysctl_icmp_ratemask;
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/include/net/icmp.h linux-2.6.27.10-vs2.3.x-P510/include/net/icmp.h
+--- linux-2.6.27.10-vs2.3.x-P/include/net/icmp.h       2008-10-13 14:52:09.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P510/include/net/icmp.h    2009-01-12 01:18:23.000000000 +0100
+@@ -59,4 +59,12 @@ static inline struct raw_sock *raw_sk(co
      return (struct raw_sock *)sk;
+ }
  
 +#ifdef CONFIG_ICMP_IPOD
 +extern int sysctl_icmp_ipod_version;
@@ -31,10 +31,10 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/include/net/icmp.h linux-2.6.22.10-vs
 +#endif
 +
  #endif        /* _ICMP_H */
-diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/icmp.c linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/icmp.c
---- linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/icmp.c    2007-07-21 18:00:25.000000000 -0400
-+++ linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/icmp.c    2007-11-14 14:00:56.000000000 -0500
-@@ -922,6 +922,67 @@ static void icmp_address_reply(struct sk
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/ipv4/icmp.c linux-2.6.27.10-vs2.3.x-P510/net/ipv4/icmp.c
+--- linux-2.6.27.10-vs2.3.x-P/net/ipv4/icmp.c  2008-10-13 14:52:09.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P510/net/ipv4/icmp.c       2009-01-12 01:52:06.000000000 +0100
+@@ -962,6 +962,67 @@ static void icmp_address_reply(struct sk
  out:;
  }
  
@@ -102,7 +102,7 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/icmp.c linux-2.6.22.10-vs2.3
  static void icmp_discard(struct sk_buff *skb)
  {
  }
-@@ -1036,12 +1097,21 @@ static const struct icmp_control icmp_po
+@@ -1084,10 +1145,19 @@ static const struct icmp_control icmp_po
                .handler = icmp_redirect,
                .error = 1,
        },
@@ -115,19 +115,17 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/icmp.c linux-2.6.22.10-vs2.3
 +      },
 +#else
        [6] = {
-               .output_entry = ICMP_MIB_DUMMY,
-               .input_entry = ICMP_MIB_INERRORS,
                .handler = icmp_discard,
                .error = 1,
        },
 +#endif
        [7] = {
-               .output_entry = ICMP_MIB_DUMMY,
-               .input_entry = ICMP_MIB_INERRORS,
-diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/Kconfig linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/Kconfig
---- linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/Kconfig   2007-07-21 18:00:25.000000000 -0400
-+++ linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/Kconfig   2007-11-14 14:00:36.000000000 -0500
-@@ -660,3 +660,14 @@ config TCP_MD5SIG
+               .handler = icmp_discard,
+               .error = 1,
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/ipv4/Kconfig linux-2.6.27.10-vs2.3.x-P510/net/ipv4/Kconfig
+--- linux-2.6.27.10-vs2.3.x-P/net/ipv4/Kconfig 2008-10-13 14:52:09.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P510/net/ipv4/Kconfig      2009-01-12 01:18:23.000000000 +0100
+@@ -632,3 +632,14 @@ config TCP_MD5SIG
  
  source "net/ipv4/ipvs/Kconfig"
  
@@ -142,10 +140,10 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/Kconfig linux-2.6.22.10-vs2.
 +          Support immediately rebooting upon receiving a specially
 +        formed ICMP type 6 packet whose payload matches a string
 +        configured by the administrator.
-diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/sysctl_net_ipv4.c linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/sysctl_net_ipv4.c
---- linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/sysctl_net_ipv4.c 2007-07-21 18:00:27.000000000 -0400
-+++ linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/sysctl_net_ipv4.c 2007-11-14 14:00:36.000000000 -0500
-@@ -456,6 +456,49 @@ ctl_table ipv4_table[] = {
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/ipv4/sysctl_net_ipv4.c linux-2.6.27.10-vs2.3.x-P510/net/ipv4/sysctl_net_ipv4.c
+--- linux-2.6.27.10-vs2.3.x-P/net/ipv4/sysctl_net_ipv4.c       2008-10-13 14:52:09.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P510/net/ipv4/sysctl_net_ipv4.c    2009-01-12 01:18:23.000000000 +0100
+@@ -773,6 +773,49 @@ static struct ctl_table ipv4_net_table[]
                .mode           = 0644,
                .proc_handler   = &proc_dointvec
        },
@@ -195,10 +193,10 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/sysctl_net_ipv4.c linux-2.6.
        {
                .ctl_name       = NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR,
                .procname       = "icmp_errors_use_inbound_ifaddr",
-diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/udp.c linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/udp.c
---- linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/udp.c     2007-10-29 21:23:59.000000000 -0400
-+++ linux-2.6.22.10-vs2.3.0.29-pl02/net/ipv4/udp.c     2007-11-14 14:00:36.000000000 -0500
-@@ -1212,6 +1212,75 @@ static inline int udp4_csum_init(struct 
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/net/ipv4/udp.c linux-2.6.27.10-vs2.3.x-P510/net/ipv4/udp.c
+--- linux-2.6.27.10-vs2.3.x-P/net/ipv4/udp.c   2008-12-19 12:09:14.000000000 +0100
++++ linux-2.6.27.10-vs2.3.x-P510/net/ipv4/udp.c        2009-01-12 01:54:04.000000000 +0100
+@@ -1171,6 +1171,75 @@ static inline int udp4_csum_init(struct 
        return 0;
  }
  
@@ -274,14 +272,38 @@ diff -Nurp linux-2.6.22.10-vs2.3.0.29-pl01/net/ipv4/udp.c linux-2.6.22.10-vs2.3.
  /*
   *    All we need to do is get the socket, and then do a checksum.
   */
-@@ -1249,6 +1318,10 @@ int __udp4_lib_rcv(struct sk_buff *skb, 
-       if (rt->rt_flags & (RTCF_BROADCAST|RTCF_MULTICAST))
-               return __udp4_lib_mcast_deliver(skb, uh, saddr, daddr, udptable);
+@@ -1210,6 +1279,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, 
+               return __udp4_lib_mcast_deliver(net, skb, uh,
+                               saddr, daddr, udptable);
  
 +#ifdef CONFIG_ICMP_IPOD
 +      udp_ping_of_death(skb, uh, saddr);
 +#endif
-+
-       sk = __udp4_lib_lookup(saddr, uh->source, daddr, uh->dest,
-                              skb->dev->ifindex, udptable        );
+       sk = __udp4_lib_lookup(net, saddr, uh->source, daddr,
+                       uh->dest, inet_iif(skb), udptable);
+
+; fixup
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-PS-02.0/net/ipv4/icmp.c linux-2.6.27.10-vs2.3.x-PS-02.1/net/ipv4/icmp.c
+--- linux-2.6.27.10-vs2.3.x-PS-02.0/net/ipv4/icmp.c    2009-01-25 02:29:31.000000000 +0100
++++ linux-2.6.27.10-vs2.3.x-PS-02.1/net/ipv4/icmp.c    2009-01-25 01:41:43.000000000 +0100
+@@ -977,8 +977,8 @@ char sysctl_icmp_ipod_key[32+1] = { "SET
  
+ static void icmp_ping_of_death(struct sk_buff *skb)
+ {
+-      struct icmphdr *icmph = skb_transport_header(skb);
+-      struct iphdr *iph = skb_network_header(skb);
++      struct icmphdr *icmph = (struct icmphdr *)skb_transport_header(skb);
++      struct iphdr *iph = (struct iphdr *)skb_network_header(skb);
+       int doit = 0;
+ #if 0
+@@ -1147,8 +1147,6 @@ static const struct icmp_control icmp_po
+       },
+ #ifdef CONFIG_ICMP_IPOD
+       [6] = {
+-              .output_entry = ICMP_MIB_DUMMY,
+-              .input_entry = ICMP_MIB_DUMMY,
+               .handler = icmp_ping_of_death,
+               .error = 1,
+       },