ifeq ($(LINUX_VERSION),3.9.11)
LINUX_KERNEL_MD5SUM:=edbf88eb7f7d34dbd5d3887726790755
endif
-ifeq ($(LINUX_VERSION),3.10.21)
- LINUX_KERNEL_MD5SUM:=dc5f31aef4aac0cc271e7ecf1a4b485d
+ifeq ($(LINUX_VERSION),3.10.24)
+ LINUX_KERNEL_MD5SUM:=4b1270dda167a0ee8bead2681e0a9965
endif
ifeq ($(LINUX_VERSION),3.12.5)
LINUX_KERNEL_MD5SUM:=5b5330f657f562f7bef6da100a7133b1
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
SUBTARGETS:=generic ac49x
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_TYPE=34kc
SUBTARGETS:=generic nand mikrotik
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
&sin->sin6_addr);
sin->sin6_scope_id = 0;
}
-@@ -687,12 +687,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -691,12 +691,12 @@ int ip6_datagram_send_ctl(struct net *ne
}
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
FEATURES:=squashfs
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
CPU_TYPE:=cortex-a9
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_TYPE:=arm1176jzf-s
CPU_SUBTYPE:=vfp
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += brcm2708-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
-@@ -1294,7 +1294,7 @@ static void mmc_blk_rw_rq_prep(struct mm
+@@ -1333,7 +1333,7 @@ static void mmc_blk_rw_rq_prep(struct mm
brq->data.blocks = 1;
}
FEATURES:=squashfs usb pcmcia
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += swconfig kmod-diag wpad-mini nvram
BOARDNAME:=Broadcom BCM63xx
SUBTARGETS:=generic smp
FEATURES:=squashfs usb atm pci pcmcia
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
include $(INCLUDE_DIR)/target.mk
FEATURES:=squashfs
CPU_TYPE:=fa526
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
+++ /dev/null
-From 98e09386c0ef4dfd48af7ba60ff908f0d525cdee Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 13 Nov 2013 14:32:54 +0000
-Subject: tcp: tsq: restore minimal amount of queueing
-
-After commit c9eeec26e32e ("tcp: TSQ can use a dynamic limit"), several
-users reported throughput regressions, notably on mvneta and wifi
-adapters.
-
-802.11 AMPDU requires a fair amount of queueing to be effective.
-
-This patch partially reverts the change done in tcp_write_xmit()
-so that the minimal amount is sysctl_tcp_limit_output_bytes.
-
-It also remove the use of this sysctl while building skb stored
-in write queue, as TSO autosizing does the right thing anyway.
-
-Users with well behaving NICS and correct qdisc (like sch_fq),
-can then lower the default sysctl_tcp_limit_output_bytes value from
-128KB to 8KB.
-
-This new usage of sysctl_tcp_limit_output_bytes permits each driver
-authors to check how their driver performs when/if the value is set
-to a minimum of 4KB.
-
-Normally, line rate for a single TCP flow should be possible,
-but some drivers rely on timers to perform TX completion and
-too long TX completion delays prevent reaching full throughput.
-
-Fixes: c9eeec26e32e ("tcp: TSQ can use a dynamic limit")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Reported-by: Sujith Manoharan <sujith@msujith.org>
-Reported-by: Arnaud Ebalard <arno@natisbad.org>
-Tested-by: Sujith Manoharan <sujith@msujith.org>
-Cc: Felix Fietkau <nbd@openwrt.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
---- a/Documentation/networking/ip-sysctl.txt
-+++ b/Documentation/networking/ip-sysctl.txt
-@@ -571,9 +571,6 @@ tcp_limit_output_bytes - INTEGER
- typical pfifo_fast qdiscs.
- tcp_limit_output_bytes limits the number of bytes on qdisc
- or device to reduce artificial RTT/cwnd and reduce bufferbloat.
-- Note: For GSO/TSO enabled flows, we try to have at least two
-- packets in flight. Reducing tcp_limit_output_bytes might also
-- reduce the size of individual GSO packet (64KB being the max)
- Default: 131072
-
- tcp_challenge_ack_limit - INTEGER
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -807,12 +807,6 @@ static unsigned int tcp_xmit_size_goal(s
- xmit_size_goal = min_t(u32, gso_size,
- sk->sk_gso_max_size - 1 - hlen);
-
-- /* TSQ : try to have at least two segments in flight
-- * (one in NIC TX ring, another in Qdisc)
-- */
-- xmit_size_goal = min_t(u32, xmit_size_goal,
-- sysctl_tcp_limit_output_bytes >> 1);
--
- xmit_size_goal = tcp_bound_to_half_wnd(tp, xmit_size_goal);
-
- /* We try hard to avoid divides here */
---- a/net/ipv4/tcp_output.c
-+++ b/net/ipv4/tcp_output.c
-@@ -1866,8 +1866,12 @@ static bool tcp_write_xmit(struct sock *
- * - better RTT estimation and ACK scheduling
- * - faster recovery
- * - high rates
-+ * Alas, some drivers / subsystems require a fair amount
-+ * of queued bytes to ensure line rate.
-+ * One example is wifi aggregation (802.11 AMPDU)
- */
-- limit = max(skb->truesize, sk->sk_pacing_rate >> 10);
-+ limit = max_t(unsigned int, sysctl_tcp_limit_output_bytes,
-+ sk->sk_pacing_rate >> 10);
-
- if (atomic_read(&sk->sk_wmem_alloc) > limit) {
- set_bit(TSQ_THROTTLED, &tp->tsq_flags);
/**
* sb_permission - Check superblock-level permissions
-@@ -2867,9 +2868,12 @@ finish_open_created:
+@@ -2868,9 +2869,12 @@ finish_open_created:
error = may_open(&nd->path, acc_mode, open_flag);
if (error)
goto out;
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1375,6 +1375,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1382,6 +1382,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
/*
* When we registered the protocol we saved the socket in the data
-@@ -1382,6 +1383,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1389,6 +1390,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -1394,7 +1396,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1401,7 +1403,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1601,12 +1603,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -1608,12 +1610,12 @@ static int packet_rcv(struct sk_buff *sk
int skb_len = skb->len;
unsigned int snaplen, res;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -1719,12 +1721,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -1726,12 +1728,12 @@ static int tpacket_rcv(struct sk_buff *s
struct timespec ts;
__u32 ts_status;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2614,6 +2616,7 @@ static int packet_create(struct net *net
+@@ -2627,6 +2629,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;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3226,6 +3229,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3237,6 +3240,16 @@ packet_setsockopt(struct socket *sock, i
po->tp_tx_has_off = !!val;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -3277,6 +3290,13 @@ static int packet_getsockopt(struct sock
+@@ -3288,6 +3301,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
break;
--- a/net/packet/internal.h
+++ b/net/packet/internal.h
-@@ -114,6 +114,7 @@ struct packet_sock {
- unsigned int tp_tx_has_off:1;
+@@ -115,6 +115,7 @@ struct packet_sock {
unsigned int tp_tstamp;
+ struct net_device __rcu *cached_dev;
struct packet_type prot_hook ____cacheline_aligned_in_smp;
+ unsigned int pkt_type;
};
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1853,7 +1853,7 @@ static inline int pskb_network_may_pull(
+@@ -1844,7 +1844,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
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1898,6 +1898,24 @@ static inline void pskb_trim_unique(stru
+@@ -1889,6 +1889,24 @@ static inline void pskb_trim_unique(stru
BUG_ON(err);
}
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -1508,6 +1526,9 @@ int ip6_route_add(struct fib6_config *cf
+@@ -1511,6 +1529,9 @@ int ip6_route_add(struct fib6_config *cf
case RTN_THROW:
rt->dst.error = -EAGAIN;
break;
default:
rt->dst.error = -ENETUNREACH;
break;
-@@ -2087,6 +2108,17 @@ static int ip6_pkt_prohibit_out(struct s
+@@ -2090,6 +2111,17 @@ static int ip6_pkt_prohibit_out(struct s
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
#endif
/*
-@@ -2293,7 +2325,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2296,7 +2328,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 ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -2495,6 +2528,9 @@ static int rt6_fill_node(struct net *net
+@@ -2498,6 +2531,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -2745,6 +2781,8 @@ static int ip6_route_dev_notify(struct n
+@@ -2748,6 +2784,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);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -3005,6 +3043,17 @@ static int __net_init ip6_route_net_init
+@@ -3008,6 +3046,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);
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -3023,6 +3072,8 @@ out:
+@@ -3026,6 +3075,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -3040,6 +3091,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3043,6 +3094,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);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -3136,6 +3188,9 @@ int __init ip6_route_init(void)
+@@ -3139,6 +3191,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);
#define IF_GET_IFACE 0x0001 /* for querying only */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1883,6 +1883,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -1874,6 +1874,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2007,16 +2011,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -1998,16 +2002,6 @@ static inline struct sk_buff *dev_alloc_
}
}
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
-@@ -1241,10 +1241,12 @@ static int __init setup_vmstat(void)
+@@ -1242,10 +1242,12 @@ static int __init setup_vmstat(void)
start_cpu_timer(cpu);
#endif
#ifdef CONFIG_PROC_FS
" key shmid perms size cpid lpid nattch uid gid cuid cgid atime dtime ctime rss swap\n",
--- a/ipc/util.c
+++ b/ipc/util.c
-@@ -158,6 +158,9 @@ void __init ipc_init_proc_interface(cons
+@@ -173,6 +173,9 @@ void __init ipc_init_proc_interface(cons
struct proc_dir_entry *pde;
struct ipc_proc_iface *iface;
CPU_SUBTYPE:=vfpv3
MAINTAINER:=Luka Perkov <luka@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS=generic harddisk
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_TYPE:=xscale
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
FEATURES:=squashfs
SUBTARGETS=xway xrx200 ase falcon
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
CPU_TYPE:=mips32r2
INITRAMFS_EXTRA_FILES:=
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
DEVICE_TYPE:=developerboard
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS=generic p1020
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_SUBTYPE:=vfpv3
MAINTAINER:=Luka Perkov <luka@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_CFLAGS_octeon:=-march=octeon
MAINTAINER:=John Crispin <blogic@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_TYPE:=405
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
CPU_TYPE:=440
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
SUBTARGETS:=rt305x mt7620a mt7620n mt7621 rt3883 rt288x
FEATURES:=squashfs gpio
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES+=\
BOARDNAME:=Mikrotik RouterBoard 532
FEATURES:=pci targz broken
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += wpad-mini kmod-madwifi kmod-input-rb532
CPU_SUBTYPE:=vfp
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
DEVICE_TYPE:=developerboard
BOARDNAME:=Sun UltraSPARC
FEATURES+=fpu tgz ext4 squashfs broken
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
include $(INCLUDE_DIR)/target.mk
kmod-ledtrig-heartbeat kmod-ledtrig-gpio \
kmod-ledtrig-netdev \
kmod-cpu-msr hwclock wpad
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
CS5535_MASK:=0x0b000042
CPU_TYPE := geode
BOARDNAME:=Generic
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
define Target/Description
Build firmware images for x86 based boards
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
-@@ -168,6 +168,9 @@ libs-y += arch/x86/lib/
+@@ -174,6 +174,9 @@ libs-y += arch/x86/lib/
# See arch/x86/Kbuild for content of core part of the kernel
core-y += arch/x86/
FEATURES:=targz ubifs audio
SUBTARGETS:=qi_lb60 n516 n526 id800wt
-LINUX_VERSION:=3.10.21
+LINUX_VERSION:=3.10.24
DEVICE_TYPE=other