aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2013-06-30 13:10:12 +0000
committerJonas Gorski <jogo@openwrt.org>2013-06-30 13:10:12 +0000
commit0d9f760f272f3ccb3abcaca8e678734b666e234c (patch)
tree14237dc1b483b6fefbf696164b80f594e9826e49 /target/linux/generic
parent6a4e78dca6ecd4325504f0a74cd1816275157eea (diff)
downloadupstream-0d9f760f272f3ccb3abcaca8e678734b666e234c.tar.gz
upstream-0d9f760f272f3ccb3abcaca8e678734b666e234c.tar.bz2
upstream-0d9f760f272f3ccb3abcaca8e678734b666e234c.zip
kernel: update linux 3.9 to 3.9.8
Includes memory allocation fixes as well as several networking fixes. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 37103
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/patches-3.9/220-gc_sections.patch2
-rw-r--r--target/linux/generic/patches-3.9/630-packet_socket_type.patch16
-rw-r--r--target/linux/generic/patches-3.9/643-bridge_remove_ipv6_dependency.patch4
-rw-r--r--target/linux/generic/patches-3.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch50
-rw-r--r--target/linux/generic/patches-3.9/800-usb-ohci-multiple-platform-driver-fix.patch8
-rw-r--r--target/linux/generic/patches-3.9/902-debloat_proc.patch4
6 files changed, 31 insertions, 53 deletions
diff --git a/target/linux/generic/patches-3.9/220-gc_sections.patch b/target/linux/generic/patches-3.9/220-gc_sections.patch
index 59bdac50b9..4150d7ceaa 100644
--- a/target/linux/generic/patches-3.9/220-gc_sections.patch
+++ b/target/linux/generic/patches-3.9/220-gc_sections.patch
@@ -513,4 +513,4 @@
+KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
ccflags-y := -fpic -mno-single-pic-base -fno-builtin -I$(obj)
- asflags-y := -Wa,-march=all -DZIMAGE
+ asflags-y := -DZIMAGE
diff --git a/target/linux/generic/patches-3.9/630-packet_socket_type.patch b/target/linux/generic/patches-3.9/630-packet_socket_type.patch
index 394eb2f50d..9b700f5150 100644
--- a/target/linux/generic/patches-3.9/630-packet_socket_type.patch
+++ b/target/linux/generic/patches-3.9/630-packet_socket_type.patch
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1266,6 +1266,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1267,6 +1267,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
/*
* When we registered the protocol we saved the socket in the data
-@@ -1273,6 +1274,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1274,6 +1275,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
/*
* Yank back the headers [hope the device set this
-@@ -1285,7 +1287,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1286,7 +1288,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1491,12 +1493,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -1498,12 +1500,12 @@ static int packet_rcv(struct sk_buff *sk
int skb_len = skb->len;
unsigned int snaplen, res;
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -1615,12 +1617,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -1622,12 +1624,12 @@ static int tpacket_rcv(struct sk_buff *s
struct timespec ts;
struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb);
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2532,6 +2534,7 @@ static int packet_create(struct net *net
+@@ -2553,6 +2555,7 @@ static int packet_create(struct net *net
spin_lock_init(&po->bind_lock);
mutex_init(&po->pg_vec_lock);
po->prot_hook.func = packet_rcv;
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3145,6 +3148,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3165,6 +3168,16 @@ packet_setsockopt(struct socket *sock, i
po->tp_tx_has_off = !!val;
return 0;
}
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
default:
return -ENOPROTOOPT;
}
-@@ -3199,6 +3212,13 @@ static int packet_getsockopt(struct sock
+@@ -3219,6 +3232,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
diff --git a/target/linux/generic/patches-3.9/643-bridge_remove_ipv6_dependency.patch b/target/linux/generic/patches-3.9/643-bridge_remove_ipv6_dependency.patch
index 428713b530..c42c57ccf7 100644
--- a/target/linux/generic/patches-3.9/643-bridge_remove_ipv6_dependency.patch
+++ b/target/linux/generic/patches-3.9/643-bridge_remove_ipv6_dependency.patch
@@ -49,7 +49,7 @@
int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
unsigned char banned_flags)
-@@ -4947,6 +4946,9 @@ int __init addrconf_init(void)
+@@ -4949,6 +4948,9 @@ int __init addrconf_init(void)
ipv6_addr_label_rtnl_register();
@@ -59,7 +59,7 @@
return 0;
errout:
rtnl_af_unregister(&inet6_ops);
-@@ -4965,6 +4967,9 @@ void addrconf_cleanup(void)
+@@ -4967,6 +4969,9 @@ void addrconf_cleanup(void)
struct net_device *dev;
int i;
diff --git a/target/linux/generic/patches-3.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-3.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 254ab670f9..60448e2ac4 100644
--- a/target/linux/generic/patches-3.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/patches-3.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -1,5 +1,3 @@
-diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
-index 005e2c2..a6a1df4 100644
--- a/include/net/netns/ipv6.h
+++ b/include/net/netns/ipv6.h
@@ -55,6 +55,7 @@ struct netns_ipv6 {
@@ -10,8 +8,6 @@ index 005e2c2..a6a1df4 100644
struct rt6_info *ip6_blk_hole_entry;
struct fib6_table *fib6_local_tbl;
struct fib_rules_ops *fib6_rules_ops;
-diff --git a/include/uapi/linux/fib_rules.h b/include/uapi/linux/fib_rules.h
-index 51da65b..1429852 100644
--- a/include/uapi/linux/fib_rules.h
+++ b/include/uapi/linux/fib_rules.h
@@ -64,6 +64,10 @@ enum {
@@ -25,8 +21,6 @@ index 51da65b..1429852 100644
__FR_ACT_MAX,
};
-diff --git a/include/uapi/linux/icmpv6.h b/include/uapi/linux/icmpv6.h
-index e0133c7..dabfa1a 100644
--- a/include/uapi/linux/icmpv6.h
+++ b/include/uapi/linux/icmpv6.h
@@ -115,6 +115,7 @@ struct icmp6hdr {
@@ -37,8 +31,6 @@ index e0133c7..dabfa1a 100644
/*
* Codes for Time Exceeded
-diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
-index 7a2144e..8f643f1 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -203,6 +203,7 @@ enum {
@@ -49,11 +41,9 @@ index 7a2144e..8f643f1 100644
__RTN_MAX
};
-diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c
-index 26aa65d..2f66341 100644
--- a/net/ipv4/fib_rules.c
+++ b/net/ipv4/fib_rules.c
-@@ -84,6 +84,10 @@ static int fib4_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -84,6 +84,10 @@ static int fib4_rule_action(struct fib_r
err = -EACCES;
goto errout;
@@ -64,11 +54,9 @@ index 26aa65d..2f66341 100644
case FR_ACT_BLACKHOLE:
default:
err = -EINVAL;
-diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 8f6cb7a..dbae75d 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
-@@ -138,6 +138,10 @@ const struct fib_prop fib_props[RTN_MAX + 1] = {
+@@ -138,6 +138,10 @@ const struct fib_prop fib_props[RTN_MAX
.error = -EINVAL,
.scope = RT_SCOPE_NOWHERE,
},
@@ -79,11 +67,9 @@ index 8f6cb7a..dbae75d 100644
};
static void rt_fibinfo_free(struct rtable __rcu **rtp)
-diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
-index 49616fe..e2845bd 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2343,6 +2343,7 @@ static const char *const rtn_type_names[__RTN_MAX] = {
+@@ -2343,6 +2343,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW",
[RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE",
@@ -91,11 +77,9 @@ index 49616fe..e2845bd 100644
};
static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
-diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
-index df97f0a..2bd33cc 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
-@@ -181,6 +181,7 @@ static int ipmr_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -181,6 +181,7 @@ static int ipmr_rule_action(struct fib_r
case FR_ACT_UNREACHABLE:
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
@@ -103,11 +87,9 @@ index df97f0a..2bd33cc 100644
return -EACCES;
case FR_ACT_BLACKHOLE:
default:
-diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c
-index 2e1a432..c4413b2 100644
--- a/net/ipv6/fib6_rules.c
+++ b/net/ipv6/fib6_rules.c
-@@ -69,6 +69,9 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -69,6 +69,9 @@ static int fib6_rule_action(struct fib_r
case FR_ACT_PROHIBIT:
rt = net->ipv6.ip6_prohibit_entry;
goto discard_pkt;
@@ -117,11 +99,9 @@ index 2e1a432..c4413b2 100644
}
table = fib6_get_table(net, rule->table);
-diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
-index 583e8d4..1e524da 100644
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
-@@ -166,6 +166,8 @@ static int ip6mr_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -166,6 +166,8 @@ static int ip6mr_rule_action(struct fib_
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
return -EACCES;
@@ -130,11 +110,9 @@ index 583e8d4..1e524da 100644
case FR_ACT_BLACKHOLE:
default:
return -EINVAL;
-diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 2b87418..864f5fe 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
-@@ -245,6 +245,24 @@ static const struct rt6_info ip6_prohibit_entry_template = {
+@@ -245,6 +245,24 @@ static const struct rt6_info ip6_prohibi
.rt6i_ref = ATOMIC_INIT(1),
};
@@ -159,7 +137,7 @@ index 2b87418..864f5fe 100644
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -1459,6 +1477,9 @@ int ip6_route_add(struct fib6_config *cfg)
+@@ -1459,6 +1477,9 @@ int ip6_route_add(struct fib6_config *cf
case RTN_THROW:
rt->dst.error = -EAGAIN;
break;
@@ -169,7 +147,7 @@ index 2b87418..864f5fe 100644
default:
rt->dst.error = -ENETUNREACH;
break;
-@@ -2035,6 +2056,17 @@ static int ip6_pkt_prohibit_out(struct sk_buff *skb)
+@@ -2035,6 +2056,17 @@ static int ip6_pkt_prohibit_out(struct s
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
@@ -187,7 +165,7 @@ index 2b87418..864f5fe 100644
#endif
/*
-@@ -2240,7 +2272,8 @@ static int rtm_to_fib6_config(struct sk_buff *skb, struct nlmsghdr *nlh,
+@@ -2240,7 +2272,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
@@ -197,7 +175,7 @@ index 2b87418..864f5fe 100644
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -2442,6 +2475,9 @@ static int rt6_fill_node(struct net *net,
+@@ -2442,6 +2475,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
@@ -207,7 +185,7 @@ index 2b87418..864f5fe 100644
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -2692,6 +2728,8 @@ static int ip6_route_dev_notify(struct notifier_block *this,
+@@ -2692,6 +2728,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -216,7 +194,7 @@ index 2b87418..864f5fe 100644
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -2952,6 +2990,17 @@ static int __net_init ip6_route_net_init(struct net *net)
+@@ -2952,6 +2990,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
@@ -243,7 +221,7 @@ index 2b87418..864f5fe 100644
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -2987,6 +3038,7 @@ static void __net_exit ip6_route_net_exit(struct net *net)
+@@ -2987,6 +3038,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
diff --git a/target/linux/generic/patches-3.9/800-usb-ohci-multiple-platform-driver-fix.patch b/target/linux/generic/patches-3.9/800-usb-ohci-multiple-platform-driver-fix.patch
index d691c5156a..95e9b6a028 100644
--- a/target/linux/generic/patches-3.9/800-usb-ohci-multiple-platform-driver-fix.patch
+++ b/target/linux/generic/patches-3.9/800-usb-ohci-multiple-platform-driver-fix.patch
@@ -1,6 +1,6 @@
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
-@@ -1188,7 +1188,7 @@ MODULE_LICENSE ("GPL");
+@@ -1192,7 +1192,7 @@ MODULE_LICENSE ("GPL");
#ifdef CONFIG_USB_OHCI_HCD_PLATFORM
#include "ohci-platform.c"
@@ -9,7 +9,7 @@
#endif
#if !defined(PCI_DRIVER) && \
-@@ -1199,7 +1199,8 @@ MODULE_LICENSE ("GPL");
+@@ -1203,7 +1203,8 @@ MODULE_LICENSE ("GPL");
!defined(SA1111_DRIVER) && \
!defined(PS3_SYSTEM_BUS_DRIVER) && \
!defined(SM501_OHCI_DRIVER) && \
@@ -19,7 +19,7 @@
#error "missing bus glue for ohci-hcd"
#endif
-@@ -1277,9 +1278,19 @@ static int __init ohci_hcd_mod_init(void
+@@ -1281,9 +1282,19 @@ static int __init ohci_hcd_mod_init(void
goto error_tmio;
#endif
@@ -39,7 +39,7 @@
#ifdef TMIO_OHCI_DRIVER
platform_driver_unregister(&TMIO_OHCI_DRIVER);
error_tmio:
-@@ -1329,6 +1340,9 @@ module_init(ohci_hcd_mod_init);
+@@ -1333,6 +1344,9 @@ module_init(ohci_hcd_mod_init);
static void __exit ohci_hcd_mod_exit(void)
{
diff --git a/target/linux/generic/patches-3.9/902-debloat_proc.patch b/target/linux/generic/patches-3.9/902-debloat_proc.patch
index 948b73d0ef..bae40afde3 100644
--- a/target/linux/generic/patches-3.9/902-debloat_proc.patch
+++ b/target/linux/generic/patches-3.9/902-debloat_proc.patch
@@ -184,7 +184,7 @@
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2598,10 +2598,12 @@ static const struct file_operations fib_
+@@ -2599,10 +2599,12 @@ static const struct file_operations fib_
int __net_init fib_proc_init(struct net *net)
{
@@ -199,7 +199,7 @@
&fib_triestat_fops))
goto out2;
-@@ -2611,17 +2613,21 @@ int __net_init fib_proc_init(struct net
+@@ -2612,17 +2614,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3: