<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/core/dev.c, branch v3.3-rc2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>net: fix NULL-deref in WARN() in skb_gso_segment()</title>
<updated>2012-01-17T20:51:23+00:00</updated>
<author>
<name>Michał Mirosław</name>
<email>mirq-linux@rere.qmqm.pl</email>
</author>
<published>2012-01-17T10:00:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=65e9d2faab70d07b9a38ac6ed298f191d24541fc'/>
<id>65e9d2faab70d07b9a38ac6ed298f191d24541fc</id>
<content type='text'>
Bug was introduced in commit c8f44affb7244f2ac3e703cab13d55ede27621bb.

Signed-off-by: Michał Mirosław &lt;mirq-linux@rere.qmqm.pl&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>
Bug was introduced in commit c8f44affb7244f2ac3e703cab13d55ede27621bb.

Signed-off-by: Michał Mirosław &lt;mirq-linux@rere.qmqm.pl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: WARN if skb_checksum_help() is called on skb requiring segmentation</title>
<updated>2012-01-17T20:49:03+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2012-01-17T07:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=36c92474498ad6cc3afb24b91a67a444d79978fe'/>
<id>36c92474498ad6cc3afb24b91a67a444d79978fe</id>
<content type='text'>
skb_checksum_help() has never done anything useful with skbs that
require segmentation.  Setting skb-&gt;ip_summed = CHECKSUM_NONE makes
them invalid and provokes a later WARNing in skb_gso_segment().

Passing such an skb to skb_checksum_help() indicates a bug, so we
should warn about it immediately.  Move the warning from
skb_gso_segment() into a shared function, and add gso_type and
gso_size to it.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.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>
skb_checksum_help() has never done anything useful with skbs that
require segmentation.  Setting skb-&gt;ip_summed = CHECKSUM_NONE makes
them invalid and provokes a later WARNing in skb_gso_segment().

Passing such an skb to skb_checksum_help() indicates a bug, so we
should warn about it immediately.  Move the warning from
skb_gso_segment() into a shared function, and add gso_type and
gso_size to it.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Use device model to get driver name in skb_gso_segment()</title>
<updated>2012-01-17T15:31:12+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2012-01-16T12:38:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e52ac3398c3d772d372b9b62ab408fd5eec96840'/>
<id>e52ac3398c3d772d372b9b62ab408fd5eec96840</id>
<content type='text'>
ethtool operations generally require the caller to hold RTNL and are
not safe to call in atomic context.  The device model provides this
information for most devices; we'll only lose it for some old ISA
drivers.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Acked-by: Herbert Xu &lt;herbert@gondor.apana.org.au&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>
ethtool operations generally require the caller to hold RTNL and are
not safe to call in atomic context.  The device model provides this
information for most devices; we'll only lose it for some old ISA
drivers.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Acked-by: Herbert Xu &lt;herbert@gondor.apana.org.au&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>2011-12-02T18:49:21+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-12-02T18:49:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b3613118eb30a589d971e4eccbbb2a1314f5dfd4'/>
<id>b3613118eb30a589d971e4eccbbb2a1314f5dfd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>net: net_device flags is an unsigned int</title>
<updated>2011-12-01T16:41:48+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-11-30T21:42:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b536db9332cf90c4f44ca809f028645205fa89ad'/>
<id>b536db9332cf90c4f44ca809f028645205fa89ad</id>
<content type='text'>
commit b00055aacdb ([NET] core: add RFC2863 operstate) changed
net_device flags from unsigned short to unsigned int.

Some core functions still assume its an unsigned short.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
commit b00055aacdb ([NET] core: add RFC2863 operstate) changed
net_device flags from unsigned short to unsigned int.

Some core functions still assume its an unsigned short.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/core: fix rollback handler in register_netdevice_notifier</title>
<updated>2011-12-01T04:43:07+00:00</updated>
<author>
<name>RongQing.Li</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2011-12-01T04:43:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8f891489866ec62a87494eff3ed17c88152c32d4'/>
<id>8f891489866ec62a87494eff3ed17c88152c32d4</id>
<content type='text'>
Within nested statements, the break statement terminates only the
do, for, switch, or while statement that immediately encloses it,
So replace the break with goto.

Signed-off-by: RongQing.Li &lt;roy.qing.li@gmail.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>
Within nested statements, the break statement terminates only the
do, for, switch, or while statement that immediately encloses it,
So replace the break with goto.

Signed-off-by: RongQing.Li &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Fix skb_update_prio RCU usage.</title>
<updated>2011-11-29T23:25:17+00:00</updated>
<author>
<name>Igor Maravic</name>
<email>igorm@etf.rs</email>
</author>
<published>2011-11-25T07:44:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6977a79d36baf8b295b1893621874202e1d02094'/>
<id>6977a79d36baf8b295b1893621874202e1d02094</id>
<content type='text'>
Change function rcu_dereference to rcu_dereference_bh to avoid warning

[ INFO: suspicious RCU usage. ]
-------------------------------
net/core/dev.c:2459 suspicious rcu_dereference_check() usage!

because we are locking with

rcu_read_lock_bh();

in function dev_queue_xmit(struct sk_buff *skb)

Signed-off-by: Igor Maravic &lt;igorm@etf.rs&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 function rcu_dereference to rcu_dereference_bh to avoid warning

[ INFO: suspicious RCU usage. ]
-------------------------------
net/core/dev.c:2459 suspicious rcu_dereference_check() usage!

because we are locking with

rcu_read_lock_bh();

in function dev_queue_xmit(struct sk_buff *skb)

Signed-off-by: Igor Maravic &lt;igorm@etf.rs&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bql: Byte queue limits</title>
<updated>2011-11-29T17:46:19+00:00</updated>
<author>
<name>Tom Herbert</name>
<email>therbert@google.com</email>
</author>
<published>2011-11-28T16:33:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=114cf5802165ee93e3ab461c9c505cd94a08b800'/>
<id>114cf5802165ee93e3ab461c9c505cd94a08b800</id>
<content type='text'>
Networking stack support for byte queue limits, uses dynamic queue
limits library.  Byte queue limits are maintained per transmit queue,
and a dql structure has been added to netdev_queue structure for this
purpose.

Configuration of bql is in the tx-&lt;n&gt; sysfs directory for the queue
under the byte_queue_limits directory.  Configuration includes:
limit_min, bql minimum limit
limit_max, bql maximum limit
hold_time, bql slack hold time

Also under the directory are:
limit, current byte limit
inflight, current number of bytes on the queue

Signed-off-by: Tom Herbert &lt;therbert@google.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
Networking stack support for byte queue limits, uses dynamic queue
limits library.  Byte queue limits are maintained per transmit queue,
and a dql structure has been added to netdev_queue structure for this
purpose.

Configuration of bql is in the tx-&lt;n&gt; sysfs directory for the queue
under the byte_queue_limits directory.  Configuration includes:
limit_min, bql minimum limit
limit_max, bql maximum limit
hold_time, bql slack hold time

Also under the directory are:
limit, current byte limit
inflight, current number of bytes on the queue

Signed-off-by: Tom Herbert &lt;therbert@google.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Add queue state xoff flag for stack</title>
<updated>2011-11-29T17:46:19+00:00</updated>
<author>
<name>Tom Herbert</name>
<email>therbert@google.com</email>
</author>
<published>2011-11-28T16:32:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7346649826382b769cfadf4a2fe8a84d060c55e9'/>
<id>7346649826382b769cfadf4a2fe8a84d060c55e9</id>
<content type='text'>
Create separate queue state flags so that either the stack or drivers
can turn on XOFF.  Added a set of functions used in the stack to determine
if a queue is really stopped (either by stack or driver)

Signed-off-by: Tom Herbert &lt;therbert@google.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
Create separate queue state flags so that either the stack or drivers
can turn on XOFF.  Added a set of functions used in the stack to determine
if a queue is really stopped (either by stack or driver)

Signed-off-by: Tom Herbert &lt;therbert@google.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dont call jump_label_dec from irq context</title>
<updated>2011-11-29T05:26:25+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-11-28T11:16:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b90e5794c5bdef91d26c623e992257947c506e35'/>
<id>b90e5794c5bdef91d26c623e992257947c506e35</id>
<content type='text'>
Igor Maravic reported an error caused by jump_label_dec() being called
from IRQ context :

 BUG: sleeping function called from invalid context at kernel/mutex.c:271
 in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper
 1 lock held by swapper/0:
  #0:  (&amp;n-&gt;timer){+.-...}, at: [&lt;ffffffff8107ce90&gt;] call_timer_fn+0x0/0x340
 Pid: 0, comm: swapper Not tainted 3.2.0-rc2-net-next-mpls+ #1
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff8104f417&gt;] __might_sleep+0x137/0x1f0
 [&lt;ffffffff816b9a2f&gt;] mutex_lock_nested+0x2f/0x370
 [&lt;ffffffff810a89fd&gt;] ? trace_hardirqs_off+0xd/0x10
 [&lt;ffffffff8109a37f&gt;] ? local_clock+0x6f/0x80
 [&lt;ffffffff810a90a5&gt;] ? lock_release_holdtime.part.22+0x15/0x1a0
 [&lt;ffffffff81557929&gt;] ? sock_def_write_space+0x59/0x160
 [&lt;ffffffff815e936e&gt;] ? arp_error_report+0x3e/0x90
 [&lt;ffffffff810969cd&gt;] atomic_dec_and_mutex_lock+0x5d/0x80
 [&lt;ffffffff8112fc1d&gt;] jump_label_dec+0x1d/0x50
 [&lt;ffffffff81566525&gt;] net_disable_timestamp+0x15/0x20
 [&lt;ffffffff81557a75&gt;] sock_disable_timestamp+0x45/0x50
 [&lt;ffffffff81557b00&gt;] __sk_free+0x80/0x200
 [&lt;ffffffff815578d0&gt;] ? sk_send_sigurg+0x70/0x70
 [&lt;ffffffff815e936e&gt;] ? arp_error_report+0x3e/0x90
 [&lt;ffffffff81557cba&gt;] sock_wfree+0x3a/0x70
 [&lt;ffffffff8155c2b0&gt;] skb_release_head_state+0x70/0x120
 [&lt;ffffffff8155c0b6&gt;] __kfree_skb+0x16/0x30
 [&lt;ffffffff8155c119&gt;] kfree_skb+0x49/0x170
 [&lt;ffffffff815e936e&gt;] arp_error_report+0x3e/0x90
 [&lt;ffffffff81575bd9&gt;] neigh_invalidate+0x89/0xc0
 [&lt;ffffffff81578dbe&gt;] neigh_timer_handler+0x9e/0x2a0
 [&lt;ffffffff81578d20&gt;] ? neigh_update+0x640/0x640
 [&lt;ffffffff81073558&gt;] __do_softirq+0xc8/0x3a0

Since jump_label_{inc|dec} must be called from process context only,
we must defer jump_label_dec() if net_disable_timestamp() is called
from interrupt context.

Reported-by: Igor Maravic &lt;igorm@etf.rs&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
Igor Maravic reported an error caused by jump_label_dec() being called
from IRQ context :

 BUG: sleeping function called from invalid context at kernel/mutex.c:271
 in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper
 1 lock held by swapper/0:
  #0:  (&amp;n-&gt;timer){+.-...}, at: [&lt;ffffffff8107ce90&gt;] call_timer_fn+0x0/0x340
 Pid: 0, comm: swapper Not tainted 3.2.0-rc2-net-next-mpls+ #1
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff8104f417&gt;] __might_sleep+0x137/0x1f0
 [&lt;ffffffff816b9a2f&gt;] mutex_lock_nested+0x2f/0x370
 [&lt;ffffffff810a89fd&gt;] ? trace_hardirqs_off+0xd/0x10
 [&lt;ffffffff8109a37f&gt;] ? local_clock+0x6f/0x80
 [&lt;ffffffff810a90a5&gt;] ? lock_release_holdtime.part.22+0x15/0x1a0
 [&lt;ffffffff81557929&gt;] ? sock_def_write_space+0x59/0x160
 [&lt;ffffffff815e936e&gt;] ? arp_error_report+0x3e/0x90
 [&lt;ffffffff810969cd&gt;] atomic_dec_and_mutex_lock+0x5d/0x80
 [&lt;ffffffff8112fc1d&gt;] jump_label_dec+0x1d/0x50
 [&lt;ffffffff81566525&gt;] net_disable_timestamp+0x15/0x20
 [&lt;ffffffff81557a75&gt;] sock_disable_timestamp+0x45/0x50
 [&lt;ffffffff81557b00&gt;] __sk_free+0x80/0x200
 [&lt;ffffffff815578d0&gt;] ? sk_send_sigurg+0x70/0x70
 [&lt;ffffffff815e936e&gt;] ? arp_error_report+0x3e/0x90
 [&lt;ffffffff81557cba&gt;] sock_wfree+0x3a/0x70
 [&lt;ffffffff8155c2b0&gt;] skb_release_head_state+0x70/0x120
 [&lt;ffffffff8155c0b6&gt;] __kfree_skb+0x16/0x30
 [&lt;ffffffff8155c119&gt;] kfree_skb+0x49/0x170
 [&lt;ffffffff815e936e&gt;] arp_error_report+0x3e/0x90
 [&lt;ffffffff81575bd9&gt;] neigh_invalidate+0x89/0xc0
 [&lt;ffffffff81578dbe&gt;] neigh_timer_handler+0x9e/0x2a0
 [&lt;ffffffff81578d20&gt;] ? neigh_update+0x640/0x640
 [&lt;ffffffff81073558&gt;] __do_softirq+0xc8/0x3a0

Since jump_label_{inc|dec} must be called from process context only,
we must defer jump_label_dec() if net_disable_timestamp() is called
from interrupt context.

Reported-by: Igor Maravic &lt;igorm@etf.rs&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
