<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/net, branch v3.7.2</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Revert "Bluetooth: Fix possible deadlock in SCO code"</title>
<updated>2013-01-11T17:19:04+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-12-03T17:36:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3d8c1e480a910cf0940f7b375875b567a5a9a771'/>
<id>3d8c1e480a910cf0940f7b375875b567a5a9a771</id>
<content type='text'>
commit 0b27a4b97cb1874503c78453c0903df53c0c86b2 upstream.

This reverts commit 269c4845d5b3627b95b1934107251bacbe99bb68.

The commit was causing dead locks and NULL dereferences in the sco code:

 [28084.104013] BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u:0H:7]
 [28084.104021] Modules linked in: btusb bluetooth &lt;snip [last unloaded:
bluetooth]
...
 [28084.104021]  [&lt;c160246d&gt;] _raw_spin_lock+0xd/0x10
 [28084.104021]  [&lt;f920e708&gt;] sco_conn_del+0x58/0x1b0 [bluetooth]
 [28084.104021]  [&lt;f920f1a9&gt;] sco_connect_cfm+0xb9/0x2b0 [bluetooth]
 [28084.104021]  [&lt;f91ef289&gt;]
hci_sync_conn_complete_evt.isra.94+0x1c9/0x260 [bluetooth]
 [28084.104021]  [&lt;f91f1a8d&gt;] hci_event_packet+0x74d/0x2b40 [bluetooth]
 [28084.104021]  [&lt;c1501abd&gt;] ? __kfree_skb+0x3d/0x90
 [28084.104021]  [&lt;c1501b46&gt;] ? kfree_skb+0x36/0x90
 [28084.104021]  [&lt;f91fcb4e&gt;] ? hci_send_to_monitor+0x10e/0x190 [bluetooth]
 [28084.104021]  [&lt;f91fcb4e&gt;] ? hci_send_to_monitor+0x10e/0x190 [bluetooth]

Reported-by: Chan-yeol Park &lt;chanyeol.park@gmail.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&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>
commit 0b27a4b97cb1874503c78453c0903df53c0c86b2 upstream.

This reverts commit 269c4845d5b3627b95b1934107251bacbe99bb68.

The commit was causing dead locks and NULL dereferences in the sco code:

 [28084.104013] BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u:0H:7]
 [28084.104021] Modules linked in: btusb bluetooth &lt;snip [last unloaded:
bluetooth]
...
 [28084.104021]  [&lt;c160246d&gt;] _raw_spin_lock+0xd/0x10
 [28084.104021]  [&lt;f920e708&gt;] sco_conn_del+0x58/0x1b0 [bluetooth]
 [28084.104021]  [&lt;f920f1a9&gt;] sco_connect_cfm+0xb9/0x2b0 [bluetooth]
 [28084.104021]  [&lt;f91ef289&gt;]
hci_sync_conn_complete_evt.isra.94+0x1c9/0x260 [bluetooth]
 [28084.104021]  [&lt;f91f1a8d&gt;] hci_event_packet+0x74d/0x2b40 [bluetooth]
 [28084.104021]  [&lt;c1501abd&gt;] ? __kfree_skb+0x3d/0x90
 [28084.104021]  [&lt;c1501b46&gt;] ? kfree_skb+0x36/0x90
 [28084.104021]  [&lt;f91fcb4e&gt;] ? hci_send_to_monitor+0x10e/0x190 [bluetooth]
 [28084.104021]  [&lt;f91fcb4e&gt;] ? hci_send_to_monitor+0x10e/0x190 [bluetooth]

Reported-by: Chan-yeol Park &lt;chanyeol.park@gmail.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: cancel power_on work when unregistering the device</title>
<updated>2013-01-11T17:19:03+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-11-21T02:50:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c7cf062d05129d6d75dabfcb96f5c5a4a92d824c'/>
<id>c7cf062d05129d6d75dabfcb96f5c5a4a92d824c</id>
<content type='text'>
commit b9b5ef188e5a2222cfc16ef62a4703080750b451 upstream.

We need to cancel the hci_power_on work in order to avoid it run when we
try to free the hdev.

[ 1434.201149] ------------[ cut here ]------------
[ 1434.204998] WARNING: at lib/debugobjects.c:261 debug_print_object+0x8e/0xb0()
[ 1434.208324] ODEBUG: free active (active state 0) object type: work_struct hint: hci
_power_on+0x0/0x90
[ 1434.210386] Pid: 8564, comm: trinity-child25 Tainted: G        W    3.7.0-rc5-next-
20121112-sasha-00018-g2f4ce0e #127
[ 1434.210760] Call Trace:
[ 1434.210760]  [&lt;ffffffff819f3d6e&gt;] ? debug_print_object+0x8e/0xb0
[ 1434.210760]  [&lt;ffffffff8110b887&gt;] warn_slowpath_common+0x87/0xb0
[ 1434.210760]  [&lt;ffffffff8110b911&gt;] warn_slowpath_fmt+0x41/0x50
[ 1434.210760]  [&lt;ffffffff819f3d6e&gt;] debug_print_object+0x8e/0xb0
[ 1434.210760]  [&lt;ffffffff8376b750&gt;] ? hci_dev_open+0x310/0x310
[ 1434.210760]  [&lt;ffffffff83bf94e5&gt;] ? _raw_spin_unlock_irqrestore+0x55/0xa0
[ 1434.210760]  [&lt;ffffffff819f3ee5&gt;] __debug_check_no_obj_freed+0xa5/0x230
[ 1434.210760]  [&lt;ffffffff83785db0&gt;] ? bt_host_release+0x10/0x20
[ 1434.210760]  [&lt;ffffffff819f4d15&gt;] debug_check_no_obj_freed+0x15/0x20
[ 1434.210760]  [&lt;ffffffff8125eee7&gt;] kfree+0x227/0x330
[ 1434.210760]  [&lt;ffffffff83785db0&gt;] bt_host_release+0x10/0x20
[ 1434.210760]  [&lt;ffffffff81e539e5&gt;] device_release+0x65/0xc0
[ 1434.210760]  [&lt;ffffffff819d3975&gt;] kobject_cleanup+0x145/0x190
[ 1434.210760]  [&lt;ffffffff819d39cd&gt;] kobject_release+0xd/0x10
[ 1434.210760]  [&lt;ffffffff819d33cc&gt;] kobject_put+0x4c/0x60
[ 1434.210760]  [&lt;ffffffff81e548b2&gt;] put_device+0x12/0x20
[ 1434.210760]  [&lt;ffffffff8376a334&gt;] hci_free_dev+0x24/0x30
[ 1434.210760]  [&lt;ffffffff82fd8fe1&gt;] vhci_release+0x31/0x60
[ 1434.210760]  [&lt;ffffffff8127be12&gt;] __fput+0x122/0x250
[ 1434.210760]  [&lt;ffffffff811cab0d&gt;] ? rcu_user_exit+0x9d/0xd0
[ 1434.210760]  [&lt;ffffffff8127bf49&gt;] ____fput+0x9/0x10
[ 1434.210760]  [&lt;ffffffff81133402&gt;] task_work_run+0xb2/0xf0
[ 1434.210760]  [&lt;ffffffff8106cfa7&gt;] do_notify_resume+0x77/0xa0
[ 1434.210760]  [&lt;ffffffff83bfb0ea&gt;] int_signal+0x12/0x17
[ 1434.210760] ---[ end trace a6d57fefbc8a8cc7 ]---

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&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>
commit b9b5ef188e5a2222cfc16ef62a4703080750b451 upstream.

We need to cancel the hci_power_on work in order to avoid it run when we
try to free the hdev.

[ 1434.201149] ------------[ cut here ]------------
[ 1434.204998] WARNING: at lib/debugobjects.c:261 debug_print_object+0x8e/0xb0()
[ 1434.208324] ODEBUG: free active (active state 0) object type: work_struct hint: hci
_power_on+0x0/0x90
[ 1434.210386] Pid: 8564, comm: trinity-child25 Tainted: G        W    3.7.0-rc5-next-
20121112-sasha-00018-g2f4ce0e #127
[ 1434.210760] Call Trace:
[ 1434.210760]  [&lt;ffffffff819f3d6e&gt;] ? debug_print_object+0x8e/0xb0
[ 1434.210760]  [&lt;ffffffff8110b887&gt;] warn_slowpath_common+0x87/0xb0
[ 1434.210760]  [&lt;ffffffff8110b911&gt;] warn_slowpath_fmt+0x41/0x50
[ 1434.210760]  [&lt;ffffffff819f3d6e&gt;] debug_print_object+0x8e/0xb0
[ 1434.210760]  [&lt;ffffffff8376b750&gt;] ? hci_dev_open+0x310/0x310
[ 1434.210760]  [&lt;ffffffff83bf94e5&gt;] ? _raw_spin_unlock_irqrestore+0x55/0xa0
[ 1434.210760]  [&lt;ffffffff819f3ee5&gt;] __debug_check_no_obj_freed+0xa5/0x230
[ 1434.210760]  [&lt;ffffffff83785db0&gt;] ? bt_host_release+0x10/0x20
[ 1434.210760]  [&lt;ffffffff819f4d15&gt;] debug_check_no_obj_freed+0x15/0x20
[ 1434.210760]  [&lt;ffffffff8125eee7&gt;] kfree+0x227/0x330
[ 1434.210760]  [&lt;ffffffff83785db0&gt;] bt_host_release+0x10/0x20
[ 1434.210760]  [&lt;ffffffff81e539e5&gt;] device_release+0x65/0xc0
[ 1434.210760]  [&lt;ffffffff819d3975&gt;] kobject_cleanup+0x145/0x190
[ 1434.210760]  [&lt;ffffffff819d39cd&gt;] kobject_release+0xd/0x10
[ 1434.210760]  [&lt;ffffffff819d33cc&gt;] kobject_put+0x4c/0x60
[ 1434.210760]  [&lt;ffffffff81e548b2&gt;] put_device+0x12/0x20
[ 1434.210760]  [&lt;ffffffff8376a334&gt;] hci_free_dev+0x24/0x30
[ 1434.210760]  [&lt;ffffffff82fd8fe1&gt;] vhci_release+0x31/0x60
[ 1434.210760]  [&lt;ffffffff8127be12&gt;] __fput+0x122/0x250
[ 1434.210760]  [&lt;ffffffff811cab0d&gt;] ? rcu_user_exit+0x9d/0xd0
[ 1434.210760]  [&lt;ffffffff8127bf49&gt;] ____fput+0x9/0x10
[ 1434.210760]  [&lt;ffffffff81133402&gt;] task_work_run+0xb2/0xf0
[ 1434.210760]  [&lt;ffffffff8106cfa7&gt;] do_notify_resume+0x77/0xa0
[ 1434.210760]  [&lt;ffffffff83bfb0ea&gt;] int_signal+0x12/0x17
[ 1434.210760] ---[ end trace a6d57fefbc8a8cc7 ]---

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Add missing lock nesting notation</title>
<updated>2013-01-11T17:19:03+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-11-21T01:25:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5795b170bfde23d424fb15d2c945d5dfb827e063'/>
<id>5795b170bfde23d424fb15d2c945d5dfb827e063</id>
<content type='text'>
commit dc2a0e20fbc85a71c63aa4330b496fda33f6bf80 upstream.

This patch fixes the following report, it happens when accepting rfcomm
connections:

[  228.165378] =============================================
[  228.165378] [ INFO: possible recursive locking detected ]
[  228.165378] 3.7.0-rc1-00536-gc1d5dc4 #120 Tainted: G        W
[  228.165378] ---------------------------------------------
[  228.165378] bluetoothd/1341 is trying to acquire lock:
[  228.165378]  (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+...}, at:
[&lt;ffffffffa0000aa0&gt;] bt_accept_dequeue+0xa0/0x180 [bluetooth]
[  228.165378]
[  228.165378] but task is already holding lock:
[  228.165378]  (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+...}, at:
[&lt;ffffffffa0205118&gt;] rfcomm_sock_accept+0x58/0x2d0 [rfcomm]
[  228.165378]
[  228.165378] other info that might help us debug this:
[  228.165378]  Possible unsafe locking scenario:
[  228.165378]
[  228.165378]        CPU0
[  228.165378]        ----
[  228.165378]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM);
[  228.165378]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM);
[  228.165378]
[  228.165378]  *** DEADLOCK ***
[  228.165378]
[  228.165378]  May be due to missing lock nesting notation

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&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>
commit dc2a0e20fbc85a71c63aa4330b496fda33f6bf80 upstream.

This patch fixes the following report, it happens when accepting rfcomm
connections:

[  228.165378] =============================================
[  228.165378] [ INFO: possible recursive locking detected ]
[  228.165378] 3.7.0-rc1-00536-gc1d5dc4 #120 Tainted: G        W
[  228.165378] ---------------------------------------------
[  228.165378] bluetoothd/1341 is trying to acquire lock:
[  228.165378]  (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+...}, at:
[&lt;ffffffffa0000aa0&gt;] bt_accept_dequeue+0xa0/0x180 [bluetooth]
[  228.165378]
[  228.165378] but task is already holding lock:
[  228.165378]  (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+...}, at:
[&lt;ffffffffa0205118&gt;] rfcomm_sock_accept+0x58/0x2d0 [rfcomm]
[  228.165378]
[  228.165378] other info that might help us debug this:
[  228.165378]  Possible unsafe locking scenario:
[  228.165378]
[  228.165378]        CPU0
[  228.165378]        ----
[  228.165378]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM);
[  228.165378]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM);
[  228.165378]
[  228.165378]  *** DEADLOCK ***
[  228.165378]
[  228.165378]  May be due to missing lock nesting notation

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>sctp: jsctp_sf_eat_sack: fix jprobes function signature mismatch</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Daniel Borkmann</name>
<email>dborkman@redhat.com</email>
</author>
<published>2012-12-15T10:12:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b5810b8da2248adc73a1bf3def752d99beb87cca'/>
<id>b5810b8da2248adc73a1bf3def752d99beb87cca</id>
<content type='text'>
[ Upstream commit 4cb9d6eaf85ecdd266a9a5c6d825c56ca9eefc14 ]

Commit 24cb81a6a (sctp: Push struct net down into all of the
state machine functions) introduced the net structure into all
state machine functions, but jsctp_sf_eat_sack was not updated,
hence when SCTP association probing is enabled in the kernel,
any simple SCTP client/server program from userspace will panic
the kernel.

Cc: Vlad Yasevich &lt;vyasevich@gmail.com&gt;
Signed-off-by: Daniel Borkmann &lt;dborkman@redhat.com&gt;
Acked-by: Vlad Yasevich &lt;vyasevich@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 4cb9d6eaf85ecdd266a9a5c6d825c56ca9eefc14 ]

Commit 24cb81a6a (sctp: Push struct net down into all of the
state machine functions) introduced the net structure into all
state machine functions, but jsctp_sf_eat_sack was not updated,
hence when SCTP association probing is enabled in the kernel,
any simple SCTP client/server program from userspace will panic
the kernel.

Cc: Vlad Yasevich &lt;vyasevich@gmail.com&gt;
Signed-off-by: Daniel Borkmann &lt;dborkman@redhat.com&gt;
Acked-by: Vlad Yasevich &lt;vyasevich@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>net: sched: integer overflow fix</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Stefan Hasko</name>
<email>hasko.stevo@gmail.com</email>
</author>
<published>2012-12-21T15:04:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=316899aceab5510d296f9437e410401409e9ce19'/>
<id>316899aceab5510d296f9437e410401409e9ce19</id>
<content type='text'>
[ Upstream commit d2fe85da52e89b8012ffad010ef352a964725d5f ]

Fixed integer overflow in function htb_dequeue

Signed-off-by: Stefan Hasko &lt;hasko.stevo@gmail.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.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 d2fe85da52e89b8012ffad010ef352a964725d5f ]

Fixed integer overflow in function htb_dequeue

Signed-off-by: Stefan Hasko &lt;hasko.stevo@gmail.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.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>mac802154: fix NOHZ local_softirq_pending 08 warning</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Alexander Aring</name>
<email>alex.aring@googlemail.com</email>
</author>
<published>2013-01-02T01:01:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ae51878d61c4b39eae37d1bf29032e185b8e6501'/>
<id>ae51878d61c4b39eae37d1bf29032e185b8e6501</id>
<content type='text'>
[ Upstream commit 5ff3fec6d3fc848753c2fa30b18607358f89a202 ]

When using nanosleep() in an userspace application we get a
ratelimit warning

NOHZ: local_softirq_pending 08

for 10 times.

This patch replaces netif_rx() with netif_rx_ni() which has
to be used from process/softirq context.
The process/softirq context will be called from fakelb driver.

See linux-kernel commit 481a819 for similar fix.

Signed-off-by: Alexander Aring &lt;alex.aring@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 5ff3fec6d3fc848753c2fa30b18607358f89a202 ]

When using nanosleep() in an userspace application we get a
ratelimit warning

NOHZ: local_softirq_pending 08

for 10 times.

This patch replaces netif_rx() with netif_rx_ni() which has
to be used from process/softirq context.
The process/softirq context will be called from fakelb driver.

See linux-kernel commit 481a819 for similar fix.

Signed-off-by: Alexander Aring &lt;alex.aring@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>ipv6: Change skb-&gt;data before using icmpv6_notify() to propagate redirect</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Duan Jiong</name>
<email>djduanjiong@gmail.com</email>
</author>
<published>2012-12-14T02:59:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=29a21388c86ffa0d18018a7ddf49aa129588a339'/>
<id>29a21388c86ffa0d18018a7ddf49aa129588a339</id>
<content type='text'>
[ Upstream commit 093d04d42fa094f6740bb188f0ad0c215ff61e2c ]

In function ndisc_redirect_rcv(), the skb-&gt;data points to the transport
header, but function icmpv6_notify() need the skb-&gt;data points to the
inner IP packet. So before using icmpv6_notify() to propagate redirect,
change skb-&gt;data to point the inner IP packet that triggered the sending
of the Redirect, and introduce struct rd_msg to make it easy.

Signed-off-by: Duan Jiong &lt;djduanjiong@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 093d04d42fa094f6740bb188f0ad0c215ff61e2c ]

In function ndisc_redirect_rcv(), the skb-&gt;data points to the transport
header, but function icmpv6_notify() need the skb-&gt;data points to the
inner IP packet. So before using icmpv6_notify() to propagate redirect,
change skb-&gt;data to point the inner IP packet that triggered the sending
of the Redirect, and introduce struct rd_msg to make it easy.

Signed-off-by: Duan Jiong &lt;djduanjiong@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>inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and dccp_v4/6_request_recv_sock</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Christoph Paasch</name>
<email>christoph.paasch@uclouvain.be</email>
</author>
<published>2012-12-14T04:07:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9ce4b845ed059b9104f3bb204db6306e52b25d1b'/>
<id>9ce4b845ed059b9104f3bb204db6306e52b25d1b</id>
<content type='text'>
[ Upstream commit e337e24d6624e74a558aa69071e112a65f7b5758 ]

If in either of the above functions inet_csk_route_child_sock() or
__inet_inherit_port() fails, the newsk will not be freed:

unreferenced object 0xffff88022e8a92c0 (size 1592):
  comm "softirq", pid 0, jiffies 4294946244 (age 726.160s)
  hex dump (first 32 bytes):
    0a 01 01 01 0a 01 01 02 00 00 00 00 a7 cc 16 00  ................
    02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;ffffffff8153d190&gt;] kmemleak_alloc+0x21/0x3e
    [&lt;ffffffff810ab3e7&gt;] kmem_cache_alloc+0xb5/0xc5
    [&lt;ffffffff8149b65b&gt;] sk_prot_alloc.isra.53+0x2b/0xcd
    [&lt;ffffffff8149b784&gt;] sk_clone_lock+0x16/0x21e
    [&lt;ffffffff814d711a&gt;] inet_csk_clone_lock+0x10/0x7b
    [&lt;ffffffff814ebbc3&gt;] tcp_create_openreq_child+0x21/0x481
    [&lt;ffffffff814e8fa5&gt;] tcp_v4_syn_recv_sock+0x3a/0x23b
    [&lt;ffffffff814ec5ba&gt;] tcp_check_req+0x29f/0x416
    [&lt;ffffffff814e8e10&gt;] tcp_v4_do_rcv+0x161/0x2bc
    [&lt;ffffffff814eb917&gt;] tcp_v4_rcv+0x6c9/0x701
    [&lt;ffffffff814cea9f&gt;] ip_local_deliver_finish+0x70/0xc4
    [&lt;ffffffff814cec20&gt;] ip_local_deliver+0x4e/0x7f
    [&lt;ffffffff814ce9f8&gt;] ip_rcv_finish+0x1fc/0x233
    [&lt;ffffffff814cee68&gt;] ip_rcv+0x217/0x267
    [&lt;ffffffff814a7bbe&gt;] __netif_receive_skb+0x49e/0x553
    [&lt;ffffffff814a7cc3&gt;] netif_receive_skb+0x50/0x82

This happens, because sk_clone_lock initializes sk_refcnt to 2, and thus
a single sock_put() is not enough to free the memory. Additionally, things
like xfrm, memcg, cookie_values,... may have been initialized.
We have to free them properly.

This is fixed by forcing a call to tcp_done(), ending up in
inet_csk_destroy_sock, doing the final sock_put(). tcp_done() is necessary,
because it ends up doing all the cleanup on xfrm, memcg, cookie_values,
xfrm,...

Before calling tcp_done, we have to set the socket to SOCK_DEAD, to
force it entering inet_csk_destroy_sock. To avoid the warning in
inet_csk_destroy_sock, inet_num has to be set to 0.
As inet_csk_destroy_sock does a dec on orphan_count, we first have to
increase it.

Calling tcp_done() allows us to remove the calls to
tcp_clear_xmit_timer() and tcp_cleanup_congestion_control().

A similar approach is taken for dccp by calling dccp_done().

This is in the kernel since 093d282321 (tproxy: fix hash locking issue
when using port redirection in __inet_inherit_port()), thus since
version &gt;= 2.6.37.

Signed-off-by: Christoph Paasch &lt;christoph.paasch@uclouvain.be&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 e337e24d6624e74a558aa69071e112a65f7b5758 ]

If in either of the above functions inet_csk_route_child_sock() or
__inet_inherit_port() fails, the newsk will not be freed:

unreferenced object 0xffff88022e8a92c0 (size 1592):
  comm "softirq", pid 0, jiffies 4294946244 (age 726.160s)
  hex dump (first 32 bytes):
    0a 01 01 01 0a 01 01 02 00 00 00 00 a7 cc 16 00  ................
    02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;ffffffff8153d190&gt;] kmemleak_alloc+0x21/0x3e
    [&lt;ffffffff810ab3e7&gt;] kmem_cache_alloc+0xb5/0xc5
    [&lt;ffffffff8149b65b&gt;] sk_prot_alloc.isra.53+0x2b/0xcd
    [&lt;ffffffff8149b784&gt;] sk_clone_lock+0x16/0x21e
    [&lt;ffffffff814d711a&gt;] inet_csk_clone_lock+0x10/0x7b
    [&lt;ffffffff814ebbc3&gt;] tcp_create_openreq_child+0x21/0x481
    [&lt;ffffffff814e8fa5&gt;] tcp_v4_syn_recv_sock+0x3a/0x23b
    [&lt;ffffffff814ec5ba&gt;] tcp_check_req+0x29f/0x416
    [&lt;ffffffff814e8e10&gt;] tcp_v4_do_rcv+0x161/0x2bc
    [&lt;ffffffff814eb917&gt;] tcp_v4_rcv+0x6c9/0x701
    [&lt;ffffffff814cea9f&gt;] ip_local_deliver_finish+0x70/0xc4
    [&lt;ffffffff814cec20&gt;] ip_local_deliver+0x4e/0x7f
    [&lt;ffffffff814ce9f8&gt;] ip_rcv_finish+0x1fc/0x233
    [&lt;ffffffff814cee68&gt;] ip_rcv+0x217/0x267
    [&lt;ffffffff814a7bbe&gt;] __netif_receive_skb+0x49e/0x553
    [&lt;ffffffff814a7cc3&gt;] netif_receive_skb+0x50/0x82

This happens, because sk_clone_lock initializes sk_refcnt to 2, and thus
a single sock_put() is not enough to free the memory. Additionally, things
like xfrm, memcg, cookie_values,... may have been initialized.
We have to free them properly.

This is fixed by forcing a call to tcp_done(), ending up in
inet_csk_destroy_sock, doing the final sock_put(). tcp_done() is necessary,
because it ends up doing all the cleanup on xfrm, memcg, cookie_values,
xfrm,...

Before calling tcp_done, we have to set the socket to SOCK_DEAD, to
force it entering inet_csk_destroy_sock. To avoid the warning in
inet_csk_destroy_sock, inet_num has to be set to 0.
As inet_csk_destroy_sock does a dec on orphan_count, we first have to
increase it.

Calling tcp_done() allows us to remove the calls to
tcp_clear_xmit_timer() and tcp_cleanup_congestion_control().

A similar approach is taken for dccp by calling dccp_done().

This is in the kernel since 093d282321 (tproxy: fix hash locking issue
when using port redirection in __inet_inherit_port()), thus since
version &gt;= 2.6.37.

Signed-off-by: Christoph Paasch &lt;christoph.paasch@uclouvain.be&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>batman-adv: fix random jitter calculation</title>
<updated>2013-01-11T17:18:51+00:00</updated>
<author>
<name>Akinobu Mita</name>
<email>akinobu.mita@gmail.com</email>
</author>
<published>2012-12-26T02:32:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6558b40d737d831bad3214a40eac72b226190673'/>
<id>6558b40d737d831bad3214a40eac72b226190673</id>
<content type='text'>
[ Upstream commit 143cdd8f33909ff5a153e3f02048738c5964ba26 ]

batadv_iv_ogm_emit_send_time() attempts to calculates a random integer
in the range of 'orig_interval +- BATADV_JITTER' by the below lines.

        msecs = atomic_read(&amp;bat_priv-&gt;orig_interval) - BATADV_JITTER;
        msecs += (random32() % 2 * BATADV_JITTER);

But it actually gets 'orig_interval' or 'orig_interval - BATADV_JITTER'
because '%' and '*' have same precedence and associativity is
left-to-right.

This adds the parentheses at the appropriate position so that it matches
original intension.

Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Acked-by: Antonio Quartulli &lt;ordex@autistici.org&gt;
Cc: Marek Lindner &lt;lindner_marek@yahoo.de&gt;
Cc: Simon Wunderlich &lt;siwu@hrz.tu-chemnitz.de&gt;
Cc: Antonio Quartulli &lt;ordex@autistici.org&gt;
Cc: b.a.t.m.a.n@lists.open-mesh.org
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: netdev@vger.kernel.org
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 143cdd8f33909ff5a153e3f02048738c5964ba26 ]

batadv_iv_ogm_emit_send_time() attempts to calculates a random integer
in the range of 'orig_interval +- BATADV_JITTER' by the below lines.

        msecs = atomic_read(&amp;bat_priv-&gt;orig_interval) - BATADV_JITTER;
        msecs += (random32() % 2 * BATADV_JITTER);

But it actually gets 'orig_interval' or 'orig_interval - BATADV_JITTER'
because '%' and '*' have same precedence and associativity is
left-to-right.

This adds the parentheses at the appropriate position so that it matches
original intension.

Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Acked-by: Antonio Quartulli &lt;ordex@autistici.org&gt;
Cc: Marek Lindner &lt;lindner_marek@yahoo.de&gt;
Cc: Simon Wunderlich &lt;siwu@hrz.tu-chemnitz.de&gt;
Cc: Antonio Quartulli &lt;ordex@autistici.org&gt;
Cc: b.a.t.m.a.n@lists.open-mesh.org
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: netdev@vger.kernel.org
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>virtio: 9p: correctly pass physical address to userspace for high pages</title>
<updated>2013-01-11T17:18:18+00:00</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2012-10-19T13:03:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7420b25f0873f561e70c7cda716587014cee95c3'/>
<id>7420b25f0873f561e70c7cda716587014cee95c3</id>
<content type='text'>
commit b9cdc88df8e63e81c723b82c286fc97f5d0dc325 upstream.

When using a virtio transport, the 9p net device may pass the physical
address of a kernel buffer to userspace via a scatterlist inside a
virtqueue. If the kernel buffer is mapped outside of the linear mapping
(e.g. highmem), then virt_to_page will return a bogus value and we will
populate the scatterlist with junk.

This patch uses kmap_to_page when populating the page array for a kernel
buffer.

Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: Sasha Levin &lt;levinsasha928@gmail.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&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>
commit b9cdc88df8e63e81c723b82c286fc97f5d0dc325 upstream.

When using a virtio transport, the 9p net device may pass the physical
address of a kernel buffer to userspace via a scatterlist inside a
virtqueue. If the kernel buffer is mapped outside of the linear mapping
(e.g. highmem), then virt_to_page will return a bogus value and we will
populate the scatterlist with junk.

This patch uses kmap_to_page when populating the page array for a kernel
buffer.

Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: Sasha Levin &lt;levinsasha928@gmail.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
</feed>
