kernel: update 3.10 to 3.10.17
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 38506
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
From: Eric Dumazet <edumazet@google.com>
|
||||
|
||||
commit 416186fbf8c5b4e4465 ("net: Split core bits of netdev_pick_tx
|
||||
into __netdev_pick_tx") added a bug that disables caching of queue
|
||||
index in the socket.
|
||||
|
||||
This is the source of packet reorders for TCP flows, and
|
||||
again this is happening more often when using FQ pacing.
|
||||
|
||||
Old code was doing
|
||||
|
||||
if (queue_index != old_index)
|
||||
sk_tx_queue_set(sk, queue_index);
|
||||
|
||||
Alexander renamed the variables but forgot to change sk_tx_queue_set()
|
||||
2nd parameter.
|
||||
|
||||
if (queue_index != new_index)
|
||||
sk_tx_queue_set(sk, queue_index);
|
||||
|
||||
This means we store -1 over and over in sk->sk_tx_queue_mapping
|
||||
|
||||
Signed-off-by: Eric Dumazet <edumazet@google.com>
|
||||
Cc: Alexander Duyck <alexander.h.duyck@intel.com>
|
||||
Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
|
||||
|
||||
---
|
||||
net/core/flow_dissector.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/net/core/flow_dissector.c
|
||||
+++ b/net/core/flow_dissector.c
|
||||
@@ -347,7 +347,7 @@ u16 __netdev_pick_tx(struct net_device *
|
||||
|
||||
if (queue_index != new_index && sk &&
|
||||
rcu_access_pointer(sk->sk_dst_cache))
|
||||
- sk_tx_queue_set(sk, queue_index);
|
||||
+ sk_tx_queue_set(sk, new_index);
|
||||
|
||||
queue_index = new_index;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/include/net/addrconf.h
|
||||
+++ b/include/net/addrconf.h
|
||||
@@ -99,6 +99,12 @@ extern void addrconf_join_solict(struc
|
||||
@@ -103,6 +103,12 @@ extern void addrconf_join_solict(struc
|
||||
extern void addrconf_leave_solict(struct inet6_dev *idev,
|
||||
const struct in6_addr *addr);
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
|
||||
unsigned char banned_flags)
|
||||
@@ -5143,6 +5142,9 @@ int __init addrconf_init(void)
|
||||
@@ -5170,6 +5169,9 @@ int __init addrconf_init(void)
|
||||
|
||||
ipv6_addr_label_rtnl_register();
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
return 0;
|
||||
errout:
|
||||
rtnl_af_unregister(&inet6_ops);
|
||||
@@ -5161,6 +5163,9 @@ void addrconf_cleanup(void)
|
||||
@@ -5188,6 +5190,9 @@ void addrconf_cleanup(void)
|
||||
struct net_device *dev;
|
||||
int i;
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
if (vlan_tx_tag_present(skb))
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -699,15 +699,29 @@ static inline u16 br_get_pvid(const stru
|
||||
@@ -696,15 +696,29 @@ static inline u16 br_get_pvid(const stru
|
||||
|
||||
/* br_netfilter.c */
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
|
||||
--- a/ipc/msg.c
|
||||
+++ b/ipc/msg.c
|
||||
@@ -136,6 +136,9 @@ void __init msg_init(void)
|
||||
@@ -134,6 +134,9 @@ void __init msg_init(void)
|
||||
printk(KERN_INFO "msgmni has been set to %d\n",
|
||||
init_ipc_ns.msg_ctlmni);
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
IPC_MSG_IDS, sysvipc_msg_proc_show);
|
||||
--- a/ipc/sem.c
|
||||
+++ b/ipc/sem.c
|
||||
@@ -184,6 +184,8 @@ void sem_exit_ns(struct ipc_namespace *n
|
||||
@@ -191,6 +191,8 @@ void sem_exit_ns(struct ipc_namespace *n
|
||||
void __init sem_init (void)
|
||||
{
|
||||
sem_init_ns(&init_ipc_ns);
|
||||
@@ -274,7 +274,7 @@
|
||||
IPC_SEM_IDS, sysvipc_sem_proc_show);
|
||||
--- a/ipc/shm.c
|
||||
+++ b/ipc/shm.c
|
||||
@@ -115,6 +115,8 @@ pure_initcall(ipc_ns_init);
|
||||
@@ -118,6 +118,8 @@ pure_initcall(ipc_ns_init);
|
||||
|
||||
void __init shm_init (void)
|
||||
{
|
||||
@@ -285,7 +285,7 @@
|
||||
" 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
|
||||
@@ -150,6 +150,9 @@ void __init ipc_init_proc_interface(cons
|
||||
@@ -158,6 +158,9 @@ void __init ipc_init_proc_interface(cons
|
||||
struct proc_dir_entry *pde;
|
||||
struct ipc_proc_iface *iface;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/init/main.c
|
||||
+++ b/init/main.c
|
||||
@@ -838,7 +838,8 @@ static int __ref kernel_init(void *unuse
|
||||
@@ -840,7 +840,8 @@ static int __ref kernel_init(void *unuse
|
||||
pr_err("Failed to execute %s. Attempting defaults...\n",
|
||||
execute_command);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--- a/mm/shmem.c
|
||||
+++ b/mm/shmem.c
|
||||
@@ -2889,6 +2889,15 @@ static struct dentry_operations anon_ops
|
||||
.d_dname = shmem_dname
|
||||
@@ -2883,6 +2883,15 @@ static struct dentry_operations anon_ops
|
||||
.d_dname = simple_dname
|
||||
};
|
||||
|
||||
+void shmem_set_file(struct vm_area_struct *vma, struct file *file)
|
||||
@@ -16,7 +16,7 @@
|
||||
/**
|
||||
* shmem_file_setup - get an unlinked file living in tmpfs
|
||||
* @name: name for dentry (to be seen in /proc/<pid>/maps
|
||||
@@ -2962,11 +2971,8 @@ int shmem_zero_setup(struct vm_area_stru
|
||||
@@ -2956,11 +2965,8 @@ int shmem_zero_setup(struct vm_area_stru
|
||||
file = shmem_file_setup("dev/zero", size, vma->vm_flags);
|
||||
if (IS_ERR(file))
|
||||
return PTR_ERR(file);
|
||||
|
||||
Reference in New Issue
Block a user