<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/net, branch v2.6.33.5</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/net?h=v2.6.33.5</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/net?h=v2.6.33.5'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-05-12T22:02:59Z</updated>
<entry>
<title>sctp: Fix oops when sending queued ASCONF chunks</title>
<updated>2010-05-12T22:02:59Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vladislav.yasevich@hp.com</email>
</author>
<published>2010-04-28T08:47:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8cee6e2f8cd203fd5dfaf10a54b64084eb572e02'/>
<id>urn:sha1:8cee6e2f8cd203fd5dfaf10a54b64084eb572e02</id>
<content type='text'>
[ Upstream commit c0786693404cffd80ca3cb6e75ee7b35186b2825 ]

When we finish processing ASCONF_ACK chunk, we try to send
the next queued ASCONF.  This action runs the sctp state
machine recursively and it's not prepared to do so.

kernel BUG at kernel/timer.c:790!
invalid opcode: 0000 [#1] SMP
last sysfs file: /sys/module/ipv6/initstate
Modules linked in: sha256_generic sctp libcrc32c ipv6 dm_multipath
uinput 8139too i2c_piix4 8139cp mii i2c_core pcspkr virtio_net joydev
floppy virtio_blk virtio_pci [last unloaded: scsi_wait_scan]

Pid: 0, comm: swapper Not tainted 2.6.34-rc4 #15 /Bochs
EIP: 0060:[&lt;c044a2ef&gt;] EFLAGS: 00010286 CPU: 0
EIP is at add_timer+0xd/0x1b
EAX: cecbab14 EBX: 000000f0 ECX: c0957b1c EDX: 03595cf4
ESI: cecba800 EDI: cf276f00 EBP: c0957aa0 ESP: c0957aa0
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process swapper (pid: 0, ti=c0956000 task=c0988ba0 task.ti=c0956000)
Stack:
 c0957ae0 d1851214 c0ab62e4 c0ab5f26 0500ffff 00000004 00000005 00000004
&lt;0&gt; 00000000 d18694fd 00000004 1666b892 cecba800 cecba800 c0957b14
00000004
&lt;0&gt; c0957b94 d1851b11 ceda8b00 cecba800 cf276f00 00000001 c0957b14
000000d0
Call Trace:
 [&lt;d1851214&gt;] ? sctp_side_effects+0x607/0xdfc [sctp]
 [&lt;d1851b11&gt;] ? sctp_do_sm+0x108/0x159 [sctp]
 [&lt;d1863386&gt;] ? sctp_pname+0x0/0x1d [sctp]
 [&lt;d1861a56&gt;] ? sctp_primitive_ASCONF+0x36/0x3b [sctp]
 [&lt;d185657c&gt;] ? sctp_process_asconf_ack+0x2a4/0x2d3 [sctp]
 [&lt;d184e35c&gt;] ? sctp_sf_do_asconf_ack+0x1dd/0x2b4 [sctp]
 [&lt;d1851ac1&gt;] ? sctp_do_sm+0xb8/0x159 [sctp]
 [&lt;d1863334&gt;] ? sctp_cname+0x0/0x52 [sctp]
 [&lt;d1854377&gt;] ? sctp_assoc_bh_rcv+0xac/0xe1 [sctp]
 [&lt;d1858f0f&gt;] ? sctp_inq_push+0x2d/0x30 [sctp]
 [&lt;d186329d&gt;] ? sctp_rcv+0x797/0x82e [sctp]

Tested-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: Yuansong Qiao &lt;ysqiao@research.ait.ie&gt;
Signed-off-by: Shuaijun Zhang &lt;szhang@research.ait.ie&gt;
Signed-off-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sctp: avoid irq lock inversion while call sk-&gt;sk_data_ready()</title>
<updated>2010-05-12T22:02:57Z</updated>
<author>
<name>Wei Yongjun</name>
<email>yjwei@cn.fujitsu.com</email>
</author>
<published>2010-04-28T08:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fbcf931163be5f6c34cad7f00dc59ed83146e158'/>
<id>urn:sha1:fbcf931163be5f6c34cad7f00dc59ed83146e158</id>
<content type='text'>
[ Upstream commit 561b1733a465cf9677356b40c27653dd45f1ac56 ]

sk-&gt;sk_data_ready() of sctp socket can be called from both BH and non-BH
contexts, but the default sk-&gt;sk_data_ready(), sock_def_readable(), can
not be used in this case. Therefore, we have to make a new function
sctp_data_ready() to grab sk-&gt;sk_data_ready() with BH disabling.

=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.33-rc6 #129
---------------------------------------------------------
sctp_darn/1517 just changed the state of lock:
 (clock-AF_INET){++.?..}, at: [&lt;c06aab60&gt;] sock_def_readable+0x20/0x80
but this lock took another, SOFTIRQ-unsafe lock in the past:
 (slock-AF_INET){+.-...}

and interrupts could create inverse lock ordering between them.

other info that might help us debug this:
1 lock held by sctp_darn/1517:
 #0:  (sk_lock-AF_INET){+.+.+.}, at: [&lt;cdfe363d&gt;] sctp_sendmsg+0x23d/0xc00 [sctp]

Signed-off-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>netlink: fix unaligned access in nla_get_be64()</title>
<updated>2010-04-01T23:02:09Z</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2010-03-16T13:30:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f8adc4007d65d74f68c8ee3cbd4a068fc415580c'/>
<id>urn:sha1:f8adc4007d65d74f68c8ee3cbd4a068fc415580c</id>
<content type='text'>
[ Upstream commit f5d410f2ea7ba340f11815a56e05b9fa9421c421 ]

This patch fixes a unaligned access in nla_get_be64() that was
introduced by myself in a17c859849402315613a0015ac8fbf101acf0cc1.

Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ipsec: Fix bogus bundle flowi</title>
<updated>2010-04-01T23:02:06Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2010-03-02T02:51:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9f24b75bf551b5f343159da229ce734da380431b'/>
<id>urn:sha1:9f24b75bf551b5f343159da229ce734da380431b</id>
<content type='text'>
[ Upstream commit 87c1e12b5eeb7b30b4b41291bef8e0b41fc3dde9 ]

When I merged the bundle creation code, I introduced a bogus
flowi value in the bundle.  Instead of getting from the caller,
it was instead set to the flow in the route object, which is
totally different.

The end result is that the bundles we created never match, and
we instead end up with an ever growing bundle list.

Thanks to Jamal for find this problem.

Reported-by: Jamal Hadi Salim &lt;hadi@cyberus.ca&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Acked-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Acked-by: Jamal Hadi Salim &lt;hadi@cyberus.ca&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>net: add __must_check to sk_add_backlog</title>
<updated>2010-04-01T23:02:05Z</updated>
<author>
<name>Zhu Yi</name>
<email>yi.zhu@intel.com</email>
</author>
<published>2010-03-07T16:21:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cb63112d399b25ce7e4a5d84065f342b978cd9a4'/>
<id>urn:sha1:cb63112d399b25ce7e4a5d84065f342b978cd9a4</id>
<content type='text'>
[ Upstream commit 4045635318538d3ddd2007720412fdc4b08f6a62 ]

Add the "__must_check" tag to sk_add_backlog() so that any failure to
check and drop packets will be warned about.

Signed-off-by: Zhu Yi &lt;yi.zhu@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>net: backlog functions rename</title>
<updated>2010-04-01T23:02:04Z</updated>
<author>
<name>Zhu Yi</name>
<email>yi.zhu@intel.com</email>
</author>
<published>2010-03-04T18:01:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a12a9a26ff389892df27e2ff4cbf03e5b2ed0d64'/>
<id>urn:sha1:a12a9a26ff389892df27e2ff4cbf03e5b2ed0d64</id>
<content type='text'>
[ Upstream commit a3a858ff18a72a8d388e31ab0d98f7e944841a62 ]

sk_add_backlog -&gt; __sk_add_backlog
sk_add_backlog_limited -&gt; sk_add_backlog

Signed-off-by: Zhu Yi &lt;yi.zhu@intel.com&gt;
Acked-by: 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@suse.de&gt;


</content>
</entry>
<entry>
<title>net: add limit for socket backlog</title>
<updated>2010-04-01T23:02:02Z</updated>
<author>
<name>Zhu Yi</name>
<email>yi.zhu@intel.com</email>
</author>
<published>2010-03-04T18:01:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ab9dd052e4d0c4d281ceec0b7e410e229beb6fb2'/>
<id>urn:sha1:ab9dd052e4d0c4d281ceec0b7e410e229beb6fb2</id>
<content type='text'>
[ Upstream commit 8eae939f1400326b06d0c9afe53d2a484a326871 ]

We got system OOM while running some UDP netperf testing on the loopback
device. The case is multiple senders sent stream UDP packets to a single
receiver via loopback on local host. Of course, the receiver is not able
to handle all the packets in time. But we surprisingly found that these
packets were not discarded due to the receiver's sk-&gt;sk_rcvbuf limit.
Instead, they are kept queuing to sk-&gt;sk_backlog and finally ate up all
the memory. We believe this is a secure hole that a none privileged user
can crash the system.

The root cause for this problem is, when the receiver is doing
__release_sock() (i.e. after userspace recv, kernel udp_recvmsg -&gt;
skb_free_datagram_locked -&gt; release_sock), it moves skbs from backlog to
sk_receive_queue with the softirq enabled. In the above case, multiple
busy senders will almost make it an endless loop. The skbs in the
backlog end up eat all the system memory.

The issue is not only for UDP. Any protocols using socket backlog is
potentially affected. The patch adds limit for socket backlog so that
the backlog size cannot be expanded endlessly.

Reported-by: Alex Shi &lt;alex.shi@intel.com&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@ghostprotocols.net&gt;
Cc: Alexey Kuznetsov &lt;kuznet@ms2.inr.ac.ru&gt;
Cc: "Pekka Savola (ipv6)" &lt;pekkas@netcore.fi&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
Cc: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Cc: Sridhar Samudrala &lt;sri@us.ibm.com&gt;
Cc: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Cc: Allan Stephens &lt;allan.stephens@windriver.com&gt;
Cc: Andrew Hendry &lt;andrew.hendry@gmail.com&gt;
Signed-off-by: Zhu Yi &lt;yi.zhu@intel.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: Retry null data frame for power save</title>
<updated>2010-04-01T23:01:57Z</updated>
<author>
<name>Vivek Natarajan</name>
<email>vnatarajan@atheros.com</email>
</author>
<published>2010-03-11T20:59:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=03d0e14875e0f4151ec039125c15ca46e056b914'/>
<id>urn:sha1:03d0e14875e0f4151ec039125c15ca46e056b914</id>
<content type='text'>
commit 375177bf35efc08e1bd37bbda4cc0c8cc4db8500 upstream.

Even if the null data frame is not acked by the AP, mac80211
goes into power save. This might lead to loss of frames
from the AP.
Prevent this by restarting dynamic_ps_timer when ack is not
received for null data frames.

Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: Vivek Natarajan &lt;vnatarajan@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: Fix HT rate control configuration</title>
<updated>2010-04-01T23:01:09Z</updated>
<author>
<name>Sujith</name>
<email>Sujith.Manoharan@atheros.com</email>
</author>
<published>2010-03-01T09:12:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5421e40def70b76fb0a677f963a8390b6c3cc69a'/>
<id>urn:sha1:5421e40def70b76fb0a677f963a8390b6c3cc69a</id>
<content type='text'>
commit 4fa004373133ece3d9b1c0a7e243b0e53760b165 upstream.

Handling HT configuration changes involved setting the channel
with the new HT parameters and then issuing a rate_update()
notification to the driver.

This behavior changed after the off-channel changes. Now, the channel
is not updated with the new HT params in enable_ht() - instead, it
is now done when the scan work terminates. This results in the driver
depending on stale information, defaulting to non-HT mode always.

Fix this by passing the new channel type to the driver.

Signed-off-by: Sujith &lt;Sujith.Manoharan@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>netfilter: nf_conntrack: fix hash resizing with namespaces</title>
<updated>2010-02-08T19:18:07Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2010-02-08T19:18:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d696c7bdaa55e2208e56c6f98e6bc1599f34286d'/>
<id>urn:sha1:d696c7bdaa55e2208e56c6f98e6bc1599f34286d</id>
<content type='text'>
As noticed by Jon Masters &lt;jonathan@jonmasters.org&gt;, the conntrack hash
size is global and not per namespace, but modifiable at runtime through
/sys/module/nf_conntrack/hashsize. Changing the hash size will only
resize the hash in the current namespace however, so other namespaces
will use an invalid hash size. This can cause crashes when enlarging
the hashsize, or false negative lookups when shrinking it.

Move the hash size into the per-namespace data and only use the global
hash size to initialize the per-namespace value when instanciating a
new namespace. Additionally restrict hash resizing to init_net for
now as other namespaces are not handled currently.

Cc: stable@kernel.org
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
