<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/core/neighbour.c, branch v3.2.16</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>neighbour: Fixed race condition at tbl-&gt;nht</title>
<updated>2012-03-19T16:02:21+00:00</updated>
<author>
<name>Michel Machado</name>
<email>michel@digirati.com.br</email>
</author>
<published>2012-02-21T11:04:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=983af6e10958557843e4b5546c96e371ee3c8ddd'/>
<id>983af6e10958557843e4b5546c96e371ee3c8ddd</id>
<content type='text'>
[ Upstream commit 84338a6c9dbb6ff3de4749864020f8f25d86fc81 ]

When the fixed race condition happens:

1. While function neigh_periodic_work scans the neighbor hash table
pointed by field tbl-&gt;nht, it unlocks and locks tbl-&gt;lock between
buckets in order to call cond_resched.

2. Assume that function neigh_periodic_work calls cond_resched, that is,
the lock tbl-&gt;lock is available, and function neigh_hash_grow runs.

3. Once function neigh_hash_grow finishes, and RCU calls
neigh_hash_free_rcu, the original struct neigh_hash_table that function
neigh_periodic_work was using doesn't exist anymore.

4. Once back at neigh_periodic_work, whenever the old struct
neigh_hash_table is accessed, things can go badly.

Signed-off-by: Michel Machado &lt;michel@digirati.com.br&gt;
CC: "David S. Miller" &lt;davem@davemloft.net&gt;
CC: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 84338a6c9dbb6ff3de4749864020f8f25d86fc81 ]

When the fixed race condition happens:

1. While function neigh_periodic_work scans the neighbor hash table
pointed by field tbl-&gt;nht, it unlocks and locks tbl-&gt;lock between
buckets in order to call cond_resched.

2. Assume that function neigh_periodic_work calls cond_resched, that is,
the lock tbl-&gt;lock is available, and function neigh_hash_grow runs.

3. Once function neigh_hash_grow finishes, and RCU calls
neigh_hash_free_rcu, the original struct neigh_hash_table that function
neigh_periodic_work was using doesn't exist anymore.

4. Once back at neigh_periodic_work, whenever the old struct
neigh_hash_table is accessed, things can go badly.

Signed-off-by: Michel Machado &lt;michel@digirati.com.br&gt;
CC: "David S. Miller" &lt;davem@davemloft.net&gt;
CC: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netns: fix proxy ARP entries listing on a netns</title>
<updated>2011-11-25T18:24:49+00:00</updated>
<author>
<name>Jorge Boncompte [DTI2]</name>
<email>jorge@dti2.net</email>
</author>
<published>2011-11-25T18:24:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=df07a94cf50eb73d09bf2350c3fe2598e4cbeee1'/>
<id>df07a94cf50eb73d09bf2350c3fe2598e4cbeee1</id>
<content type='text'>
Skip entries from foreign network namespaces.

Signed-off-by: Jorge Boncompte [DTI2] &lt;jorge@dti2.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Skip entries from foreign network namespaces.

Signed-off-by: Jorge Boncompte [DTI2] &lt;jorge@dti2.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>neigh: Kill bogus SMP protected debugging message.</title>
<updated>2011-11-01T21:45:55+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-11-01T21:45:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=045f7b3b0005bf30ad8d664c7651d816e2650cd2'/>
<id>045f7b3b0005bf30ad8d664c7651d816e2650cd2</id>
<content type='text'>
Whatever situations make this state legitimate when SMP
also would be legitimate when !SMP and f.e. preemption is
enabled.

This is dubious enough that we should just delete it entirely.  If we
want to add debugging for neigh timer races, better more thorough
mechanisms are needed.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Whatever situations make this state legitimate when SMP
also would be legitimate when !SMP and f.e. preemption is
enabled.

This is dubious enough that we should just delete it entirely.  If we
want to add debugging for neigh timer races, better more thorough
mechanisms are needed.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>neigh: fix rcu splat in neigh_update()</title>
<updated>2011-10-19T23:38:51+00:00</updated>
<author>
<name>roy.qing.li@gmail.com</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2011-10-17T22:32:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e049f28883126c689cf95859480d9ee4ab23b7fa'/>
<id>e049f28883126c689cf95859480d9ee4ab23b7fa</id>
<content type='text'>
when use dst_get_neighbour to get neighbour, we need
rcu_read_lock to protect, since dst_get_neighbour uses
rcu_dereference.

The bug was reported by Ari Savolainen &lt;ari.m.savolainen@gmail.com&gt;

[  105.612095]
[  105.612096] ===================================================
[  105.612100] [ INFO: suspicious rcu_dereference_check() usage. ]
[  105.612101] ---------------------------------------------------
[  105.612103] include/net/dst.h:91 invoked rcu_dereference_check()
without protection!
[  105.612105]
[  105.612106] other info that might help us debug this:
[  105.612106]
[  105.612108]
[  105.612108] rcu_scheduler_active = 1, debug_locks = 0
[  105.612110] 1 lock held by dnsmasq/2618:
[  105.612111]  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff815df8c7&gt;]
rtnl_lock+0x17/0x20
[  105.612120]
[  105.612121] stack backtrace:
[  105.612123] Pid: 2618, comm: dnsmasq Not tainted 3.1.0-rc1 #41
[  105.612125] Call Trace:
[  105.612129]  [&lt;ffffffff810ccdcb&gt;] lockdep_rcu_dereference+0xbb/0xc0
[  105.612132]  [&lt;ffffffff815dc5a9&gt;] neigh_update+0x4f9/0x5f0
[  105.612135]  [&lt;ffffffff815da001&gt;] ? neigh_lookup+0xe1/0x220
[  105.612139]  [&lt;ffffffff81639298&gt;] arp_req_set+0xb8/0x230
[  105.612142]  [&lt;ffffffff8163a59f&gt;] arp_ioctl+0x1bf/0x310
[  105.612146]  [&lt;ffffffff810baa40&gt;] ? lock_hrtimer_base.isra.26+0x30/0x60
[  105.612150]  [&lt;ffffffff8163fb75&gt;] inet_ioctl+0x85/0x90
[  105.612154]  [&lt;ffffffff815b5520&gt;] sock_do_ioctl+0x30/0x70
[  105.612157]  [&lt;ffffffff815b55d3&gt;] sock_ioctl+0x73/0x280
[  105.612162]  [&lt;ffffffff811b7698&gt;] do_vfs_ioctl+0x98/0x570
[  105.612165]  [&lt;ffffffff811a5c40&gt;] ? fget_light+0x340/0x3a0
[  105.612168]  [&lt;ffffffff811b7bbf&gt;] sys_ioctl+0x4f/0x80
[  105.612172]  [&lt;ffffffff816fdcab&gt;] system_call_fastpath+0x16/0x1b

Reported-by: Ari Savolainen &lt;ari.m.savolainen@gmail.com&gt;
Signed-off-by: RongQing &lt;roy.qing.li@gmail.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
when use dst_get_neighbour to get neighbour, we need
rcu_read_lock to protect, since dst_get_neighbour uses
rcu_dereference.

The bug was reported by Ari Savolainen &lt;ari.m.savolainen@gmail.com&gt;

[  105.612095]
[  105.612096] ===================================================
[  105.612100] [ INFO: suspicious rcu_dereference_check() usage. ]
[  105.612101] ---------------------------------------------------
[  105.612103] include/net/dst.h:91 invoked rcu_dereference_check()
without protection!
[  105.612105]
[  105.612106] other info that might help us debug this:
[  105.612106]
[  105.612108]
[  105.612108] rcu_scheduler_active = 1, debug_locks = 0
[  105.612110] 1 lock held by dnsmasq/2618:
[  105.612111]  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff815df8c7&gt;]
rtnl_lock+0x17/0x20
[  105.612120]
[  105.612121] stack backtrace:
[  105.612123] Pid: 2618, comm: dnsmasq Not tainted 3.1.0-rc1 #41
[  105.612125] Call Trace:
[  105.612129]  [&lt;ffffffff810ccdcb&gt;] lockdep_rcu_dereference+0xbb/0xc0
[  105.612132]  [&lt;ffffffff815dc5a9&gt;] neigh_update+0x4f9/0x5f0
[  105.612135]  [&lt;ffffffff815da001&gt;] ? neigh_lookup+0xe1/0x220
[  105.612139]  [&lt;ffffffff81639298&gt;] arp_req_set+0xb8/0x230
[  105.612142]  [&lt;ffffffff8163a59f&gt;] arp_ioctl+0x1bf/0x310
[  105.612146]  [&lt;ffffffff810baa40&gt;] ? lock_hrtimer_base.isra.26+0x30/0x60
[  105.612150]  [&lt;ffffffff8163fb75&gt;] inet_ioctl+0x85/0x90
[  105.612154]  [&lt;ffffffff815b5520&gt;] sock_do_ioctl+0x30/0x70
[  105.612157]  [&lt;ffffffff815b55d3&gt;] sock_ioctl+0x73/0x280
[  105.612162]  [&lt;ffffffff811b7698&gt;] do_vfs_ioctl+0x98/0x570
[  105.612165]  [&lt;ffffffff811a5c40&gt;] ? fget_light+0x340/0x3a0
[  105.612168]  [&lt;ffffffff811b7bbf&gt;] sys_ioctl+0x4f/0x80
[  105.612172]  [&lt;ffffffff816fdcab&gt;] system_call_fastpath+0x16/0x1b

Reported-by: Ari Savolainen &lt;ari.m.savolainen@gmail.com&gt;
Signed-off-by: RongQing &lt;roy.qing.li@gmail.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of github.com:davem330/net</title>
<updated>2011-09-22T07:23:13+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-09-22T07:23:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8decf868790b48a727d7e7ca164f2bcd3c1389c0'/>
<id>8decf868790b48a727d7e7ca164f2bcd3c1389c0</id>
<content type='text'>
Conflicts:
	MAINTAINERS
	drivers/net/Kconfig
	drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
	drivers/net/ethernet/broadcom/tg3.c
	drivers/net/wireless/iwlwifi/iwl-pci.c
	drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/wl12xx/main.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	MAINTAINERS
	drivers/net/Kconfig
	drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
	drivers/net/ethernet/broadcom/tg3.c
	drivers/net/wireless/iwlwifi/iwl-pci.c
	drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/wl12xx/main.c
</pre>
</div>
</content>
</entry>
<entry>
<title>arp: fix rcu lockdep splat in arp_process()</title>
<updated>2011-08-25T00:55:00+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-08-22T19:32:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=20e6074eb8e096b3a595c093d1cb222f378cd671'/>
<id>20e6074eb8e096b3a595c093d1cb222f378cd671</id>
<content type='text'>
Dave Jones reported a lockdep splat triggered by an arp_process() call
from parp_redo().

Commit faa9dcf793be (arp: RCU changes) is the origin of the bug, since
it assumed arp_process() was called under rcu_read_lock(), which is not
true in this particular path.

Instead of adding rcu_read_lock() in parp_redo(), I chose to add it in
neigh_proxy_process() to take care of IPv6 side too.

 ===================================================
 [ INFO: suspicious rcu_dereference_check() usage. ]
 ---------------------------------------------------
 include/linux/inetdevice.h:209 invoked rcu_dereference_check() without
protection!

 other info that might help us debug this:

 rcu_scheduler_active = 1, debug_locks = 0
 4 locks held by setfiles/2123:
  #0:  (&amp;sb-&gt;s_type-&gt;i_mutex_key#13){+.+.+.}, at: [&lt;ffffffff8114cbc4&gt;]
walk_component+0x1ef/0x3e8
  #1:  (&amp;isec-&gt;lock){+.+.+.}, at: [&lt;ffffffff81204bca&gt;]
inode_doinit_with_dentry+0x3f/0x41f
  #2:  (&amp;tbl-&gt;proxy_timer){+.-...}, at: [&lt;ffffffff8106a803&gt;]
run_timer_softirq+0x157/0x372
  #3:  (class){+.-...}, at: [&lt;ffffffff8141f256&gt;] neigh_proxy_process
+0x36/0x103

 stack backtrace:
 Pid: 2123, comm: setfiles Tainted: G        W
3.1.0-0.rc2.git7.2.fc16.x86_64 #1
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff8108ca23&gt;] lockdep_rcu_dereference+0xa7/0xaf
  [&lt;ffffffff8146a0b7&gt;] __in_dev_get_rcu+0x55/0x5d
  [&lt;ffffffff8146a751&gt;] arp_process+0x25/0x4d7
  [&lt;ffffffff8146ac11&gt;] parp_redo+0xe/0x10
  [&lt;ffffffff8141f2ba&gt;] neigh_proxy_process+0x9a/0x103
  [&lt;ffffffff8106a8c4&gt;] run_timer_softirq+0x218/0x372
  [&lt;ffffffff8106a803&gt;] ? run_timer_softirq+0x157/0x372
  [&lt;ffffffff8141f220&gt;] ? neigh_stat_seq_open+0x41/0x41
  [&lt;ffffffff8108f2f0&gt;] ? mark_held_locks+0x6d/0x95
  [&lt;ffffffff81062bb6&gt;] __do_softirq+0x112/0x25a
  [&lt;ffffffff8150d27c&gt;] call_softirq+0x1c/0x30
  [&lt;ffffffff81010bf5&gt;] do_softirq+0x4b/0xa2
  [&lt;ffffffff81062f65&gt;] irq_exit+0x5d/0xcf
  [&lt;ffffffff8150dc11&gt;] smp_apic_timer_interrupt+0x7c/0x8a
  [&lt;ffffffff8150baf3&gt;] apic_timer_interrupt+0x73/0x80
  &lt;EOI&gt;  [&lt;ffffffff8108f439&gt;] ? trace_hardirqs_on_caller+0x121/0x158
  [&lt;ffffffff814fc285&gt;] ? __slab_free+0x30/0x24c
  [&lt;ffffffff814fc283&gt;] ? __slab_free+0x2e/0x24c
  [&lt;ffffffff81204e74&gt;] ? inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81204e74&gt;] ? inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81204e74&gt;] ? inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81130cb0&gt;] kfree+0x108/0x131
  [&lt;ffffffff81204e74&gt;] inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81204fc6&gt;] selinux_d_instantiate+0x1c/0x1e
  [&lt;ffffffff81200f4f&gt;] security_d_instantiate+0x21/0x23
  [&lt;ffffffff81154625&gt;] d_instantiate+0x5c/0x61
  [&lt;ffffffff811563ca&gt;] d_splice_alias+0xbc/0xd2
  [&lt;ffffffff811b17ff&gt;] ext4_lookup+0xba/0xeb
  [&lt;ffffffff8114bf1e&gt;] d_alloc_and_lookup+0x45/0x6b
  [&lt;ffffffff8114cbea&gt;] walk_component+0x215/0x3e8
  [&lt;ffffffff8114cdf8&gt;] lookup_last+0x3b/0x3d
  [&lt;ffffffff8114daf3&gt;] path_lookupat+0x82/0x2af
  [&lt;ffffffff8110fc53&gt;] ? might_fault+0xa5/0xac
  [&lt;ffffffff8110fc0a&gt;] ? might_fault+0x5c/0xac
  [&lt;ffffffff8114c564&gt;] ? getname_flags+0x31/0x1ca
  [&lt;ffffffff8114dd48&gt;] do_path_lookup+0x28/0x97
  [&lt;ffffffff8114df2c&gt;] user_path_at+0x59/0x96
  [&lt;ffffffff811467ad&gt;] ? cp_new_stat+0xf7/0x10d
  [&lt;ffffffff811469a6&gt;] vfs_fstatat+0x44/0x6e
  [&lt;ffffffff811469ee&gt;] vfs_lstat+0x1e/0x20
  [&lt;ffffffff81146b3d&gt;] sys_newlstat+0x1a/0x33
  [&lt;ffffffff8108f439&gt;] ? trace_hardirqs_on_caller+0x121/0x158
  [&lt;ffffffff812535fe&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f
  [&lt;ffffffff8150af82&gt;] system_call_fastpath+0x16/0x1b

Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Dave Jones reported a lockdep splat triggered by an arp_process() call
from parp_redo().

Commit faa9dcf793be (arp: RCU changes) is the origin of the bug, since
it assumed arp_process() was called under rcu_read_lock(), which is not
true in this particular path.

Instead of adding rcu_read_lock() in parp_redo(), I chose to add it in
neigh_proxy_process() to take care of IPv6 side too.

 ===================================================
 [ INFO: suspicious rcu_dereference_check() usage. ]
 ---------------------------------------------------
 include/linux/inetdevice.h:209 invoked rcu_dereference_check() without
protection!

 other info that might help us debug this:

 rcu_scheduler_active = 1, debug_locks = 0
 4 locks held by setfiles/2123:
  #0:  (&amp;sb-&gt;s_type-&gt;i_mutex_key#13){+.+.+.}, at: [&lt;ffffffff8114cbc4&gt;]
walk_component+0x1ef/0x3e8
  #1:  (&amp;isec-&gt;lock){+.+.+.}, at: [&lt;ffffffff81204bca&gt;]
inode_doinit_with_dentry+0x3f/0x41f
  #2:  (&amp;tbl-&gt;proxy_timer){+.-...}, at: [&lt;ffffffff8106a803&gt;]
run_timer_softirq+0x157/0x372
  #3:  (class){+.-...}, at: [&lt;ffffffff8141f256&gt;] neigh_proxy_process
+0x36/0x103

 stack backtrace:
 Pid: 2123, comm: setfiles Tainted: G        W
3.1.0-0.rc2.git7.2.fc16.x86_64 #1
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff8108ca23&gt;] lockdep_rcu_dereference+0xa7/0xaf
  [&lt;ffffffff8146a0b7&gt;] __in_dev_get_rcu+0x55/0x5d
  [&lt;ffffffff8146a751&gt;] arp_process+0x25/0x4d7
  [&lt;ffffffff8146ac11&gt;] parp_redo+0xe/0x10
  [&lt;ffffffff8141f2ba&gt;] neigh_proxy_process+0x9a/0x103
  [&lt;ffffffff8106a8c4&gt;] run_timer_softirq+0x218/0x372
  [&lt;ffffffff8106a803&gt;] ? run_timer_softirq+0x157/0x372
  [&lt;ffffffff8141f220&gt;] ? neigh_stat_seq_open+0x41/0x41
  [&lt;ffffffff8108f2f0&gt;] ? mark_held_locks+0x6d/0x95
  [&lt;ffffffff81062bb6&gt;] __do_softirq+0x112/0x25a
  [&lt;ffffffff8150d27c&gt;] call_softirq+0x1c/0x30
  [&lt;ffffffff81010bf5&gt;] do_softirq+0x4b/0xa2
  [&lt;ffffffff81062f65&gt;] irq_exit+0x5d/0xcf
  [&lt;ffffffff8150dc11&gt;] smp_apic_timer_interrupt+0x7c/0x8a
  [&lt;ffffffff8150baf3&gt;] apic_timer_interrupt+0x73/0x80
  &lt;EOI&gt;  [&lt;ffffffff8108f439&gt;] ? trace_hardirqs_on_caller+0x121/0x158
  [&lt;ffffffff814fc285&gt;] ? __slab_free+0x30/0x24c
  [&lt;ffffffff814fc283&gt;] ? __slab_free+0x2e/0x24c
  [&lt;ffffffff81204e74&gt;] ? inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81204e74&gt;] ? inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81204e74&gt;] ? inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81130cb0&gt;] kfree+0x108/0x131
  [&lt;ffffffff81204e74&gt;] inode_doinit_with_dentry+0x2e9/0x41f
  [&lt;ffffffff81204fc6&gt;] selinux_d_instantiate+0x1c/0x1e
  [&lt;ffffffff81200f4f&gt;] security_d_instantiate+0x21/0x23
  [&lt;ffffffff81154625&gt;] d_instantiate+0x5c/0x61
  [&lt;ffffffff811563ca&gt;] d_splice_alias+0xbc/0xd2
  [&lt;ffffffff811b17ff&gt;] ext4_lookup+0xba/0xeb
  [&lt;ffffffff8114bf1e&gt;] d_alloc_and_lookup+0x45/0x6b
  [&lt;ffffffff8114cbea&gt;] walk_component+0x215/0x3e8
  [&lt;ffffffff8114cdf8&gt;] lookup_last+0x3b/0x3d
  [&lt;ffffffff8114daf3&gt;] path_lookupat+0x82/0x2af
  [&lt;ffffffff8110fc53&gt;] ? might_fault+0xa5/0xac
  [&lt;ffffffff8110fc0a&gt;] ? might_fault+0x5c/0xac
  [&lt;ffffffff8114c564&gt;] ? getname_flags+0x31/0x1ca
  [&lt;ffffffff8114dd48&gt;] do_path_lookup+0x28/0x97
  [&lt;ffffffff8114df2c&gt;] user_path_at+0x59/0x96
  [&lt;ffffffff811467ad&gt;] ? cp_new_stat+0xf7/0x10d
  [&lt;ffffffff811469a6&gt;] vfs_fstatat+0x44/0x6e
  [&lt;ffffffff811469ee&gt;] vfs_lstat+0x1e/0x20
  [&lt;ffffffff81146b3d&gt;] sys_newlstat+0x1a/0x33
  [&lt;ffffffff8108f439&gt;] ? trace_hardirqs_on_caller+0x121/0x158
  [&lt;ffffffff812535fe&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f
  [&lt;ffffffff8150af82&gt;] system_call_fastpath+0x16/0x1b

Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>neigh: reduce arp latency</title>
<updated>2011-08-12T09:55:28+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-08-09T08:15:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cd28ca0a3dd17c68d24b839602a0e6268ad28b5d'/>
<id>cd28ca0a3dd17c68d24b839602a0e6268ad28b5d</id>
<content type='text'>
Remove the artificial HZ latency on arp resolution.

Instead of firing a timer in one jiffy (up to 10 ms if HZ=100), lets
send the ARP message immediately.

Before patch :

# arp -d 192.168.20.108 ; ping -c 3 192.168.20.108
PING 192.168.20.108 (192.168.20.108) 56(84) bytes of data.
64 bytes from 192.168.20.108: icmp_seq=1 ttl=64 time=9.91 ms
64 bytes from 192.168.20.108: icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from 192.168.20.108: icmp_seq=3 ttl=64 time=0.061 ms

After patch :

$ arp -d 192.168.20.108 ; ping -c 3 192.168.20.108
PING 192.168.20.108 (192.168.20.108) 56(84) bytes of data.
64 bytes from 192.168.20.108: icmp_seq=1 ttl=64 time=0.152 ms
64 bytes from 192.168.20.108: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from 192.168.20.108: icmp_seq=3 ttl=64 time=0.074 ms

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the artificial HZ latency on arp resolution.

Instead of firing a timer in one jiffy (up to 10 ms if HZ=100), lets
send the ARP message immediately.

Before patch :

# arp -d 192.168.20.108 ; ping -c 3 192.168.20.108
PING 192.168.20.108 (192.168.20.108) 56(84) bytes of data.
64 bytes from 192.168.20.108: icmp_seq=1 ttl=64 time=9.91 ms
64 bytes from 192.168.20.108: icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from 192.168.20.108: icmp_seq=3 ttl=64 time=0.061 ms

After patch :

$ arp -d 192.168.20.108 ; ping -c 3 192.168.20.108
PING 192.168.20.108 (192.168.20.108) 56(84) bytes of data.
64 bytes from 192.168.20.108: icmp_seq=1 ttl=64 time=0.152 ms
64 bytes from 192.168.20.108: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from 192.168.20.108: icmp_seq=3 ttl=64 time=0.074 ms

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Abstract dst-&gt;neighbour accesses behind helpers.</title>
<updated>2011-07-18T06:11:35+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-07-18T06:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=69cce1d1404968f78b177a0314f5822d5afdbbfb'/>
<id>69cce1d1404968f78b177a0314f5822d5afdbbfb</id>
<content type='text'>
dst_{get,set}_neighbour()

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
dst_{get,set}_neighbour()

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>neigh: Pass neighbour entry to output ops.</title>
<updated>2011-07-18T06:11:17+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-07-17T20:34:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8f40b161de4f27402b4c0659ad2ae83fad5a0cdd'/>
<id>8f40b161de4f27402b4c0659ad2ae83fad5a0cdd</id>
<content type='text'>
This will get us closer to being able to do "neigh stuff"
completely independent of the underlying dst_entry for
protocols (ipv4/ipv6) that wish to do so.

We will also be able to make dst entries neigh-less.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will get us closer to being able to do "neigh stuff"
completely independent of the underlying dst_entry for
protocols (ipv4/ipv6) that wish to do so.

We will also be able to make dst entries neigh-less.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>neigh: Kill ndisc_ops-&gt;queue_xmit</title>
<updated>2011-07-17T01:30:59+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-07-17T01:06:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=542d4d685febf3110d1a08d0bcb9f6ef060b76f7'/>
<id>542d4d685febf3110d1a08d0bcb9f6ef060b76f7</id>
<content type='text'>
It is always dev_queue_xmit().

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is always dev_queue_xmit().

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
