<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/vmxnet3, branch v3.0</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>vmxnet3: round down # of queues to power of two</title>
<updated>2011-07-07T07:25:52+00:00</updated>
<author>
<name>Shreyas Bhatewara</name>
<email>sbhatewara@vmware.com</email>
</author>
<published>2011-07-07T07:25:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=eebb02b1f03b3722d678bfcb560f3b26661ab0d2'/>
<id>eebb02b1f03b3722d678bfcb560f3b26661ab0d2</id>
<content type='text'>
vmxnet3 device supports only power-of-two number of queues. The driver
therefore needs to check this and rounds down the number of queues to the
nearest power of two.

Signed-off-by: Yong Wang &lt;yongwang@vmware.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.com&gt;
Reviewed-by: Dmitry Torokhov &lt;dtor@vmware.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
vmxnet3 device supports only power-of-two number of queues. The driver
therefore needs to check this and rounds down the number of queues to the
nearest power of two.

Signed-off-by: Yong Wang &lt;yongwang@vmware.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.com&gt;
Reviewed-by: Dmitry Torokhov &lt;dtor@vmware.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vmxnet3: fix starving rx ring whenoc_skb kb fails</title>
<updated>2011-07-06T01:39:40+00:00</updated>
<author>
<name>Shreyas Bhatewara</name>
<email>sbhatewara@vmware.com</email>
</author>
<published>2011-07-05T14:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5318d809d7b4975ce5e5303e8508f89a5458c2b6'/>
<id>5318d809d7b4975ce5e5303e8508f89a5458c2b6</id>
<content type='text'>
If the rx ring is completely empty, then the device may never fire an rx
interrupt. Unfortunately, the rx interrupt is what triggers populating the
rx ring with fresh buffers, so this will cause networking to lock up.

This patch replenishes the skb in recv descriptor as soon as it is
peeled off while processing rx completions. If the skb/buffer
allocation fails, existing one is recycled and the packet in hand is
dropped. This way none of the RX desc is ever left empty, thus avoiding
starvation

Signed-off-by: Scott J. Goldman &lt;scottjg@vmware.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.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>
If the rx ring is completely empty, then the device may never fire an rx
interrupt. Unfortunately, the rx interrupt is what triggers populating the
rx ring with fresh buffers, so this will cause networking to lock up.

This patch replenishes the skb in recv descriptor as soon as it is
peeled off while processing rx completions. If the skb/buffer
allocation fails, existing one is recycled and the packet in hand is
dropped. This way none of the RX desc is ever left empty, thus avoiding
starvation

Signed-off-by: Scott J. Goldman &lt;scottjg@vmware.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2011-05-17T21:33:11+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-17T21:33:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9cbc94eabb0791906051bbfac024ef2c2be8e079'/>
<id>9cbc94eabb0791906051bbfac024ef2c2be8e079</id>
<content type='text'>
Conflicts:
	drivers/net/vmxnet3/vmxnet3_ethtool.c
	net/core/dev.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/vmxnet3/vmxnet3_ethtool.c
	net/core/dev.c
</pre>
</div>
</content>
</entry>
<entry>
<title>vmxnet3: Fix inconsistent LRO state after initialization</title>
<updated>2011-05-16T19:05:23+00:00</updated>
<author>
<name>Thomas Jarosch</name>
<email>thomas.jarosch@intra2net.com</email>
</author>
<published>2011-05-16T06:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ebde6f8acba92abfc203585198a54f47e83e2cd0'/>
<id>ebde6f8acba92abfc203585198a54f47e83e2cd0</id>
<content type='text'>
During initialization of vmxnet3, the state of LRO
gets out of sync with netdev-&gt;features.

This leads to very poor TCP performance in a IP forwarding
setup and is hitting many VMware users.

Simplified call sequence:
1. vmxnet3_declare_features() initializes "adapter-&gt;lro" to true.

2. The kernel automatically disables LRO if IP forwarding is enabled,
so vmxnet3_set_flags() gets called. This also updates netdev-&gt;features.

3. Now vmxnet3_setup_driver_shared() is called. "adapter-&gt;lro" is still
set to true and LRO gets enabled again, even though
netdev-&gt;features shows it's disabled.

Fix it by updating "adapter-&gt;lro", too.

The private vmxnet3 adapter flags are scheduled for removal
in net-next, see commit a0d2730c9571aeba793cb5d3009094ee1d8fda35
"net: vmxnet3: convert to hw_features".

Patch applies to 2.6.37 / 2.6.38 and 2.6.39-rc6.

Please CC: comments.

Signed-off-by: Thomas Jarosch &lt;thomas.jarosch@intra2net.com&gt;
Acked-by: Stephen Hemminger &lt;shemminger@vyatta.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>
During initialization of vmxnet3, the state of LRO
gets out of sync with netdev-&gt;features.

This leads to very poor TCP performance in a IP forwarding
setup and is hitting many VMware users.

Simplified call sequence:
1. vmxnet3_declare_features() initializes "adapter-&gt;lro" to true.

2. The kernel automatically disables LRO if IP forwarding is enabled,
so vmxnet3_set_flags() gets called. This also updates netdev-&gt;features.

3. Now vmxnet3_setup_driver_shared() is called. "adapter-&gt;lro" is still
set to true and LRO gets enabled again, even though
netdev-&gt;features shows it's disabled.

Fix it by updating "adapter-&gt;lro", too.

The private vmxnet3 adapter flags are scheduled for removal
in net-next, see commit a0d2730c9571aeba793cb5d3009094ee1d8fda35
"net: vmxnet3: convert to hw_features".

Patch applies to 2.6.37 / 2.6.38 and 2.6.39-rc6.

Please CC: comments.

Signed-off-by: Thomas Jarosch &lt;thomas.jarosch@intra2net.com&gt;
Acked-by: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vmxnet3: Use single tx queue when CONFIG_PCI_MSI not defined</title>
<updated>2011-05-12T21:32:53+00:00</updated>
<author>
<name>Shreyas Bhatewara</name>
<email>sbhatewara@vmware.com</email>
</author>
<published>2011-05-10T06:13:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e154b639bbe53dc91d1873cd37d162bb2fe87aab'/>
<id>e154b639bbe53dc91d1873cd37d162bb2fe87aab</id>
<content type='text'>
Resending this patch with few changes.

Avoid multiple queues when MSI or MSI-X not available

Limit number of Tx queues to 1 if MSI/MSI-X support is not configured in
the kernel. This will make number of tx and rx queues equal when MSI/X
is not configured thus providing better performance.

Signed-off-by: Bhavesh Davda &lt;bhavesh@vmware.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.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>
Resending this patch with few changes.

Avoid multiple queues when MSI or MSI-X not available

Limit number of Tx queues to 1 if MSI/MSI-X support is not configured in
the kernel. This will make number of tx and rx queues equal when MSI/X
is not configured thus providing better performance.

Signed-off-by: Bhavesh Davda &lt;bhavesh@vmware.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-3.6</title>
<updated>2011-05-11T18:26:58+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-11T18:26:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3c709f8fb43e07a0403bba4a8ca7ba00ab874994'/>
<id>3c709f8fb43e07a0403bba4a8ca7ba00ab874994</id>
<content type='text'>
Conflicts:
	drivers/net/benet/be_main.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/benet/be_main.c
</pre>
</div>
</content>
</entry>
<entry>
<title>vmxnet3: Consistently disable irqs when taking adapter-&gt;cmd_lock</title>
<updated>2011-05-06T20:11:57+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2011-05-06T08:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e328d410826d52e9ee348aff9064c4a207f2adb1'/>
<id>e328d410826d52e9ee348aff9064c4a207f2adb1</id>
<content type='text'>
Using the vmxnet3 driver produces a lockdep warning because
vmxnet3_set_mc(), which is called with mc-&gt;mca_lock held, takes
adapter-&gt;cmd_lock.  However, there are a couple of places where
adapter-&gt;cmd_lock is taken with softirqs enabled, lockdep warns that a
softirq that tries to take mc-&gt;mca_lock could happen while
adapter-&gt;cmd_lock is held, leading to an AB-BA deadlock.

I'm not sure if this is a real potential deadlock or not, but the
simplest and best fix seems to be simply to make sure we take cmd_lock
with spin_lock_irqsave() everywhere -- the places with plain spin_lock
just look like oversights.

The full enormous lockdep warning is:

 =========================================================
 [ INFO: possible irq lock inversion dependency detected ]
 2.6.39-rc6+ #1
 ---------------------------------------------------------
 ifconfig/567 just changed the state of lock:
  (&amp;(&amp;mc-&gt;mca_lock)-&gt;rlock){+.-...}, at: [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
 but this lock took another, SOFTIRQ-unsafe lock in the past:
  (&amp;(&amp;adapter-&gt;cmd_lock)-&gt;rlock){+.+...}

 and interrupts could create inverse lock ordering between them.

 other info that might help us debug this:
 4 locks held by ifconfig/567:
  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff8147d547&gt;] rtnl_lock+0x17/0x20
  #1:  ((inetaddr_chain).rwsem){.+.+.+}, at: [&lt;ffffffff810896cf&gt;] __blocking_notifier_call_chain+0x5f/0xb0
  #2:  (&amp;idev-&gt;mc_ifc_timer){+.-...}, at: [&lt;ffffffff8106f21b&gt;] run_timer_softirq+0xeb/0x3f0
  #3:  (&amp;ndev-&gt;lock){++.-..}, at: [&lt;ffffffff81531dd2&gt;] mld_ifc_timer_expire+0x32/0x280

 the shortest dependencies between 2nd lock and 1st lock:
   -&gt; (&amp;(&amp;adapter-&gt;cmd_lock)-&gt;rlock){+.+...} ops: 11 {
      HARDIRQ-ON-W at:
                                            [&lt;ffffffff8109ad86&gt;] __lock_acquire+0x7f6/0x1e10
                                            [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                            [&lt;ffffffff81571156&gt;] _raw_spin_lock+0x36/0x70
                                            [&lt;ffffffffa000d212&gt;] vmxnet3_alloc_intr_resources+0x22/0x230 [vmxnet3]
                                            [&lt;ffffffffa0014031&gt;] vmxnet3_probe_device+0x5f6/0x15c5 [vmxnet3]
                                            [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                            [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                            [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                            [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                            [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                            [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                            [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                            [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                            [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                            [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                            [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                            [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                            [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
      SOFTIRQ-ON-W at:
                                            [&lt;ffffffff8109adb7&gt;] __lock_acquire+0x827/0x1e10
                                            [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                            [&lt;ffffffff81571156&gt;] _raw_spin_lock+0x36/0x70
                                            [&lt;ffffffffa000d212&gt;] vmxnet3_alloc_intr_resources+0x22/0x230 [vmxnet3]
                                            [&lt;ffffffffa0014031&gt;] vmxnet3_probe_device+0x5f6/0x15c5 [vmxnet3]
                                            [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                            [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                            [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                            [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                            [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                            [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                            [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                            [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                            [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                            [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                            [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                            [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                            [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
      INITIAL USE at:
                                           [&lt;ffffffff8109a9e9&gt;] __lock_acquire+0x459/0x1e10
                                           [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                           [&lt;ffffffff81571156&gt;] _raw_spin_lock+0x36/0x70
                                           [&lt;ffffffffa000d212&gt;] vmxnet3_alloc_intr_resources+0x22/0x230 [vmxnet3]
                                           [&lt;ffffffffa0014031&gt;] vmxnet3_probe_device+0x5f6/0x15c5 [vmxnet3]
                                           [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                           [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                           [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                           [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                           [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                           [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                           [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                           [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                           [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                           [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                           [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                           [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                           [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
    }
    ... key      at: [&lt;ffffffffa0017590&gt;] __key.42516+0x0/0xffffffffffffda70 [vmxnet3]
    ... acquired at:
    [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
    [&lt;ffffffff81571bb5&gt;] _raw_spin_lock_irqsave+0x55/0xa0
    [&lt;ffffffffa000de27&gt;] vmxnet3_set_mc+0x97/0x1a0 [vmxnet3]
    [&lt;ffffffff8146ffa0&gt;] __dev_set_rx_mode+0x40/0xb0
    [&lt;ffffffff81470040&gt;] dev_set_rx_mode+0x30/0x50
    [&lt;ffffffff81470127&gt;] __dev_open+0xc7/0x100
    [&lt;ffffffff814703c1&gt;] __dev_change_flags+0xa1/0x180
    [&lt;ffffffff81470568&gt;] dev_change_flags+0x28/0x70
    [&lt;ffffffff814da960&gt;] devinet_ioctl+0x730/0x800
    [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
    [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
    [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
    [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
    [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
    [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

  -&gt; (_xmit_ETHER){+.....} ops: 6 {
     HARDIRQ-ON-W at:
                                          [&lt;ffffffff8109ad86&gt;] __lock_acquire+0x7f6/0x1e10
                                          [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                          [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                          [&lt;ffffffff81475618&gt;] __dev_mc_add+0x38/0x90
                                          [&lt;ffffffff814756a0&gt;] dev_mc_add+0x10/0x20
                                          [&lt;ffffffff81532c9e&gt;] igmp6_group_added+0x10e/0x1b0
                                          [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                          [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                          [&lt;ffffffff81519f27&gt;] addrconf_notify+0x2f7/0xb10
                                          [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
                                          [&lt;ffffffff81089586&gt;] raw_notifier_call_chain+0x16/0x20
                                          [&lt;ffffffff814689b7&gt;] call_netdevice_notifiers+0x37/0x70
                                          [&lt;ffffffff8146a944&gt;] register_netdevice+0x244/0x2d0
                                          [&lt;ffffffff8146aa0f&gt;] register_netdev+0x3f/0x60
                                          [&lt;ffffffffa001419b&gt;] vmxnet3_probe_device+0x760/0x15c5 [vmxnet3]
                                          [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                          [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                          [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                          [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                          [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                          [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                          [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                          [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                          [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                          [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                          [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                          [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                          [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
     INITIAL USE at:
                                         [&lt;ffffffff8109a9e9&gt;] __lock_acquire+0x459/0x1e10
                                         [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                         [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                         [&lt;ffffffff81475618&gt;] __dev_mc_add+0x38/0x90
                                         [&lt;ffffffff814756a0&gt;] dev_mc_add+0x10/0x20
                                         [&lt;ffffffff81532c9e&gt;] igmp6_group_added+0x10e/0x1b0
                                         [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                         [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                         [&lt;ffffffff81519f27&gt;] addrconf_notify+0x2f7/0xb10
                                         [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
                                         [&lt;ffffffff81089586&gt;] raw_notifier_call_chain+0x16/0x20
                                         [&lt;ffffffff814689b7&gt;] call_netdevice_notifiers+0x37/0x70
                                         [&lt;ffffffff8146a944&gt;] register_netdevice+0x244/0x2d0
                                         [&lt;ffffffff8146aa0f&gt;] register_netdev+0x3f/0x60
                                         [&lt;ffffffffa001419b&gt;] vmxnet3_probe_device+0x760/0x15c5 [vmxnet3]
                                         [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                         [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                         [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                         [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                         [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                         [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                         [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                         [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                         [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                         [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                         [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                         [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                         [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
   }
   ... key      at: [&lt;ffffffff827fd868&gt;] netdev_addr_lock_key+0x8/0x1e0
   ... acquired at:
    [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
    [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
    [&lt;ffffffff81475618&gt;] __dev_mc_add+0x38/0x90
    [&lt;ffffffff814756a0&gt;] dev_mc_add+0x10/0x20
    [&lt;ffffffff81532c9e&gt;] igmp6_group_added+0x10e/0x1b0
    [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
    [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
    [&lt;ffffffff81519f27&gt;] addrconf_notify+0x2f7/0xb10
    [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
    [&lt;ffffffff81089586&gt;] raw_notifier_call_chain+0x16/0x20
    [&lt;ffffffff814689b7&gt;] call_netdevice_notifiers+0x37/0x70
    [&lt;ffffffff8146a944&gt;] register_netdevice+0x244/0x2d0
    [&lt;ffffffff8146aa0f&gt;] register_netdev+0x3f/0x60
    [&lt;ffffffffa001419b&gt;] vmxnet3_probe_device+0x760/0x15c5 [vmxnet3]
    [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
    [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
    [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
    [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
    [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
    [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
    [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
    [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
    [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
    [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
    [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
    [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
    [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

 -&gt; (&amp;(&amp;mc-&gt;mca_lock)-&gt;rlock){+.-...} ops: 6 {
    HARDIRQ-ON-W at:
                                        [&lt;ffffffff8109ad86&gt;] __lock_acquire+0x7f6/0x1e10
                                        [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                        [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                        [&lt;ffffffff81532bd5&gt;] igmp6_group_added+0x45/0x1b0
                                        [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                        [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                        [&lt;ffffffff81ce0d16&gt;] addrconf_init+0x4e/0x183
                                        [&lt;ffffffff81ce0ba1&gt;] inet6_init+0x191/0x2a6
                                        [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                        [&lt;ffffffff81ca4d3f&gt;] kernel_init+0xe3/0x168
                                        [&lt;ffffffff8157b2e4&gt;] kernel_thread_helper+0x4/0x10
    IN-SOFTIRQ-W at:
                                        [&lt;ffffffff8109ad5e&gt;] __lock_acquire+0x7ce/0x1e10
                                        [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                        [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                        [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
                                        [&lt;ffffffff8106f2a9&gt;] run_timer_softirq+0x179/0x3f0
                                        [&lt;ffffffff810666d0&gt;] __do_softirq+0xc0/0x210
                                        [&lt;ffffffff8157b3dc&gt;] call_softirq+0x1c/0x30
                                        [&lt;ffffffff8100d42d&gt;] do_softirq+0xad/0xe0
                                        [&lt;ffffffff81066afe&gt;] irq_exit+0x9e/0xb0
                                        [&lt;ffffffff8157bd40&gt;] smp_apic_timer_interrupt+0x70/0x9b
                                        [&lt;ffffffff8157ab93&gt;] apic_timer_interrupt+0x13/0x20
                                        [&lt;ffffffff8149d857&gt;] rt_do_flush+0x87/0x2a0
                                        [&lt;ffffffff814a16b6&gt;] rt_cache_flush+0x46/0x60
                                        [&lt;ffffffff814e36e0&gt;] fib_disable_ip+0x40/0x60
                                        [&lt;ffffffff814e5447&gt;] fib_inetaddr_event+0xd7/0xe0
                                        [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
                                        [&lt;ffffffff810896e8&gt;] __blocking_notifier_call_chain+0x78/0xb0
                                        [&lt;ffffffff81089736&gt;] blocking_notifier_call_chain+0x16/0x20
                                        [&lt;ffffffff814d8021&gt;] __inet_del_ifa+0xf1/0x2e0
                                        [&lt;ffffffff814d8223&gt;] inet_del_ifa+0x13/0x20
                                        [&lt;ffffffff814da731&gt;] devinet_ioctl+0x501/0x800
                                        [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
                                        [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
                                        [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
                                        [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
                                        [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
                                        [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
    INITIAL USE at:
                                       [&lt;ffffffff8109a9e9&gt;] __lock_acquire+0x459/0x1e10
                                       [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                       [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                       [&lt;ffffffff81532bd5&gt;] igmp6_group_added+0x45/0x1b0
                                       [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                       [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                       [&lt;ffffffff81ce0d16&gt;] addrconf_init+0x4e/0x183
                                       [&lt;ffffffff81ce0ba1&gt;] inet6_init+0x191/0x2a6
                                       [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                       [&lt;ffffffff81ca4d3f&gt;] kernel_init+0xe3/0x168
                                       [&lt;ffffffff8157b2e4&gt;] kernel_thread_helper+0x4/0x10
  }
  ... key      at: [&lt;ffffffff82801be2&gt;] __key.40877+0x0/0x8
  ... acquired at:
    [&lt;ffffffff810997bc&gt;] check_usage_forwards+0x9c/0x110
    [&lt;ffffffff8109a32c&gt;] mark_lock+0x19c/0x400
    [&lt;ffffffff8109ad5e&gt;] __lock_acquire+0x7ce/0x1e10
    [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
    [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
    [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
    [&lt;ffffffff8106f2a9&gt;] run_timer_softirq+0x179/0x3f0
    [&lt;ffffffff810666d0&gt;] __do_softirq+0xc0/0x210
    [&lt;ffffffff8157b3dc&gt;] call_softirq+0x1c/0x30
    [&lt;ffffffff8100d42d&gt;] do_softirq+0xad/0xe0
    [&lt;ffffffff81066afe&gt;] irq_exit+0x9e/0xb0
    [&lt;ffffffff8157bd40&gt;] smp_apic_timer_interrupt+0x70/0x9b
    [&lt;ffffffff8157ab93&gt;] apic_timer_interrupt+0x13/0x20
    [&lt;ffffffff8149d857&gt;] rt_do_flush+0x87/0x2a0
    [&lt;ffffffff814a16b6&gt;] rt_cache_flush+0x46/0x60
    [&lt;ffffffff814e36e0&gt;] fib_disable_ip+0x40/0x60
    [&lt;ffffffff814e5447&gt;] fib_inetaddr_event+0xd7/0xe0
    [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
    [&lt;ffffffff810896e8&gt;] __blocking_notifier_call_chain+0x78/0xb0
    [&lt;ffffffff81089736&gt;] blocking_notifier_call_chain+0x16/0x20
    [&lt;ffffffff814d8021&gt;] __inet_del_ifa+0xf1/0x2e0
    [&lt;ffffffff814d8223&gt;] inet_del_ifa+0x13/0x20
    [&lt;ffffffff814da731&gt;] devinet_ioctl+0x501/0x800
    [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
    [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
    [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
    [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
    [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
    [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

 stack backtrace:
 Pid: 567, comm: ifconfig Not tainted 2.6.39-rc6+ #1
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff810996f6&gt;] print_irq_inversion_bug+0x146/0x170
  [&lt;ffffffff81099720&gt;] ? print_irq_inversion_bug+0x170/0x170
  [&lt;ffffffff810997bc&gt;] check_usage_forwards+0x9c/0x110
  [&lt;ffffffff8109a32c&gt;] mark_lock+0x19c/0x400
  [&lt;ffffffff8109ad5e&gt;] __lock_acquire+0x7ce/0x1e10
  [&lt;ffffffff8109a383&gt;] ? mark_lock+0x1f3/0x400
  [&lt;ffffffff8109b497&gt;] ? __lock_acquire+0xf07/0x1e10
  [&lt;ffffffff81012255&gt;] ? native_sched_clock+0x15/0x70
  [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
  [&lt;ffffffff81531e9f&gt;] ? mld_ifc_timer_expire+0xff/0x280
  [&lt;ffffffff8109759d&gt;] ? lock_release_holdtime+0x3d/0x1a0
  [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
  [&lt;ffffffff81531e9f&gt;] ? mld_ifc_timer_expire+0xff/0x280
  [&lt;ffffffff8157170b&gt;] ? _raw_spin_unlock+0x2b/0x40
  [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
  [&lt;ffffffff8106f2a9&gt;] run_timer_softirq+0x179/0x3f0
  [&lt;ffffffff8106f21b&gt;] ? run_timer_softirq+0xeb/0x3f0
  [&lt;ffffffff810122b9&gt;] ? sched_clock+0x9/0x10
  [&lt;ffffffff81531da0&gt;] ? mld_gq_timer_expire+0x30/0x30
  [&lt;ffffffff810666d0&gt;] __do_softirq+0xc0/0x210
  [&lt;ffffffff8109455f&gt;] ? tick_program_event+0x1f/0x30
  [&lt;ffffffff8157b3dc&gt;] call_softirq+0x1c/0x30
  [&lt;ffffffff8100d42d&gt;] do_softirq+0xad/0xe0
  [&lt;ffffffff81066afe&gt;] irq_exit+0x9e/0xb0
  [&lt;ffffffff8157bd40&gt;] smp_apic_timer_interrupt+0x70/0x9b
  [&lt;ffffffff8157ab93&gt;] apic_timer_interrupt+0x13/0x20
  &lt;EOI&gt;  [&lt;ffffffff81571f14&gt;] ? retint_restore_args+0x13/0x13
  [&lt;ffffffff810974a7&gt;] ? lock_is_held+0x17/0xd0
  [&lt;ffffffff8149d857&gt;] rt_do_flush+0x87/0x2a0
  [&lt;ffffffff814a16b6&gt;] rt_cache_flush+0x46/0x60
  [&lt;ffffffff814e36e0&gt;] fib_disable_ip+0x40/0x60
  [&lt;ffffffff814e5447&gt;] fib_inetaddr_event+0xd7/0xe0
  [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
  [&lt;ffffffff810896e8&gt;] __blocking_notifier_call_chain+0x78/0xb0
  [&lt;ffffffff81089736&gt;] blocking_notifier_call_chain+0x16/0x20
  [&lt;ffffffff814d8021&gt;] __inet_del_ifa+0xf1/0x2e0
  [&lt;ffffffff814d8223&gt;] inet_del_ifa+0x13/0x20
  [&lt;ffffffff814da731&gt;] devinet_ioctl+0x501/0x800
  [&lt;ffffffff8108a3af&gt;] ? local_clock+0x6f/0x80
  [&lt;ffffffff81575898&gt;] ? do_page_fault+0x268/0x560
  [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
  [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
  [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
  [&lt;ffffffff810dfe87&gt;] ? __call_rcu+0xa7/0x190
  [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
  [&lt;ffffffff8117737e&gt;] ? fget_light+0x33e/0x430
  [&lt;ffffffff81571ef9&gt;] ? retint_swapgs+0x13/0x1b
  [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
  [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.com&gt;
Signed-off-by: Scott J. Goldman &lt;scottjg@vmware.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>
Using the vmxnet3 driver produces a lockdep warning because
vmxnet3_set_mc(), which is called with mc-&gt;mca_lock held, takes
adapter-&gt;cmd_lock.  However, there are a couple of places where
adapter-&gt;cmd_lock is taken with softirqs enabled, lockdep warns that a
softirq that tries to take mc-&gt;mca_lock could happen while
adapter-&gt;cmd_lock is held, leading to an AB-BA deadlock.

I'm not sure if this is a real potential deadlock or not, but the
simplest and best fix seems to be simply to make sure we take cmd_lock
with spin_lock_irqsave() everywhere -- the places with plain spin_lock
just look like oversights.

The full enormous lockdep warning is:

 =========================================================
 [ INFO: possible irq lock inversion dependency detected ]
 2.6.39-rc6+ #1
 ---------------------------------------------------------
 ifconfig/567 just changed the state of lock:
  (&amp;(&amp;mc-&gt;mca_lock)-&gt;rlock){+.-...}, at: [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
 but this lock took another, SOFTIRQ-unsafe lock in the past:
  (&amp;(&amp;adapter-&gt;cmd_lock)-&gt;rlock){+.+...}

 and interrupts could create inverse lock ordering between them.

 other info that might help us debug this:
 4 locks held by ifconfig/567:
  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff8147d547&gt;] rtnl_lock+0x17/0x20
  #1:  ((inetaddr_chain).rwsem){.+.+.+}, at: [&lt;ffffffff810896cf&gt;] __blocking_notifier_call_chain+0x5f/0xb0
  #2:  (&amp;idev-&gt;mc_ifc_timer){+.-...}, at: [&lt;ffffffff8106f21b&gt;] run_timer_softirq+0xeb/0x3f0
  #3:  (&amp;ndev-&gt;lock){++.-..}, at: [&lt;ffffffff81531dd2&gt;] mld_ifc_timer_expire+0x32/0x280

 the shortest dependencies between 2nd lock and 1st lock:
   -&gt; (&amp;(&amp;adapter-&gt;cmd_lock)-&gt;rlock){+.+...} ops: 11 {
      HARDIRQ-ON-W at:
                                            [&lt;ffffffff8109ad86&gt;] __lock_acquire+0x7f6/0x1e10
                                            [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                            [&lt;ffffffff81571156&gt;] _raw_spin_lock+0x36/0x70
                                            [&lt;ffffffffa000d212&gt;] vmxnet3_alloc_intr_resources+0x22/0x230 [vmxnet3]
                                            [&lt;ffffffffa0014031&gt;] vmxnet3_probe_device+0x5f6/0x15c5 [vmxnet3]
                                            [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                            [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                            [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                            [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                            [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                            [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                            [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                            [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                            [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                            [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                            [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                            [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                            [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
      SOFTIRQ-ON-W at:
                                            [&lt;ffffffff8109adb7&gt;] __lock_acquire+0x827/0x1e10
                                            [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                            [&lt;ffffffff81571156&gt;] _raw_spin_lock+0x36/0x70
                                            [&lt;ffffffffa000d212&gt;] vmxnet3_alloc_intr_resources+0x22/0x230 [vmxnet3]
                                            [&lt;ffffffffa0014031&gt;] vmxnet3_probe_device+0x5f6/0x15c5 [vmxnet3]
                                            [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                            [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                            [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                            [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                            [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                            [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                            [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                            [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                            [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                            [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                            [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                            [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                            [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
      INITIAL USE at:
                                           [&lt;ffffffff8109a9e9&gt;] __lock_acquire+0x459/0x1e10
                                           [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                           [&lt;ffffffff81571156&gt;] _raw_spin_lock+0x36/0x70
                                           [&lt;ffffffffa000d212&gt;] vmxnet3_alloc_intr_resources+0x22/0x230 [vmxnet3]
                                           [&lt;ffffffffa0014031&gt;] vmxnet3_probe_device+0x5f6/0x15c5 [vmxnet3]
                                           [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                           [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                           [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                           [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                           [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                           [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                           [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                           [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                           [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                           [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                           [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                           [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                           [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
    }
    ... key      at: [&lt;ffffffffa0017590&gt;] __key.42516+0x0/0xffffffffffffda70 [vmxnet3]
    ... acquired at:
    [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
    [&lt;ffffffff81571bb5&gt;] _raw_spin_lock_irqsave+0x55/0xa0
    [&lt;ffffffffa000de27&gt;] vmxnet3_set_mc+0x97/0x1a0 [vmxnet3]
    [&lt;ffffffff8146ffa0&gt;] __dev_set_rx_mode+0x40/0xb0
    [&lt;ffffffff81470040&gt;] dev_set_rx_mode+0x30/0x50
    [&lt;ffffffff81470127&gt;] __dev_open+0xc7/0x100
    [&lt;ffffffff814703c1&gt;] __dev_change_flags+0xa1/0x180
    [&lt;ffffffff81470568&gt;] dev_change_flags+0x28/0x70
    [&lt;ffffffff814da960&gt;] devinet_ioctl+0x730/0x800
    [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
    [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
    [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
    [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
    [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
    [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

  -&gt; (_xmit_ETHER){+.....} ops: 6 {
     HARDIRQ-ON-W at:
                                          [&lt;ffffffff8109ad86&gt;] __lock_acquire+0x7f6/0x1e10
                                          [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                          [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                          [&lt;ffffffff81475618&gt;] __dev_mc_add+0x38/0x90
                                          [&lt;ffffffff814756a0&gt;] dev_mc_add+0x10/0x20
                                          [&lt;ffffffff81532c9e&gt;] igmp6_group_added+0x10e/0x1b0
                                          [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                          [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                          [&lt;ffffffff81519f27&gt;] addrconf_notify+0x2f7/0xb10
                                          [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
                                          [&lt;ffffffff81089586&gt;] raw_notifier_call_chain+0x16/0x20
                                          [&lt;ffffffff814689b7&gt;] call_netdevice_notifiers+0x37/0x70
                                          [&lt;ffffffff8146a944&gt;] register_netdevice+0x244/0x2d0
                                          [&lt;ffffffff8146aa0f&gt;] register_netdev+0x3f/0x60
                                          [&lt;ffffffffa001419b&gt;] vmxnet3_probe_device+0x760/0x15c5 [vmxnet3]
                                          [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                          [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                          [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                          [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                          [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                          [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                          [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                          [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                          [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                          [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                          [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                          [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                          [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
     INITIAL USE at:
                                         [&lt;ffffffff8109a9e9&gt;] __lock_acquire+0x459/0x1e10
                                         [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                         [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                         [&lt;ffffffff81475618&gt;] __dev_mc_add+0x38/0x90
                                         [&lt;ffffffff814756a0&gt;] dev_mc_add+0x10/0x20
                                         [&lt;ffffffff81532c9e&gt;] igmp6_group_added+0x10e/0x1b0
                                         [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                         [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                         [&lt;ffffffff81519f27&gt;] addrconf_notify+0x2f7/0xb10
                                         [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
                                         [&lt;ffffffff81089586&gt;] raw_notifier_call_chain+0x16/0x20
                                         [&lt;ffffffff814689b7&gt;] call_netdevice_notifiers+0x37/0x70
                                         [&lt;ffffffff8146a944&gt;] register_netdevice+0x244/0x2d0
                                         [&lt;ffffffff8146aa0f&gt;] register_netdev+0x3f/0x60
                                         [&lt;ffffffffa001419b&gt;] vmxnet3_probe_device+0x760/0x15c5 [vmxnet3]
                                         [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
                                         [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
                                         [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
                                         [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
                                         [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
                                         [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
                                         [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
                                         [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
                                         [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
                                         [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
                                         [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                         [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
                                         [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
   }
   ... key      at: [&lt;ffffffff827fd868&gt;] netdev_addr_lock_key+0x8/0x1e0
   ... acquired at:
    [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
    [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
    [&lt;ffffffff81475618&gt;] __dev_mc_add+0x38/0x90
    [&lt;ffffffff814756a0&gt;] dev_mc_add+0x10/0x20
    [&lt;ffffffff81532c9e&gt;] igmp6_group_added+0x10e/0x1b0
    [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
    [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
    [&lt;ffffffff81519f27&gt;] addrconf_notify+0x2f7/0xb10
    [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
    [&lt;ffffffff81089586&gt;] raw_notifier_call_chain+0x16/0x20
    [&lt;ffffffff814689b7&gt;] call_netdevice_notifiers+0x37/0x70
    [&lt;ffffffff8146a944&gt;] register_netdevice+0x244/0x2d0
    [&lt;ffffffff8146aa0f&gt;] register_netdev+0x3f/0x60
    [&lt;ffffffffa001419b&gt;] vmxnet3_probe_device+0x760/0x15c5 [vmxnet3]
    [&lt;ffffffff812df67f&gt;] local_pci_probe+0x5f/0xd0
    [&lt;ffffffff812dfde9&gt;] pci_device_probe+0x119/0x120
    [&lt;ffffffff81373df6&gt;] driver_probe_device+0x96/0x1c0
    [&lt;ffffffff81373fcb&gt;] __driver_attach+0xab/0xb0
    [&lt;ffffffff81372a1e&gt;] bus_for_each_dev+0x5e/0x90
    [&lt;ffffffff81373a2e&gt;] driver_attach+0x1e/0x20
    [&lt;ffffffff813735b8&gt;] bus_add_driver+0xc8/0x290
    [&lt;ffffffff813745b6&gt;] driver_register+0x76/0x140
    [&lt;ffffffff812e0046&gt;] __pci_register_driver+0x66/0xe0
    [&lt;ffffffffa001b03a&gt;] serio_raw_poll+0x3a/0x60 [serio_raw]
    [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
    [&lt;ffffffff810aa76b&gt;] sys_init_module+0xfb/0x250
    [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

 -&gt; (&amp;(&amp;mc-&gt;mca_lock)-&gt;rlock){+.-...} ops: 6 {
    HARDIRQ-ON-W at:
                                        [&lt;ffffffff8109ad86&gt;] __lock_acquire+0x7f6/0x1e10
                                        [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                        [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                        [&lt;ffffffff81532bd5&gt;] igmp6_group_added+0x45/0x1b0
                                        [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                        [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                        [&lt;ffffffff81ce0d16&gt;] addrconf_init+0x4e/0x183
                                        [&lt;ffffffff81ce0ba1&gt;] inet6_init+0x191/0x2a6
                                        [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                        [&lt;ffffffff81ca4d3f&gt;] kernel_init+0xe3/0x168
                                        [&lt;ffffffff8157b2e4&gt;] kernel_thread_helper+0x4/0x10
    IN-SOFTIRQ-W at:
                                        [&lt;ffffffff8109ad5e&gt;] __lock_acquire+0x7ce/0x1e10
                                        [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                        [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                        [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
                                        [&lt;ffffffff8106f2a9&gt;] run_timer_softirq+0x179/0x3f0
                                        [&lt;ffffffff810666d0&gt;] __do_softirq+0xc0/0x210
                                        [&lt;ffffffff8157b3dc&gt;] call_softirq+0x1c/0x30
                                        [&lt;ffffffff8100d42d&gt;] do_softirq+0xad/0xe0
                                        [&lt;ffffffff81066afe&gt;] irq_exit+0x9e/0xb0
                                        [&lt;ffffffff8157bd40&gt;] smp_apic_timer_interrupt+0x70/0x9b
                                        [&lt;ffffffff8157ab93&gt;] apic_timer_interrupt+0x13/0x20
                                        [&lt;ffffffff8149d857&gt;] rt_do_flush+0x87/0x2a0
                                        [&lt;ffffffff814a16b6&gt;] rt_cache_flush+0x46/0x60
                                        [&lt;ffffffff814e36e0&gt;] fib_disable_ip+0x40/0x60
                                        [&lt;ffffffff814e5447&gt;] fib_inetaddr_event+0xd7/0xe0
                                        [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
                                        [&lt;ffffffff810896e8&gt;] __blocking_notifier_call_chain+0x78/0xb0
                                        [&lt;ffffffff81089736&gt;] blocking_notifier_call_chain+0x16/0x20
                                        [&lt;ffffffff814d8021&gt;] __inet_del_ifa+0xf1/0x2e0
                                        [&lt;ffffffff814d8223&gt;] inet_del_ifa+0x13/0x20
                                        [&lt;ffffffff814da731&gt;] devinet_ioctl+0x501/0x800
                                        [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
                                        [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
                                        [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
                                        [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
                                        [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
                                        [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b
    INITIAL USE at:
                                       [&lt;ffffffff8109a9e9&gt;] __lock_acquire+0x459/0x1e10
                                       [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
                                       [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
                                       [&lt;ffffffff81532bd5&gt;] igmp6_group_added+0x45/0x1b0
                                       [&lt;ffffffff81533f2d&gt;] ipv6_dev_mc_inc+0x2cd/0x430
                                       [&lt;ffffffff81515e17&gt;] ipv6_add_dev+0x357/0x450
                                       [&lt;ffffffff81ce0d16&gt;] addrconf_init+0x4e/0x183
                                       [&lt;ffffffff81ce0ba1&gt;] inet6_init+0x191/0x2a6
                                       [&lt;ffffffff81002165&gt;] do_one_initcall+0x45/0x190
                                       [&lt;ffffffff81ca4d3f&gt;] kernel_init+0xe3/0x168
                                       [&lt;ffffffff8157b2e4&gt;] kernel_thread_helper+0x4/0x10
  }
  ... key      at: [&lt;ffffffff82801be2&gt;] __key.40877+0x0/0x8
  ... acquired at:
    [&lt;ffffffff810997bc&gt;] check_usage_forwards+0x9c/0x110
    [&lt;ffffffff8109a32c&gt;] mark_lock+0x19c/0x400
    [&lt;ffffffff8109ad5e&gt;] __lock_acquire+0x7ce/0x1e10
    [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
    [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
    [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
    [&lt;ffffffff8106f2a9&gt;] run_timer_softirq+0x179/0x3f0
    [&lt;ffffffff810666d0&gt;] __do_softirq+0xc0/0x210
    [&lt;ffffffff8157b3dc&gt;] call_softirq+0x1c/0x30
    [&lt;ffffffff8100d42d&gt;] do_softirq+0xad/0xe0
    [&lt;ffffffff81066afe&gt;] irq_exit+0x9e/0xb0
    [&lt;ffffffff8157bd40&gt;] smp_apic_timer_interrupt+0x70/0x9b
    [&lt;ffffffff8157ab93&gt;] apic_timer_interrupt+0x13/0x20
    [&lt;ffffffff8149d857&gt;] rt_do_flush+0x87/0x2a0
    [&lt;ffffffff814a16b6&gt;] rt_cache_flush+0x46/0x60
    [&lt;ffffffff814e36e0&gt;] fib_disable_ip+0x40/0x60
    [&lt;ffffffff814e5447&gt;] fib_inetaddr_event+0xd7/0xe0
    [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
    [&lt;ffffffff810896e8&gt;] __blocking_notifier_call_chain+0x78/0xb0
    [&lt;ffffffff81089736&gt;] blocking_notifier_call_chain+0x16/0x20
    [&lt;ffffffff814d8021&gt;] __inet_del_ifa+0xf1/0x2e0
    [&lt;ffffffff814d8223&gt;] inet_del_ifa+0x13/0x20
    [&lt;ffffffff814da731&gt;] devinet_ioctl+0x501/0x800
    [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
    [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
    [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
    [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
    [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
    [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

 stack backtrace:
 Pid: 567, comm: ifconfig Not tainted 2.6.39-rc6+ #1
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff810996f6&gt;] print_irq_inversion_bug+0x146/0x170
  [&lt;ffffffff81099720&gt;] ? print_irq_inversion_bug+0x170/0x170
  [&lt;ffffffff810997bc&gt;] check_usage_forwards+0x9c/0x110
  [&lt;ffffffff8109a32c&gt;] mark_lock+0x19c/0x400
  [&lt;ffffffff8109ad5e&gt;] __lock_acquire+0x7ce/0x1e10
  [&lt;ffffffff8109a383&gt;] ? mark_lock+0x1f3/0x400
  [&lt;ffffffff8109b497&gt;] ? __lock_acquire+0xf07/0x1e10
  [&lt;ffffffff81012255&gt;] ? native_sched_clock+0x15/0x70
  [&lt;ffffffff8109ca4d&gt;] lock_acquire+0x9d/0x130
  [&lt;ffffffff81531e9f&gt;] ? mld_ifc_timer_expire+0xff/0x280
  [&lt;ffffffff8109759d&gt;] ? lock_release_holdtime+0x3d/0x1a0
  [&lt;ffffffff8157124b&gt;] _raw_spin_lock_bh+0x3b/0x70
  [&lt;ffffffff81531e9f&gt;] ? mld_ifc_timer_expire+0xff/0x280
  [&lt;ffffffff8157170b&gt;] ? _raw_spin_unlock+0x2b/0x40
  [&lt;ffffffff81531e9f&gt;] mld_ifc_timer_expire+0xff/0x280
  [&lt;ffffffff8106f2a9&gt;] run_timer_softirq+0x179/0x3f0
  [&lt;ffffffff8106f21b&gt;] ? run_timer_softirq+0xeb/0x3f0
  [&lt;ffffffff810122b9&gt;] ? sched_clock+0x9/0x10
  [&lt;ffffffff81531da0&gt;] ? mld_gq_timer_expire+0x30/0x30
  [&lt;ffffffff810666d0&gt;] __do_softirq+0xc0/0x210
  [&lt;ffffffff8109455f&gt;] ? tick_program_event+0x1f/0x30
  [&lt;ffffffff8157b3dc&gt;] call_softirq+0x1c/0x30
  [&lt;ffffffff8100d42d&gt;] do_softirq+0xad/0xe0
  [&lt;ffffffff81066afe&gt;] irq_exit+0x9e/0xb0
  [&lt;ffffffff8157bd40&gt;] smp_apic_timer_interrupt+0x70/0x9b
  [&lt;ffffffff8157ab93&gt;] apic_timer_interrupt+0x13/0x20
  &lt;EOI&gt;  [&lt;ffffffff81571f14&gt;] ? retint_restore_args+0x13/0x13
  [&lt;ffffffff810974a7&gt;] ? lock_is_held+0x17/0xd0
  [&lt;ffffffff8149d857&gt;] rt_do_flush+0x87/0x2a0
  [&lt;ffffffff814a16b6&gt;] rt_cache_flush+0x46/0x60
  [&lt;ffffffff814e36e0&gt;] fib_disable_ip+0x40/0x60
  [&lt;ffffffff814e5447&gt;] fib_inetaddr_event+0xd7/0xe0
  [&lt;ffffffff81575c1c&gt;] notifier_call_chain+0x8c/0xc0
  [&lt;ffffffff810896e8&gt;] __blocking_notifier_call_chain+0x78/0xb0
  [&lt;ffffffff81089736&gt;] blocking_notifier_call_chain+0x16/0x20
  [&lt;ffffffff814d8021&gt;] __inet_del_ifa+0xf1/0x2e0
  [&lt;ffffffff814d8223&gt;] inet_del_ifa+0x13/0x20
  [&lt;ffffffff814da731&gt;] devinet_ioctl+0x501/0x800
  [&lt;ffffffff8108a3af&gt;] ? local_clock+0x6f/0x80
  [&lt;ffffffff81575898&gt;] ? do_page_fault+0x268/0x560
  [&lt;ffffffff814db508&gt;] inet_ioctl+0x88/0xa0
  [&lt;ffffffff814541f0&gt;] sock_do_ioctl+0x30/0x70
  [&lt;ffffffff814542a9&gt;] sock_ioctl+0x79/0x2f0
  [&lt;ffffffff810dfe87&gt;] ? __call_rcu+0xa7/0x190
  [&lt;ffffffff81188798&gt;] do_vfs_ioctl+0x98/0x570
  [&lt;ffffffff8117737e&gt;] ? fget_light+0x33e/0x430
  [&lt;ffffffff81571ef9&gt;] ? retint_swapgs+0x13/0x1b
  [&lt;ffffffff81188d01&gt;] sys_ioctl+0x91/0xa0
  [&lt;ffffffff8157a142&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Shreyas N Bhatewara &lt;sbhatewara@vmware.com&gt;
Signed-off-by: Scott J. Goldman &lt;scottjg@vmware.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ethtool: cosmetic: Use ethtool ethtool_cmd_speed API</title>
<updated>2011-04-29T21:03:01+00:00</updated>
<author>
<name>David Decotigny</name>
<email>decot@google.com</email>
</author>
<published>2011-04-27T18:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=707394972093e2056e1e8cc39be19cf9bcb3e7b3'/>
<id>707394972093e2056e1e8cc39be19cf9bcb3e7b3</id>
<content type='text'>
This updates the network drivers so that they don't access the
ethtool_cmd::speed field directly, but use ethtool_cmd_speed()
instead.

For most of the drivers, these changes are purely cosmetic and don't
fix any problem, such as for those 1GbE/10GbE drivers that indirectly
call their own ethtool get_settings()/mii_ethtool_gset(). The changes
are meant to enforce code consistency and provide robustness with
future larger throughputs, at the expense of a few CPU cycles for each
ethtool operation.

All drivers compiled with make allyesconfig ion x86_64 have been
updated.

Tested: make allyesconfig on x86_64 + e1000e/bnx2x work
Signed-off-by: David Decotigny &lt;decot@google.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>
This updates the network drivers so that they don't access the
ethtool_cmd::speed field directly, but use ethtool_cmd_speed()
instead.

For most of the drivers, these changes are purely cosmetic and don't
fix any problem, such as for those 1GbE/10GbE drivers that indirectly
call their own ethtool get_settings()/mii_ethtool_gset(). The changes
are meant to enforce code consistency and provide robustness with
future larger throughputs, at the expense of a few CPU cycles for each
ethtool operation.

All drivers compiled with make allyesconfig ion x86_64 have been
updated.

Tested: make allyesconfig on x86_64 + e1000e/bnx2x work
Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: vmxnet3: convert to hw_features</title>
<updated>2011-04-19T06:04:00+00:00</updated>
<author>
<name>Michał Mirosław</name>
<email>mirq-linux@rere.qmqm.pl</email>
</author>
<published>2011-04-18T13:31:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a0d2730c9571aeba793cb5d3009094ee1d8fda35'/>
<id>a0d2730c9571aeba793cb5d3009094ee1d8fda35</id>
<content type='text'>
This also removes private feature flags that were always set to true.

You may want to move vmxnet3_set_features() to vmxnet3_drv.c as a following
cleanup.

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>
This also removes private feature flags that were always set to true.

You may want to move vmxnet3_set_features() to vmxnet3_drv.c as a following
cleanup.

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>Fix common misspellings</title>
<updated>2011-03-31T14:26:23+00:00</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-03-31T01:57:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=25985edcedea6396277003854657b5f3cb31a628'/>
<id>25985edcedea6396277003854657b5f3cb31a628</id>
<content type='text'>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
</feed>
