<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net, branch v2.6.24.5</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net?h=v2.6.24.5</id>
<link rel='self' href='https://git.amat.us/linux/atom/net?h=v2.6.24.5'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2008-04-19T01:53:27Z</updated>
<entry>
<title>bluetooth: hci_core: defer hci_unregister_sysfs()</title>
<updated>2008-04-19T01:53:27Z</updated>
<author>
<name>Dave Young</name>
<email>hidave.darkstar@gmail.com</email>
</author>
<published>2008-03-06T02:45:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d5a425ea8e29fc0c17fb72a6fd2aed68df8e9cfe'/>
<id>urn:sha1:d5a425ea8e29fc0c17fb72a6fd2aed68df8e9cfe</id>
<content type='text'>
upstream commit: 147e2d59833e994cc99341806a88b9e59be41391

Alon Bar-Lev reports:

 Feb 16 23:41:33 alon1 usb 3-1: configuration #1 chosen from 1 choice
Feb 16 23:41:33 alon1 BUG: unable to handle kernel NULL pointer
dereference at virtual address 00000008
Feb 16 23:41:33 alon1 printing eip: c01b2db6 *pde = 00000000
Feb 16 23:41:33 alon1 Oops: 0000 [#1] PREEMPT
Feb 16 23:41:33 alon1 Modules linked in: ppp_deflate zlib_deflate
zlib_inflate bsd_comp ppp_async rfcomm l2cap hci_usb vmnet(P)
vmmon(P) tun radeon drm autofs4 ipv6 aes_generic crypto_algapi
ieee80211_crypt_ccmp nf_nat_irc nf_nat_ftp nf_conntrack_irc
nf_conntrack_ftp ipt_MASQUERADE iptable_nat nf_nat ipt_REJECT
xt_tcpudp ipt_LOG xt_limit xt_state nf_conntrack_ipv4 nf_conntrack
iptable_filter ip_tables x_tables snd_pcm_oss snd_mixer_oss
snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device
bluetooth ppp_generic slhc ioatdma dca cfq_iosched cpufreq_powersave
cpufreq_ondemand cpufreq_conservative acpi_cpufreq freq_table uinput
fan af_packet nls_cp1255 nls_iso8859_1 nls_utf8 nls_base pcmcia
snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm nsc_ircc snd_timer
ipw2200 thinkpad_acpi irda snd ehci_hcd yenta_socket uhci_hcd
psmouse ieee80211 soundcore intel_agp hwmon rsrc_nonstatic pcspkr
e1000 crc_ccitt snd_page_alloc i2c_i801 ieee80211_crypt pcmcia_core
agpgart thermal bat!
tery nvram rtc sr_mod ac sg firmware_class button processor cdrom
unix usbcore evdev ext3 jbd ext2 mbcache loop ata_piix libata sd_mod
scsi_mod
Feb 16 23:41:33 alon1
Feb 16 23:41:33 alon1 Pid: 4, comm: events/0 Tainted: P
(2.6.24-gentoo-r2 #1)
Feb 16 23:41:33 alon1 EIP: 0060:[&lt;c01b2db6&gt;] EFLAGS: 00010282 CPU: 0
Feb 16 23:41:33 alon1 EIP is at sysfs_get_dentry+0x26/0x80
Feb 16 23:41:33 alon1 EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX:
f48a2210
Feb 16 23:41:33 alon1 ESI: f72eb900 EDI: f4803ae0 EBP: f4803ae0 ESP:
f7c49efc
Feb 16 23:41:33 alon1 hcid[7004]: HCI dev 0 registered
Feb 16 23:41:33 alon1 DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
Feb 16 23:41:33 alon1 Process events/0 (pid: 4, ti=f7c48000
task=f7c3efc0 task.ti=f7c48000)
Feb 16 23:41:33 alon1 Stack: f7cb6140 f4822668 f7e71e10 c01b304d
ffffffff ffffffff fffffffe c030ba9c
Feb 16 23:41:33 alon1 f7cb6140 f4822668 f6da6720 f7cb6140 f4822668
f6da6720 c030ba8e c01ce20b
Feb 16 23:41:33 alon1 f6e9dd00 c030ba8e f6da6720 f6e9dd00 f6e9dd00
00000000 f4822600 00000000
Feb 16 23:41:33 alon1 Call Trace:
Feb 16 23:41:33 alon1 [&lt;c01b304d&gt;] sysfs_move_dir+0x3d/0x1f0
Feb 16 23:41:33 alon1 [&lt;c01ce20b&gt;] kobject_move+0x9b/0x120
Feb 16 23:41:33 alon1 [&lt;c0241711&gt;] device_move+0x51/0x110
Feb 16 23:41:33 alon1 [&lt;f9aaed80&gt;] del_conn+0x0/0x70 [bluetooth]
Feb 16 23:41:33 alon1 [&lt;f9aaed99&gt;] del_conn+0x19/0x70 [bluetooth]
Feb 16 23:41:33 alon1 [&lt;c012c1a1&gt;] run_workqueue+0x81/0x140
Feb 16 23:41:33 alon1 [&lt;c02c0c88&gt;] schedule+0x168/0x2e0
Feb 16 23:41:33 alon1 [&lt;c012fc70&gt;] autoremove_wake_function+0x0/0x50
Feb 16 23:41:33 alon1 [&lt;c012c9cb&gt;] worker_thread+0x9b/0xf0
Feb 16 23:41:33 alon1 [&lt;c012fc70&gt;] autoremove_wake_function+0x0/0x50
Feb 16 23:41:33 alon1 [&lt;c012c930&gt;] worker_thread+0x0/0xf0
Feb 16 23:41:33 alon1 [&lt;c012f962&gt;] kthread+0x42/0x70
Feb 16 23:41:33 alon1 [&lt;c012f920&gt;] kthread+0x0/0x70
Feb 16 23:41:33 alon1 [&lt;c0104c2f&gt;] kernel_thread_helper+0x7/0x18
Feb 16 23:41:33 alon1 =======================
Feb 16 23:41:33 alon1 Code: 26 00 00 00 00 57 89 c7 a1 50 1b 3a c0
56 53 8b 70 38 85 f6 74 08 8b 0e 85 c9 74 58 ff 06 8b 56 50 39 fa 74
47 89 fb eb 02 89 c3 &lt;8b&gt; 43 08 39 c2 75 f7 8b 46 08 83 c0 68 e8 98
e7 10 00 8b 43 10
Feb 16 23:41:33 alon1 EIP: [&lt;c01b2db6&gt;] sysfs_get_dentry+0x26/0x80
SS:ESP 0068:f7c49efc
Feb 16 23:41:33 alon1 ---[ end trace aae864e9592acc1d ]---

Defer hci_unregister_sysfs because hci device could be destructed
while hci conn devices still there.

Signed-off-by: Dave Young &lt;hidave.darkstar@gmail.com&gt;
Tested-by: Stefan Seyfried &lt;seife@suse.de&gt;
Acked-by: Alon Bar-Lev &lt;alon.barlev@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;

dsd@gentoo.org notes:

This patch fixes http://bugs.gentoo.org/211179

Cc: Daniel Drake &lt;dsd@gentoo.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>VLAN: Don't copy ALLMULTI/PROMISC flags from underlying device</title>
<updated>2008-04-19T01:53:26Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2008-04-07T06:46:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1814e31332384ae44b9ed55f0393faacfa52f02a'/>
<id>urn:sha1:1814e31332384ae44b9ed55f0393faacfa52f02a</id>
<content type='text'>
Upstream commit: 0ed21b321a13421e2dfeaa70a6c324e05e3e91e6

Changing these flags requires to use dev_set_allmulti/dev_set_promiscuity
or dev_change_flags. Setting it directly causes two unwanted effects:

- the next dev_change_flags call will notice a difference between
  dev-&gt;gflags and the actual flags, enable promisc/allmulti
  mode and incorrectly update dev-&gt;gflags

- this keeps the underlying device in promisc/allmulti mode until
  the VLAN device is deleted

[ Ported back to 2.6.24 VLAN code. -DaveM ]

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>TCP: Let skbs grow over a page on fast peers</title>
<updated>2008-04-19T01:53:26Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2008-04-07T06:43:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=276be82fbc8970d7dac375493d699f8bea015e7f'/>
<id>urn:sha1:276be82fbc8970d7dac375493d699f8bea015e7f</id>
<content type='text'>
Upstream commit: 69d1506731168d6845a76a303b2c45f7c05f3f2c

While testing the virtio-net driver on KVM with TSO I noticed
that TSO performance with a 1500 MTU is significantly worse
compared to the performance of non-TSO with a 16436 MTU.  The
packet dump shows that most of the packets sent are smaller
than a page.

Looking at the code this actually is quite obvious as it always
stop extending the packet if it's the first packet yet to be
sent and if it's larger than the MSS.  Since each extension is
bound by the page size, this means that (given a 1500 MTU) we're
very unlikely to construct packets greater than a page, provided
that the receiver and the path is fast enough so that packets can
always be sent immediately.

The fix is also quite obvious.  The push calls inside the loop
is just an optimisation so that we don't end up doing all the
sending at the end of the loop.  Therefore there is no specific
reason why it has to do so at MSS boundaries.  For TSO, the
most natural extension of this optimisation is to do the pushing
once the skb exceeds the TSO size goal.

This is what the patch does and testing with KVM shows that the
TSO performance with a 1500 MTU easily surpasses that of a 16436
MTU and indeed the packet sizes sent are generally larger than
16436.

I don't see any obvious downsides for slower peers or connections,
but it would be prudent to test this extensively to ensure that
those cases don't regress.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>TCP: Fix shrinking windows with window scaling</title>
<updated>2008-04-19T01:53:26Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2008-04-07T06:43:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=af5ee471275ea3b943b3aa98e675eeee062aa83c'/>
<id>urn:sha1:af5ee471275ea3b943b3aa98e675eeee062aa83c</id>
<content type='text'>
Upstream commit: 607bfbf2d55dd1cfe5368b41c2a81a8c9ccf4723

When selecting a new window, tcp_select_window() tries not to shrink
the offered window by using the maximum of the remaining offered window
size and the newly calculated window size. The newly calculated window
size is always a multiple of the window scaling factor, the remaining
window size however might not be since it depends on rcv_wup/rcv_nxt.
This means we're effectively shrinking the window when scaling it down.


The dump below shows the problem (scaling factor 2^7):

- Window size of 557 (71296) is advertised, up to 3111907257:

IP 172.2.2.3.33000 &gt; 172.2.2.2.33000: . ack 3111835961 win 557 &lt;...&gt;

- New window size of 514 (65792) is advertised, up to 3111907217, 40 bytes
  below the last end:

IP 172.2.2.3.33000 &gt; 172.2.2.2.33000: . 3113575668:3113577116(1448) ack 3111841425 win 514 &lt;...&gt;

The number 40 results from downscaling the remaining window:

3111907257 - 3111841425 = 65832
65832 / 2^7 = 514
65832 % 2^7 = 40

If the sender uses up the entire window before it is shrunk, this can have
chaotic effects on the connection. When sending ACKs, tcp_acceptable_seq()
will notice that the window has been shrunk since tcp_wnd_end() is before
tp-&gt;snd_nxt, which makes it choose tcp_wnd_end() as sequence number.
This will fail the receivers checks in tcp_sequence() however since it
is before it's tp-&gt;rcv_wup, making it respond with a dupack.

If both sides are in this condition, this leads to a constant flood of
ACKs until the connection times out.

Make sure the window is never shrunk by aligning the remaining window to
the window scaling factor.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>NET: Fix multicast device ioctl checks</title>
<updated>2008-04-19T01:53:26Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2008-04-07T06:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1bb175b624fe8cf8b6acb5abb45810727a98ad80'/>
<id>urn:sha1:1bb175b624fe8cf8b6acb5abb45810727a98ad80</id>
<content type='text'>
Upstream commit: 61ee6bd487b9cc160e533034eb338f2085dc7922

SIOCADDMULTI/SIOCDELMULTI check whether the driver has a set_multicast_list
method to determine whether it supports multicast. Drivers implementing
secondary unicast support use set_rx_mode however.

Check for both dev-&gt;set_multicast_mode and dev-&gt;set_rx_mode to determine
multicast capabilities.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>SCTP: Fix local_addr deletions during list traversals.</title>
<updated>2008-04-19T01:53:26Z</updated>
<author>
<name>Chidambar 'ilLogict' Zinnoury</name>
<email>illogict@online.fr</email>
</author>
<published>2008-04-07T06:42:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=746b23e44e933a993777eb054ab6b44724a43d6e'/>
<id>urn:sha1:746b23e44e933a993777eb054ab6b44724a43d6e</id>
<content type='text'>
Upstream commit: 22626216c46f2ec86287e75ea86dd9ac3df54265

Since the lists are circular, we need to explicitely tag
the address to be deleted since we might end up freeing
the list head instead.  This fixes some interesting SCTP
crashes.

Signed-off-by: Chidambar 'ilLogict' Zinnoury &lt;illogict@online.fr&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: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>sch_htb: fix "too many events" situation</title>
<updated>2008-04-19T01:53:26Z</updated>
<author>
<name>Martin Devera</name>
<email>devik@cdi.cz</email>
</author>
<published>2008-04-07T06:42:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ed03865a4621b60f8c1b4c3932db85303c3ec349'/>
<id>urn:sha1:ed03865a4621b60f8c1b4c3932db85303c3ec349</id>
<content type='text'>
Upstream commit: 8f3ea33a5078a09eba12bfe57424507809367756

HTB is event driven algorithm and part of its work is to apply
scheduled events at proper times. It tried to defend itself from
livelock by processing only limited number of events per dequeue.
Because of faster computers some users already hit this hardcoded
limit.

This patch limits processing up to 2 jiffies (why not 1 jiffie ?
because it might stop prematurely when only fraction of jiffie
remains).

Signed-off-by: Martin Devera &lt;devik@cdi.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>NET: Add preemption point in qdisc_run</title>
<updated>2008-04-19T01:53:25Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2008-04-07T06:41:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d55db74d5dbb56eb8f4fc874a97af7294a3b3008'/>
<id>urn:sha1:d55db74d5dbb56eb8f4fc874a97af7294a3b3008</id>
<content type='text'>
Upstream commit: 2ba2506ca7ca62c56edaa334b0fe61eb5eab6ab0

The qdisc_run loop is currently unbounded and runs entirely in a
softirq.  This is bad as it may create an unbounded softirq run.

This patch fixes this by calling need_resched and breaking out if
necessary.

It also adds a break out if the jiffies value changes since that would
indicate we've been transmitting for too long which starves other
softirqs.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>netpoll: zap_completion_queue: adjust skb-&gt;users counter</title>
<updated>2008-04-19T01:53:25Z</updated>
<author>
<name>Jarek Poplawski</name>
<email>jarkao2@gmail.com</email>
</author>
<published>2008-04-07T06:40:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=08fb454fcf51b9133bb6d88e009d89127238e24c'/>
<id>urn:sha1:08fb454fcf51b9133bb6d88e009d89127238e24c</id>
<content type='text'>
Upstream commit: 8a455b087c9629b3ae3b521b4f1ed16672f978cc

zap_completion_queue() retrieves skbs from completion_queue where they have
zero skb-&gt;users counter.  Before dev_kfree_skb_any() it should be non-zero
yet, so it's increased now.

Reported-and-tested-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>LLC: Restrict LLC sockets to root</title>
<updated>2008-04-19T01:53:25Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2008-04-07T06:40:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e982cc89839374bb1a504448401dfafaf772bdbf'/>
<id>urn:sha1:e982cc89839374bb1a504448401dfafaf772bdbf</id>
<content type='text'>
Upstream commit: 3480c63bdf008e9289aab94418f43b9592978fff

LLC currently allows users to inject raw frames, including IP packets
encapsulated in SNAP. While Linux doesn't handle IP over SNAP, other
systems do. Restrict LLC sockets to root similar to packet sockets.

[ Modified Patrick's patch to use CAP_NEW_RAW --DaveM ]

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
</feed>
