kernel: update 3.10 to 3.10.28
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39399
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/Kconfig
|
||||
+++ b/drivers/mtd/Kconfig
|
||||
@@ -208,6 +208,22 @@ config MTD_BCM47XX_PARTS
|
||||
@@ -212,6 +212,22 @@ config MTD_BCM47XX_PARTS
|
||||
This provides partitions parser for devices based on BCM47xx
|
||||
boards.
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
config MTD_BLKDEVS
|
||||
--- a/drivers/mtd/Makefile
|
||||
+++ b/drivers/mtd/Makefile
|
||||
@@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||||
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||||
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
||||
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
||||
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
||||
|
||||
@@ -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
|
||||
@@ -1382,6 +1382,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1403,6 +1403,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
|
||||
@@ -1389,6 +1390,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1410,6 +1411,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
|
||||
@@ -1401,7 +1403,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1422,7 +1424,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)))
|
||||
@@ -1608,12 +1610,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
@@ -1629,12 +1631,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;
|
||||
|
||||
@@ -1726,12 +1728,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
@@ -1747,12 +1749,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
struct timespec ts;
|
||||
__u32 ts_status;
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -2627,6 +2629,7 @@ static int packet_create(struct net *net
|
||||
@@ -2641,6 +2643,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;
|
||||
@@ -3237,6 +3240,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -3251,6 +3254,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;
|
||||
}
|
||||
@@ -3288,6 +3301,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -3302,6 +3315,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR:
|
||||
val = po->has_vnet_hdr;
|
||||
break;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -1844,7 +1844,7 @@ static inline int pskb_network_may_pull(
|
||||
@@ -1849,7 +1849,7 @@ static inline int pskb_network_may_pull(
|
||||
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
||||
*/
|
||||
#ifndef NET_SKB_PAD
|
||||
|
||||
@@ -14,7 +14,7 @@ when needed.
|
||||
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -1889,6 +1889,24 @@ static inline void pskb_trim_unique(stru
|
||||
@@ -1894,6 +1894,24 @@ static inline void pskb_trim_unique(stru
|
||||
BUG_ON(err);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
return -EINVAL;
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -251,6 +251,24 @@ static const struct rt6_info ip6_prohibi
|
||||
@@ -250,6 +250,24 @@ static const struct rt6_info ip6_prohibi
|
||||
.rt6i_ref = ATOMIC_INIT(1),
|
||||
};
|
||||
|
||||
@@ -127,17 +127,19 @@
|
||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__refcnt = ATOMIC_INIT(1),
|
||||
@@ -1511,6 +1529,9 @@ int ip6_route_add(struct fib6_config *cf
|
||||
case RTN_THROW:
|
||||
rt->dst.error = -EAGAIN;
|
||||
@@ -1509,6 +1527,11 @@ int ip6_route_add(struct fib6_config *cf
|
||||
rt->dst.output = ip6_pkt_prohibit_out;
|
||||
rt->dst.input = ip6_pkt_prohibit;
|
||||
break;
|
||||
+ case RTN_FAILED_POLICY:
|
||||
+ rt->dst.error = -EPERM;
|
||||
+ rt->dst.output = ip6_pkt_failed_policy_out;
|
||||
+ rt->dst.input = ip6_pkt_failed_policy;
|
||||
+ break;
|
||||
case RTN_THROW:
|
||||
default:
|
||||
rt->dst.error = -ENETUNREACH;
|
||||
break;
|
||||
@@ -2090,6 +2111,17 @@ static int ip6_pkt_prohibit_out(struct s
|
||||
rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN
|
||||
@@ -2088,6 +2111,17 @@ static int ip6_pkt_prohibit_out(struct s
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
@@ -152,10 +154,10 @@
|
||||
+ return ip6_pkt_drop(skb, ICMPV6_POLICY_FAIL, IPSTATS_MIB_OUTNOROUTES);
|
||||
+}
|
||||
+
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -2296,7 +2328,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -2290,7 +2324,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 ||
|
||||
@@ -165,7 +167,7 @@
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -2498,6 +2531,9 @@ static int rt6_fill_node(struct net *net
|
||||
@@ -2492,6 +2527,9 @@ static int rt6_fill_node(struct net *net
|
||||
case -EACCES:
|
||||
rtm->rtm_type = RTN_PROHIBIT;
|
||||
break;
|
||||
@@ -175,7 +177,7 @@
|
||||
case -EAGAIN:
|
||||
rtm->rtm_type = RTN_THROW;
|
||||
break;
|
||||
@@ -2748,6 +2784,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -2742,6 +2780,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);
|
||||
@@ -184,7 +186,7 @@
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -3008,6 +3046,17 @@ static int __net_init ip6_route_net_init
|
||||
@@ -3002,6 +3042,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);
|
||||
@@ -202,7 +204,7 @@
|
||||
#endif
|
||||
|
||||
net->ipv6.sysctl.flush_delay = 0;
|
||||
@@ -3026,6 +3075,8 @@ out:
|
||||
@@ -3020,6 +3071,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@@ -211,7 +213,7 @@
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -3043,6 +3094,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -3037,6 +3090,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);
|
||||
@@ -219,7 +221,7 @@
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
}
|
||||
@@ -3139,6 +3191,9 @@ int __init ip6_route_init(void)
|
||||
@@ -3133,6 +3187,9 @@ int __init ip6_route_init(void)
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#define IF_GET_IFACE 0x0001 /* for querying only */
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -1874,6 +1874,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
@@ -1879,6 +1879,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
/**
|
||||
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
||||
* @skb: buffer to alter
|
||||
@@ -1998,16 +2002,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
@@ -2003,16 +2007,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user