<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/l2tp, branch v3.6-rc4</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>l2tp: fix info leak via getsockname()</title>
<updated>2012-08-16T04:36:31+00:00</updated>
<author>
<name>Mathias Krause</name>
<email>minipli@googlemail.com</email>
</author>
<published>2012-08-15T11:31:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=04d4fbca1017c11381e7d82acea21dd741e748bc'/>
<id>04d4fbca1017c11381e7d82acea21dd741e748bc</id>
<content type='text'>
The L2TP code for IPv6 fails to initialize the l2tp_unused member of
struct sockaddr_l2tpip6 and that for leaks two bytes kernel stack via
the getsockname() syscall. Initialize l2tp_unused with 0 to avoid the
info leak.

Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Cc: James Chapman &lt;jchapman@katalix.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>
The L2TP code for IPv6 fails to initialize the l2tp_unused member of
struct sockaddr_l2tpip6 and that for leaks two bytes kernel stack via
the getsockname() syscall. Initialize l2tp_unused with 0 to avoid the
info leak.

Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: l2tp_eth: provide tx_dropped counter</title>
<updated>2012-06-29T07:52:32+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-28T20:15:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b8c8430726e5bd552e01dacc5a44f3f83f7446ca'/>
<id>b8c8430726e5bd552e01dacc5a44f3f83f7446ca</id>
<content type='text'>
Change l2tp_xmit_skb() to return NET_XMIT_DROP in case skb is dropped.

Use kfree_skb() instead dev_kfree_skb() for drop_monitor pleasure.

Support tx_dropped counter for l2tp_eth

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: James Chapman &lt;jchapman@katalix.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>
Change l2tp_xmit_skb() to return NET_XMIT_DROP in case skb is dropped.

Use kfree_skb() instead dev_kfree_skb() for drop_monitor pleasure.

Support tx_dropped counter for l2tp_eth

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Use NLMSG_DEFAULT_SIZE in combination with nlmsg_new()</title>
<updated>2012-06-29T00:56:43+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@suug.ch</email>
</author>
<published>2012-06-28T03:57:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=58050fce3530939372e6c2f4b4beb76fcb4caa65'/>
<id>58050fce3530939372e6c2f4b4beb76fcb4caa65</id>
<content type='text'>
Using NLMSG_GOODSIZE results in multiple pages being used as
nlmsg_new() will automatically add the size of the netlink
header to the payload thus exceeding the page limit.

NLMSG_DEFAULT_SIZE takes this into account.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Cc: Jiri Pirko &lt;jpirko@redhat.com&gt;
Cc: Dmitry Eremin-Solenikov &lt;dbaryshkov@gmail.com&gt;
Cc: Sergey Lapin &lt;slapin@ossfans.org&gt;
Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: Lauro Ramos Venancio &lt;lauro.venancio@openbossa.org&gt;
Cc: Aloisio Almeida Jr &lt;aloisio.almeida@openbossa.org&gt;
Cc: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
Reviewed-by: Jiri Pirko &lt;jpirko@redhat.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>
Using NLMSG_GOODSIZE results in multiple pages being used as
nlmsg_new() will automatically add the size of the netlink
header to the payload thus exceeding the page limit.

NLMSG_DEFAULT_SIZE takes this into account.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Cc: Jiri Pirko &lt;jpirko@redhat.com&gt;
Cc: Dmitry Eremin-Solenikov &lt;dbaryshkov@gmail.com&gt;
Cc: Sergey Lapin &lt;slapin@ossfans.org&gt;
Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: Lauro Ramos Venancio &lt;lauro.venancio@openbossa.org&gt;
Cc: Aloisio Almeida Jr &lt;aloisio.almeida@openbossa.org&gt;
Cc: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
Reviewed-by: Jiri Pirko &lt;jpirko@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2012-06-29T00:37:00+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2012-06-29T00:37:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b26d344c6b87058ae3e8f919a18580abfc4204eb'/>
<id>b26d344c6b87058ae3e8f919a18580abfc4204eb</id>
<content type='text'>
Conflicts:
	drivers/net/caif/caif_hsi.c
	drivers/net/usb/qmi_wwan.c

The qmi_wwan merge was trivial.

The caif_hsi.c, on the other hand, was not.  It's a conflict between
1c385f1fdf6f9c66d982802cd74349c040980b50 ("caif-hsi: Replace platform
device with ops structure.") in the net-next tree and commit
39abbaef19cd0a30be93794aa4773c779c3eb1f3 ("caif-hsi: Postpone init of
HIS until open()") in the net tree.

I did my best with that one and will ask Sjur to check it out.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/caif/caif_hsi.c
	drivers/net/usb/qmi_wwan.c

The qmi_wwan merge was trivial.

The caif_hsi.c, on the other hand, was not.  It's a conflict between
1c385f1fdf6f9c66d982802cd74349c040980b50 ("caif-hsi: Replace platform
device with ops structure.") in the net-next tree and commit
39abbaef19cd0a30be93794aa4773c779c3eb1f3 ("caif-hsi: Postpone init of
HIS until open()") in the net tree.

I did my best with that one and will ask Sjur to check it out.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: l2tp_eth: use LLTX to avoid LOCKDEP splats</title>
<updated>2012-06-26T23:42:33+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-25T05:35:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a2842a1e66329798d66563b52faec1a299ec4f73'/>
<id>a2842a1e66329798d66563b52faec1a299ec4f73</id>
<content type='text'>
Denys Fedoryshchenko reported a LOCKDEP issue with l2tp code.

[ 8683.927442] ======================================================
[ 8683.927555] [ INFO: possible circular locking dependency detected ]
[ 8683.927672] 3.4.1-build-0061 #14 Not tainted
[ 8683.927782] -------------------------------------------------------
[ 8683.927895] swapper/0/0 is trying to acquire lock:
[ 8683.928007]  (slock-AF_INET){+.-...}, at: [&lt;e0fc73ec&gt;]
l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]
[ 8683.928121] but task is already holding lock:
[ 8683.928121]  (_xmit_ETHER#2){+.-...}, at: [&lt;c02f062d&gt;]
sch_direct_xmit+0x36/0x119
[ 8683.928121]
[ 8683.928121] which lock already depends on the new lock.
[ 8683.928121]
[ 8683.928121]
[ 8683.928121] the existing dependency chain (in reverse order) is:
[ 8683.928121]
[ 8683.928121] -&gt; #1 (_xmit_ETHER#2){+.-...}:
[ 8683.928121]        [&lt;c015a561&gt;] lock_acquire+0x71/0x85
[ 8683.928121]        [&lt;c034da2d&gt;] _raw_spin_lock+0x33/0x40
[ 8683.928121]        [&lt;c0304e0c&gt;] ip_send_reply+0xf2/0x1ce
[ 8683.928121]        [&lt;c0317dbc&gt;] tcp_v4_send_reset+0x153/0x16f
[ 8683.928121]        [&lt;c0317f4a&gt;] tcp_v4_do_rcv+0x172/0x194
[ 8683.928121]        [&lt;c031929b&gt;] tcp_v4_rcv+0x387/0x5a0
[ 8683.928121]        [&lt;c03001d0&gt;] ip_local_deliver_finish+0x13a/0x1e9
[ 8683.928121]        [&lt;c0300645&gt;] NF_HOOK.clone.11+0x46/0x4d
[ 8683.928121]        [&lt;c030075b&gt;] ip_local_deliver+0x41/0x45
[ 8683.928121]        [&lt;c03005dd&gt;] ip_rcv_finish+0x31a/0x33c
[ 8683.928121]        [&lt;c0300645&gt;] NF_HOOK.clone.11+0x46/0x4d
[ 8683.928121]        [&lt;c0300960&gt;] ip_rcv+0x201/0x23d
[ 8683.928121]        [&lt;c02de91b&gt;] __netif_receive_skb+0x329/0x378
[ 8683.928121]        [&lt;c02deae8&gt;] netif_receive_skb+0x4e/0x7d
[ 8683.928121]        [&lt;e08d5ef3&gt;] rtl8139_poll+0x243/0x33d [8139too]
[ 8683.928121]        [&lt;c02df103&gt;] net_rx_action+0x90/0x15d
[ 8683.928121]        [&lt;c012b2b5&gt;] __do_softirq+0x7b/0x118
[ 8683.928121]
[ 8683.928121] -&gt; #0 (slock-AF_INET){+.-...}:
[ 8683.928121]        [&lt;c0159f1b&gt;] __lock_acquire+0x9a3/0xc27
[ 8683.928121]        [&lt;c015a561&gt;] lock_acquire+0x71/0x85
[ 8683.928121]        [&lt;c034da2d&gt;] _raw_spin_lock+0x33/0x40
[ 8683.928121]        [&lt;e0fc73ec&gt;] l2tp_xmit_skb+0x173/0x47e
[l2tp_core]
[ 8683.928121]        [&lt;e0fe31fb&gt;] l2tp_eth_dev_xmit+0x1a/0x2f
[l2tp_eth]
[ 8683.928121]        [&lt;c02e01e7&gt;] dev_hard_start_xmit+0x333/0x3f2
[ 8683.928121]        [&lt;c02f064c&gt;] sch_direct_xmit+0x55/0x119
[ 8683.928121]        [&lt;c02e0528&gt;] dev_queue_xmit+0x282/0x418
[ 8683.928121]        [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]        [&lt;c031f524&gt;] arp_xmit+0x22/0x24
[ 8683.928121]        [&lt;c031f567&gt;] arp_send+0x41/0x48
[ 8683.928121]        [&lt;c031fa7d&gt;] arp_process+0x289/0x491
[ 8683.928121]        [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]        [&lt;c031f7a0&gt;] arp_rcv+0xb1/0xc3
[ 8683.928121]        [&lt;c02de91b&gt;] __netif_receive_skb+0x329/0x378
[ 8683.928121]        [&lt;c02de9d3&gt;] process_backlog+0x69/0x130
[ 8683.928121]        [&lt;c02df103&gt;] net_rx_action+0x90/0x15d
[ 8683.928121]        [&lt;c012b2b5&gt;] __do_softirq+0x7b/0x118
[ 8683.928121]
[ 8683.928121] other info that might help us debug this:
[ 8683.928121]
[ 8683.928121]  Possible unsafe locking scenario:
[ 8683.928121]
[ 8683.928121]        CPU0                    CPU1
[ 8683.928121]        ----                    ----
[ 8683.928121]   lock(_xmit_ETHER#2);
[ 8683.928121]                                lock(slock-AF_INET);
[ 8683.928121]                                lock(_xmit_ETHER#2);
[ 8683.928121]   lock(slock-AF_INET);
[ 8683.928121]
[ 8683.928121]  *** DEADLOCK ***
[ 8683.928121]
[ 8683.928121] 3 locks held by swapper/0/0:
[ 8683.928121]  #0:  (rcu_read_lock){.+.+..}, at: [&lt;c02dbc10&gt;]
rcu_lock_acquire+0x0/0x30
[ 8683.928121]  #1:  (rcu_read_lock_bh){.+....}, at: [&lt;c02dbc10&gt;]
rcu_lock_acquire+0x0/0x30
[ 8683.928121]  #2:  (_xmit_ETHER#2){+.-...}, at: [&lt;c02f062d&gt;]
sch_direct_xmit+0x36/0x119
[ 8683.928121]
[ 8683.928121] stack backtrace:
[ 8683.928121] Pid: 0, comm: swapper/0 Not tainted 3.4.1-build-0061 #14
[ 8683.928121] Call Trace:
[ 8683.928121]  [&lt;c034bdd2&gt;] ? printk+0x18/0x1a
[ 8683.928121]  [&lt;c0158904&gt;] print_circular_bug+0x1ac/0x1b6
[ 8683.928121]  [&lt;c0159f1b&gt;] __lock_acquire+0x9a3/0xc27
[ 8683.928121]  [&lt;c015a561&gt;] lock_acquire+0x71/0x85
[ 8683.928121]  [&lt;e0fc73ec&gt;] ? l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]  [&lt;c034da2d&gt;] _raw_spin_lock+0x33/0x40
[ 8683.928121]  [&lt;e0fc73ec&gt;] ? l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]  [&lt;e0fc73ec&gt;] l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]  [&lt;e0fe31fb&gt;] l2tp_eth_dev_xmit+0x1a/0x2f [l2tp_eth]
[ 8683.928121]  [&lt;c02e01e7&gt;] dev_hard_start_xmit+0x333/0x3f2
[ 8683.928121]  [&lt;c02f064c&gt;] sch_direct_xmit+0x55/0x119
[ 8683.928121]  [&lt;c02e0528&gt;] dev_queue_xmit+0x282/0x418
[ 8683.928121]  [&lt;c02e02a6&gt;] ? dev_hard_start_xmit+0x3f2/0x3f2
[ 8683.928121]  [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]  [&lt;c031f524&gt;] arp_xmit+0x22/0x24
[ 8683.928121]  [&lt;c02e02a6&gt;] ? dev_hard_start_xmit+0x3f2/0x3f2
[ 8683.928121]  [&lt;c031f567&gt;] arp_send+0x41/0x48
[ 8683.928121]  [&lt;c031fa7d&gt;] arp_process+0x289/0x491
[ 8683.928121]  [&lt;c031f7f4&gt;] ? __neigh_lookup.clone.20+0x42/0x42
[ 8683.928121]  [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]  [&lt;c031f7a0&gt;] arp_rcv+0xb1/0xc3
[ 8683.928121]  [&lt;c031f7f4&gt;] ? __neigh_lookup.clone.20+0x42/0x42
[ 8683.928121]  [&lt;c02de91b&gt;] __netif_receive_skb+0x329/0x378
[ 8683.928121]  [&lt;c02de9d3&gt;] process_backlog+0x69/0x130
[ 8683.928121]  [&lt;c02df103&gt;] net_rx_action+0x90/0x15d
[ 8683.928121]  [&lt;c012b2b5&gt;] __do_softirq+0x7b/0x118
[ 8683.928121]  [&lt;c012b23a&gt;] ? local_bh_enable+0xd/0xd
[ 8683.928121]  &lt;IRQ&gt;  [&lt;c012b4d0&gt;] ? irq_exit+0x41/0x91
[ 8683.928121]  [&lt;c0103c6f&gt;] ? do_IRQ+0x79/0x8d
[ 8683.928121]  [&lt;c0157ea1&gt;] ? trace_hardirqs_off_caller+0x2e/0x86
[ 8683.928121]  [&lt;c034ef6e&gt;] ? common_interrupt+0x2e/0x34
[ 8683.928121]  [&lt;c0108a33&gt;] ? default_idle+0x23/0x38
[ 8683.928121]  [&lt;c01091a8&gt;] ? cpu_idle+0x55/0x6f
[ 8683.928121]  [&lt;c033df25&gt;] ? rest_init+0xa1/0xa7
[ 8683.928121]  [&lt;c033de84&gt;] ? __read_lock_failed+0x14/0x14
[ 8683.928121]  [&lt;c0498745&gt;] ? start_kernel+0x303/0x30a
[ 8683.928121]  [&lt;c0498209&gt;] ? repair_env_string+0x51/0x51
[ 8683.928121]  [&lt;c04980a8&gt;] ? i386_start_kernel+0xa8/0xaf

It appears that like most virtual devices, l2tp should be converted to
LLTX mode.

This patch takes care of statistics using atomic_long in both RX and TX
paths, and fix a bug in l2tp_eth_dev_recv(), which was caching skb-&gt;data
before a pskb_may_pull() call.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Cc: Hong zhi guo &lt;honkiko@gmail.com&gt;
Cc: Francois Romieu &lt;romieu@fr.zoreil.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>
Denys Fedoryshchenko reported a LOCKDEP issue with l2tp code.

[ 8683.927442] ======================================================
[ 8683.927555] [ INFO: possible circular locking dependency detected ]
[ 8683.927672] 3.4.1-build-0061 #14 Not tainted
[ 8683.927782] -------------------------------------------------------
[ 8683.927895] swapper/0/0 is trying to acquire lock:
[ 8683.928007]  (slock-AF_INET){+.-...}, at: [&lt;e0fc73ec&gt;]
l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]
[ 8683.928121] but task is already holding lock:
[ 8683.928121]  (_xmit_ETHER#2){+.-...}, at: [&lt;c02f062d&gt;]
sch_direct_xmit+0x36/0x119
[ 8683.928121]
[ 8683.928121] which lock already depends on the new lock.
[ 8683.928121]
[ 8683.928121]
[ 8683.928121] the existing dependency chain (in reverse order) is:
[ 8683.928121]
[ 8683.928121] -&gt; #1 (_xmit_ETHER#2){+.-...}:
[ 8683.928121]        [&lt;c015a561&gt;] lock_acquire+0x71/0x85
[ 8683.928121]        [&lt;c034da2d&gt;] _raw_spin_lock+0x33/0x40
[ 8683.928121]        [&lt;c0304e0c&gt;] ip_send_reply+0xf2/0x1ce
[ 8683.928121]        [&lt;c0317dbc&gt;] tcp_v4_send_reset+0x153/0x16f
[ 8683.928121]        [&lt;c0317f4a&gt;] tcp_v4_do_rcv+0x172/0x194
[ 8683.928121]        [&lt;c031929b&gt;] tcp_v4_rcv+0x387/0x5a0
[ 8683.928121]        [&lt;c03001d0&gt;] ip_local_deliver_finish+0x13a/0x1e9
[ 8683.928121]        [&lt;c0300645&gt;] NF_HOOK.clone.11+0x46/0x4d
[ 8683.928121]        [&lt;c030075b&gt;] ip_local_deliver+0x41/0x45
[ 8683.928121]        [&lt;c03005dd&gt;] ip_rcv_finish+0x31a/0x33c
[ 8683.928121]        [&lt;c0300645&gt;] NF_HOOK.clone.11+0x46/0x4d
[ 8683.928121]        [&lt;c0300960&gt;] ip_rcv+0x201/0x23d
[ 8683.928121]        [&lt;c02de91b&gt;] __netif_receive_skb+0x329/0x378
[ 8683.928121]        [&lt;c02deae8&gt;] netif_receive_skb+0x4e/0x7d
[ 8683.928121]        [&lt;e08d5ef3&gt;] rtl8139_poll+0x243/0x33d [8139too]
[ 8683.928121]        [&lt;c02df103&gt;] net_rx_action+0x90/0x15d
[ 8683.928121]        [&lt;c012b2b5&gt;] __do_softirq+0x7b/0x118
[ 8683.928121]
[ 8683.928121] -&gt; #0 (slock-AF_INET){+.-...}:
[ 8683.928121]        [&lt;c0159f1b&gt;] __lock_acquire+0x9a3/0xc27
[ 8683.928121]        [&lt;c015a561&gt;] lock_acquire+0x71/0x85
[ 8683.928121]        [&lt;c034da2d&gt;] _raw_spin_lock+0x33/0x40
[ 8683.928121]        [&lt;e0fc73ec&gt;] l2tp_xmit_skb+0x173/0x47e
[l2tp_core]
[ 8683.928121]        [&lt;e0fe31fb&gt;] l2tp_eth_dev_xmit+0x1a/0x2f
[l2tp_eth]
[ 8683.928121]        [&lt;c02e01e7&gt;] dev_hard_start_xmit+0x333/0x3f2
[ 8683.928121]        [&lt;c02f064c&gt;] sch_direct_xmit+0x55/0x119
[ 8683.928121]        [&lt;c02e0528&gt;] dev_queue_xmit+0x282/0x418
[ 8683.928121]        [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]        [&lt;c031f524&gt;] arp_xmit+0x22/0x24
[ 8683.928121]        [&lt;c031f567&gt;] arp_send+0x41/0x48
[ 8683.928121]        [&lt;c031fa7d&gt;] arp_process+0x289/0x491
[ 8683.928121]        [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]        [&lt;c031f7a0&gt;] arp_rcv+0xb1/0xc3
[ 8683.928121]        [&lt;c02de91b&gt;] __netif_receive_skb+0x329/0x378
[ 8683.928121]        [&lt;c02de9d3&gt;] process_backlog+0x69/0x130
[ 8683.928121]        [&lt;c02df103&gt;] net_rx_action+0x90/0x15d
[ 8683.928121]        [&lt;c012b2b5&gt;] __do_softirq+0x7b/0x118
[ 8683.928121]
[ 8683.928121] other info that might help us debug this:
[ 8683.928121]
[ 8683.928121]  Possible unsafe locking scenario:
[ 8683.928121]
[ 8683.928121]        CPU0                    CPU1
[ 8683.928121]        ----                    ----
[ 8683.928121]   lock(_xmit_ETHER#2);
[ 8683.928121]                                lock(slock-AF_INET);
[ 8683.928121]                                lock(_xmit_ETHER#2);
[ 8683.928121]   lock(slock-AF_INET);
[ 8683.928121]
[ 8683.928121]  *** DEADLOCK ***
[ 8683.928121]
[ 8683.928121] 3 locks held by swapper/0/0:
[ 8683.928121]  #0:  (rcu_read_lock){.+.+..}, at: [&lt;c02dbc10&gt;]
rcu_lock_acquire+0x0/0x30
[ 8683.928121]  #1:  (rcu_read_lock_bh){.+....}, at: [&lt;c02dbc10&gt;]
rcu_lock_acquire+0x0/0x30
[ 8683.928121]  #2:  (_xmit_ETHER#2){+.-...}, at: [&lt;c02f062d&gt;]
sch_direct_xmit+0x36/0x119
[ 8683.928121]
[ 8683.928121] stack backtrace:
[ 8683.928121] Pid: 0, comm: swapper/0 Not tainted 3.4.1-build-0061 #14
[ 8683.928121] Call Trace:
[ 8683.928121]  [&lt;c034bdd2&gt;] ? printk+0x18/0x1a
[ 8683.928121]  [&lt;c0158904&gt;] print_circular_bug+0x1ac/0x1b6
[ 8683.928121]  [&lt;c0159f1b&gt;] __lock_acquire+0x9a3/0xc27
[ 8683.928121]  [&lt;c015a561&gt;] lock_acquire+0x71/0x85
[ 8683.928121]  [&lt;e0fc73ec&gt;] ? l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]  [&lt;c034da2d&gt;] _raw_spin_lock+0x33/0x40
[ 8683.928121]  [&lt;e0fc73ec&gt;] ? l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]  [&lt;e0fc73ec&gt;] l2tp_xmit_skb+0x173/0x47e [l2tp_core]
[ 8683.928121]  [&lt;e0fe31fb&gt;] l2tp_eth_dev_xmit+0x1a/0x2f [l2tp_eth]
[ 8683.928121]  [&lt;c02e01e7&gt;] dev_hard_start_xmit+0x333/0x3f2
[ 8683.928121]  [&lt;c02f064c&gt;] sch_direct_xmit+0x55/0x119
[ 8683.928121]  [&lt;c02e0528&gt;] dev_queue_xmit+0x282/0x418
[ 8683.928121]  [&lt;c02e02a6&gt;] ? dev_hard_start_xmit+0x3f2/0x3f2
[ 8683.928121]  [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]  [&lt;c031f524&gt;] arp_xmit+0x22/0x24
[ 8683.928121]  [&lt;c02e02a6&gt;] ? dev_hard_start_xmit+0x3f2/0x3f2
[ 8683.928121]  [&lt;c031f567&gt;] arp_send+0x41/0x48
[ 8683.928121]  [&lt;c031fa7d&gt;] arp_process+0x289/0x491
[ 8683.928121]  [&lt;c031f7f4&gt;] ? __neigh_lookup.clone.20+0x42/0x42
[ 8683.928121]  [&lt;c031f4fb&gt;] NF_HOOK.clone.19+0x45/0x4c
[ 8683.928121]  [&lt;c031f7a0&gt;] arp_rcv+0xb1/0xc3
[ 8683.928121]  [&lt;c031f7f4&gt;] ? __neigh_lookup.clone.20+0x42/0x42
[ 8683.928121]  [&lt;c02de91b&gt;] __netif_receive_skb+0x329/0x378
[ 8683.928121]  [&lt;c02de9d3&gt;] process_backlog+0x69/0x130
[ 8683.928121]  [&lt;c02df103&gt;] net_rx_action+0x90/0x15d
[ 8683.928121]  [&lt;c012b2b5&gt;] __do_softirq+0x7b/0x118
[ 8683.928121]  [&lt;c012b23a&gt;] ? local_bh_enable+0xd/0xd
[ 8683.928121]  &lt;IRQ&gt;  [&lt;c012b4d0&gt;] ? irq_exit+0x41/0x91
[ 8683.928121]  [&lt;c0103c6f&gt;] ? do_IRQ+0x79/0x8d
[ 8683.928121]  [&lt;c0157ea1&gt;] ? trace_hardirqs_off_caller+0x2e/0x86
[ 8683.928121]  [&lt;c034ef6e&gt;] ? common_interrupt+0x2e/0x34
[ 8683.928121]  [&lt;c0108a33&gt;] ? default_idle+0x23/0x38
[ 8683.928121]  [&lt;c01091a8&gt;] ? cpu_idle+0x55/0x6f
[ 8683.928121]  [&lt;c033df25&gt;] ? rest_init+0xa1/0xa7
[ 8683.928121]  [&lt;c033de84&gt;] ? __read_lock_failed+0x14/0x14
[ 8683.928121]  [&lt;c0498745&gt;] ? start_kernel+0x303/0x30a
[ 8683.928121]  [&lt;c0498209&gt;] ? repair_env_string+0x51/0x51
[ 8683.928121]  [&lt;c04980a8&gt;] ? i386_start_kernel+0xa8/0xaf

It appears that like most virtual devices, l2tp should be converted to
LLTX mode.

This patch takes care of statistics using atomic_long in both RX and TX
paths, and fix a bug in l2tp_eth_dev_recv(), which was caching skb-&gt;data
before a pskb_may_pull() call.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Cc: Hong zhi guo &lt;honkiko@gmail.com&gt;
Cc: Francois Romieu &lt;romieu@fr.zoreil.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: l2tp_eth: fix l2tp_eth_dev_xmit race</title>
<updated>2012-06-25T23:30:54+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-25T00:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=aa214de0595eecf5079a172a16333fa638b64915'/>
<id>aa214de0595eecf5079a172a16333fa638b64915</id>
<content type='text'>
Its illegal to dereference skb after giving it to l2tp_xmit_skb()
as it might be already freed/reused.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: James Chapman &lt;jchapman@katalix.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>
Its illegal to dereference skb after giving it to l2tp_xmit_skb()
as it might be already freed/reused.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2012-06-13T04:59:18+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2012-06-13T04:59:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=43b03f1f6d6832d744918947d185a7aee89d1e0f'/>
<id>43b03f1f6d6832d744918947d185a7aee89d1e0f</id>
<content type='text'>
Conflicts:
	MAINTAINERS
	drivers/net/wireless/iwlwifi/pcie/trans.c

The iwlwifi conflict was resolved by keeping the code added
in 'net' that turns off the buggy chip feature.

The MAINTAINERS conflict was merely overlapping changes, one
change updated all the wireless web site URLs and the other
changed some GIT trees to be Johannes's instead of John's.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	MAINTAINERS
	drivers/net/wireless/iwlwifi/pcie/trans.c

The iwlwifi conflict was resolved by keeping the code added
in 'net' that turns off the buggy chip feature.

The MAINTAINERS conflict was merely overlapping changes, one
change updated all the wireless web site URLs and the other
changed some GIT trees to be Johannes's instead of John's.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>l2tp: fix a race in l2tp_ip_sendmsg()</title>
<updated>2012-06-08T21:30:51+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-08T06:25:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4399a4df98a63e30fd16e9d0cecc46ea92269e8f'/>
<id>4399a4df98a63e30fd16e9d0cecc46ea92269e8f</id>
<content type='text'>
Commit 081b1b1bb27f (l2tp: fix l2tp_ip_sendmsg() route handling) added
a race, in case IP route cache is disabled.

In this case, we should not do the dst_release(&amp;rt-&gt;dst), since it'll
free the dst immediately, instead of waiting a RCU grace period.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Cc: Denys Fedoryshchenko &lt;denys@visp.net.lb&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>
Commit 081b1b1bb27f (l2tp: fix l2tp_ip_sendmsg() route handling) added
a race, in case IP route cache is disabled.

In this case, we should not do the dst_release(&amp;rt-&gt;dst), since it'll
free the dst immediately, instead of waiting a RCU grace period.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Cc: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: l2tp_eth: fix kernel panic on rmmod l2tp_eth</title>
<updated>2012-06-07T20:02:20+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-07T00:07:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a06998b88b1651c5f71c0e35f528bf2057188ead'/>
<id>a06998b88b1651c5f71c0e35f528bf2057188ead</id>
<content type='text'>
We must prevent module unloading if some devices are still attached to
l2tp_eth driver.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Tested-by: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Cc: James Chapman &lt;jchapman@katalix.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>
We must prevent module unloading if some devices are still attached to
l2tp_eth driver.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Tested-by: Denys Fedoryshchenko &lt;denys@visp.net.lb&gt;
Cc: James Chapman &lt;jchapman@katalix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Remove casts to same type</title>
<updated>2012-06-04T15:45:11+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2012-06-03T17:41:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e3192690a3c889767d1161b228374f4926d92af0'/>
<id>e3192690a3c889767d1161b228374f4926d92af0</id>
<content type='text'>
Adding casts of objects to the same type is unnecessary
and confusing for a human reader.

For example, this cast:

	int y;
	int *p = (int *)&amp;y;

I used the coccinelle script below to find and remove these
unnecessary casts.  I manually removed the conversions this
script produces of casts with __force and __user.

@@
type T;
T *p;
@@

-	(T *)p
+	p

Signed-off-by: Joe Perches &lt;joe@perches.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>
Adding casts of objects to the same type is unnecessary
and confusing for a human reader.

For example, this cast:

	int y;
	int *p = (int *)&amp;y;

I used the coccinelle script below to find and remove these
unnecessary casts.  I manually removed the conversions this
script produces of casts with __force and __user.

@@
type T;
T *p;
@@

-	(T *)p
+	p

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