<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/core, branch v2.6.32</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.32</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.32'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2009-11-24T22:50:53Z</updated>
<entry>
<title>pktgen: Fix netdevice unregister</title>
<updated>2009-11-24T22:50:53Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-11-24T22:50:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3e9848403ad59c53b31facb30b43ca80135ae0b9'/>
<id>urn:sha1:3e9848403ad59c53b31facb30b43ca80135ae0b9</id>
<content type='text'>
When multi queue compatable names are used by pktgen (eg eth0@0),
we currently cannot unload a NIC driver if one of its device
is currently in use.

Allow pktgen_find_dev() to find pktgen devices by their suffix (netdev name)

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>pktgen: Fix device name compares</title>
<updated>2009-11-23T18:39:35Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-11-23T01:44:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=593f63b0be70762bd4354bde147b8e169c5a2f57'/>
<id>urn:sha1:593f63b0be70762bd4354bde147b8e169c5a2f57</id>
<content type='text'>
Commit e6fce5b916cd7f7f7 (pktgen: multiqueue etc.) tried to relax
the pktgen restriction of one device per kernel thread, adding a '@'
tag to device names.

Problem is we dont perform check on full pktgen device name.
This allows adding many time same 'device' to pktgen thread

 pgset "add_device eth0@0"

one session later :

 pgset "add_device eth0@0"

(This doesnt find previous device)

This consumes ~1.5 MBytes of vmalloc memory per round and also triggers
this warning :

[  673.186380] proc_dir_entry 'pktgen/eth0@0' already registered
[  673.186383] Modules linked in: pktgen ixgbe ehci_hcd psmouse mdio mousedev evdev [last unloaded: pktgen]
[  673.186406] Pid: 6219, comm: bash Tainted: G        W  2.6.32-rc7-03302-g41cec6f-dirty #16
[  673.186410] Call Trace:
[  673.186417]  [&lt;ffffffff8104a29b&gt;] warn_slowpath_common+0x7b/0xc0
[  673.186422]  [&lt;ffffffff8104a341&gt;] warn_slowpath_fmt+0x41/0x50
[  673.186426]  [&lt;ffffffff8114e789&gt;] proc_register+0x109/0x210
[  673.186433]  [&lt;ffffffff8100bf2e&gt;] ? apic_timer_interrupt+0xe/0x20
[  673.186438]  [&lt;ffffffff8114e905&gt;] proc_create_data+0x75/0xd0
[  673.186444]  [&lt;ffffffffa006ad38&gt;] pktgen_thread_write+0x568/0x640 [pktgen]
[  673.186449]  [&lt;ffffffffa006a7d0&gt;] ? pktgen_thread_write+0x0/0x640 [pktgen]
[  673.186453]  [&lt;ffffffff81149144&gt;] proc_reg_write+0x84/0xc0
[  673.186458]  [&lt;ffffffff810f5a58&gt;] vfs_write+0xb8/0x180
[  673.186463]  [&lt;ffffffff810f5c11&gt;] sys_write+0x51/0x90
[  673.186468]  [&lt;ffffffff8100b51b&gt;] system_call_fastpath+0x16/0x1b
[  673.186470] ---[ end trace ccbb991b0a8d994d ]---

Solution to this problem is to use a odevname field (includes @ tag and suffix),
instead of using netdevice name.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Robert Olsson &lt;robert.olsson@its.uu.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gro: Fix illegal merging of trailer trash</title>
<updated>2009-11-17T13:18:18Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2009-11-17T13:18:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=69c0cab120a85471054614418b447349caba22d7'/>
<id>urn:sha1:69c0cab120a85471054614418b447349caba22d7</id>
<content type='text'>
When we've merged skb's with page frags, and subsequently receive
a trailer skb (&lt; MSS) that is not completely non-linear (this can
occur on Intel NICs if the packet size falls below the threshold),
GRO ends up producing an illegal GSO skb with a frag_list.

This is harmless unless the skb is then forwarded through an
interface that requires software GSO, whereupon the GSO code
will BUG.

This patch detects this case in GRO and avoids merging the
trailer skb.

Reported-by: Mark Wagner &lt;mwagner@redhat.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Fix the rollback test in dev_change_name()</title>
<updated>2009-11-16T11:30:35Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-11-15T23:30:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=91e9c07bd635353d1a278bdb38dbb56ac371bcb8'/>
<id>urn:sha1:91e9c07bd635353d1a278bdb38dbb56ac371bcb8</id>
<content type='text'>
net: Fix the rollback test in dev_change_name()

In dev_change_name() an err variable is used for storing the original
call_netdevice_notifiers() errno (negative) and testing for a rollback
error later, but the test for non-zero is wrong, because the err might
have positive value as well - from dev_alloc_name(). It means the
rollback for a netdevice with a number &gt; 0 will never happen. (The err
test is reordered btw. to make it more readable.)

Signed-off-by: Jarek Poplawski &lt;jarkao2@gmail.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>
</entry>
<entry>
<title>net: fix sk_forward_alloc corruption</title>
<updated>2009-10-30T19:25:12Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-10-30T05:03:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9d410c796067686b1e032d54ce475b7055537138'/>
<id>urn:sha1:9d410c796067686b1e032d54ce475b7055537138</id>
<content type='text'>
On UDP sockets, we must call skb_free_datagram() with socket locked,
or risk sk_forward_alloc corruption. This requirement is not respected
in SUNRPC.

Add a convenient helper, skb_free_datagram_locked() and use it in SUNRPC

Reported-by: Francis Moreau &lt;francis.moro@gmail.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>
</entry>
<entry>
<title>pktgen: Dont leak kernel memory</title>
<updated>2009-10-24T13:55:20Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-10-24T13:55:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=66ed1e5ec1d979e572554643063734a7664261bb'/>
<id>urn:sha1:66ed1e5ec1d979e572554643063734a7664261bb</id>
<content type='text'>
While playing with pktgen, I realized IP ID was not filled and a
random value was taken, possibly leaking 2 bytes of kernel memory.
 
We can use an increasing ID, this can help diagnostics anyway.

Also clear packet payload, instead of leaking kernel memory.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>wext: let get_wireless_stats() sleep</title>
<updated>2009-10-05T09:22:23Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2009-10-05T09:22:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a160ee69c6a4622ed30c377a978554015e9931cb'/>
<id>urn:sha1:a160ee69c6a4622ed30c377a978554015e9931cb</id>
<content type='text'>
A number of drivers (recently including cfg80211-based ones)
assume that all wireless handlers, including statistics, can
sleep and they often also implicitly assume that the rtnl is
held around their invocation. This is almost always true now
except when reading from sysfs:

  BUG: sleeping function called from invalid context at kernel/mutex.c:280
  in_atomic(): 1, irqs_disabled(): 0, pid: 10450, name: head
  2 locks held by head/10450:
   #0:  (&amp;buffer-&gt;mutex){+.+.+.}, at: [&lt;c10ceb99&gt;] sysfs_read_file+0x24/0xf4
   #1:  (dev_base_lock){++.?..}, at: [&lt;c12844ee&gt;] wireless_show+0x1a/0x4c
  Pid: 10450, comm: head Not tainted 2.6.32-rc3 #1
  Call Trace:
   [&lt;c102301c&gt;] __might_sleep+0xf0/0xf7
   [&lt;c1324355&gt;] mutex_lock_nested+0x1a/0x33
   [&lt;f8cea53b&gt;] wdev_lock+0xd/0xf [cfg80211]
   [&lt;f8cea58f&gt;] cfg80211_wireless_stats+0x45/0x12d [cfg80211]
   [&lt;c13118d6&gt;] get_wireless_stats+0x16/0x1c
   [&lt;c12844fe&gt;] wireless_show+0x2a/0x4c

Fix this by using the rtnl instead of dev_base_lock.

Reported-by: Miles Lane &lt;miles.lane@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>pktgen: restore nanosec delays</title>
<updated>2009-10-05T04:08:58Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-10-03T01:39:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9240d7154e766ce6f3b615e81ed28f7562f509a5'/>
<id>urn:sha1:9240d7154e766ce6f3b615e81ed28f7562f509a5</id>
<content type='text'>
Commit fd29cf72 (pktgen: convert to use ktime_t)
inadvertantly converted "delay" parameter from nanosec to microsec.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>pktgen: Fix multiqueue handling</title>
<updated>2009-10-05T04:08:54Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-10-02T20:24:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=896a7cf8d846a9e86fb823be16f4f14ffeb7f074'/>
<id>urn:sha1:896a7cf8d846a9e86fb823be16f4f14ffeb7f074</id>
<content type='text'>
It is not currently possible to instruct pktgen to use one selected tx queue.

When Robert added multiqueue support in commit 45b270f8, he added
an interval (queue_map_min, queue_map_max), and his code doesnt take
into account the case of min = max, to select one tx queue exactly.

I suspect a high performance setup on a eight txqueue device wants
to use exactly eight cpus, and assign one tx queue to each sender.

This patchs makes pktgen select the right tx queue, not the first one.

Also updates Documentation to reflect Robert changes.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Robert Olsson &lt;robert.olsson@its.uu.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>pktgen: Fix delay handling</title>
<updated>2009-10-01T16:29:45Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-10-01T16:29:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=417bc4b855f04dd4ad27a7cabe3e7996a7b78ddb'/>
<id>urn:sha1:417bc4b855f04dd4ad27a7cabe3e7996a7b78ddb</id>
<content type='text'>
After last pktgen changes, delay handling is wrong.

pktgen actually sends packets at full line speed.

Fix is to update pkt_dev-&gt;next_tx even if spin() returns early,
so that next spin() calls have a chance to see a positive delay.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
