<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net, branch v3.9-rc7</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>bnx2x: Prevent null pointer dereference in AFEX mode</title>
<updated>2013-04-10T19:27:04+00:00</updated>
<author>
<name>Yuval Mintz</name>
<email>yuvalmin@broadcom.com</email>
</author>
<published>2013-04-10T10:34:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fea75645342c7ad574214497a78e562db12dfd7b'/>
<id>fea75645342c7ad574214497a78e562db12dfd7b</id>
<content type='text'>
The cnic module is responsible for initializing various bnx2x structs
via callbacks provided by the bnx2x module.
One such struct is the queue object for the FCoE queue.

If a device is working in AFEX mode and its configuration allows FCoE yet
the cnic module is not loaded, it's very likely a null pointer dereference
will occur, as the bnx2x will erroneously access the FCoE's queue object.

Prevent said access until cnic properly registers itself.

Signed-off-by: Yuval Mintz &lt;yuvalmin@broadcom.com&gt;
Signed-off-by: Ariel Elior &lt;ariele@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.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>
The cnic module is responsible for initializing various bnx2x structs
via callbacks provided by the bnx2x module.
One such struct is the queue object for the FCoE queue.

If a device is working in AFEX mode and its configuration allows FCoE yet
the cnic module is not loaded, it's very likely a null pointer dereference
will occur, as the bnx2x will erroneously access the FCoE's queue object.

Prevent said access until cnic properly registers itself.

Signed-off-by: Yuval Mintz &lt;yuvalmin@broadcom.com&gt;
Signed-off-by: Ariel Elior &lt;ariele@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>e100: Add dma mapping error check</title>
<updated>2013-04-10T19:25:15+00:00</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2013-04-09T23:19:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=61a0f6efc8932e9914e1782ff3a027e23c687fc6'/>
<id>61a0f6efc8932e9914e1782ff3a027e23c687fc6</id>
<content type='text'>
e100 uses pci_map_single, but fails to check for a dma mapping error after its
use, resulting in a stack trace:

[   46.656594] ------------[ cut here ]------------
[   46.657004] WARNING: at lib/dma-debug.c:933 check_unmap+0x47b/0x950()
[   46.657004] Hardware name: To Be Filled By O.E.M.
[   46.657004] e100 0000:00:0e.0: DMA-API: device driver failed to check map
error[device address=0x000000007a4540fa] [size=90 bytes] [mapped as single]
[   46.657004] Modules linked in:
[   46.657004]  w83627hf hwmon_vid snd_via82xx ppdev snd_ac97_codec ac97_bus
snd_seq snd_pcm snd_mpu401 snd_mpu401_uart ns558 snd_rawmidi gameport parport_pc
e100 snd_seq_device parport snd_page_alloc snd_timer snd soundcore skge shpchp
k8temp mii edac_core i2c_viapro edac_mce_amd nfsd auth_rpcgss nfs_acl lockd
sunrpc binfmt_misc uinput ata_generic pata_acpi radeon i2c_algo_bit
drm_kms_helper ttm firewire_ohci drm firewire_core pata_via sata_via i2c_core
sata_promise crc_itu_t
[   46.657004] Pid: 792, comm: ip Not tainted 3.8.0-0.rc6.git0.1.fc19.x86_64 #1
[   46.657004] Call Trace:
[   46.657004]  &lt;IRQ&gt;  [&lt;ffffffff81065ed0&gt;] warn_slowpath_common+0x70/0xa0
[   46.657004]  [&lt;ffffffff81065f4c&gt;] warn_slowpath_fmt+0x4c/0x50
[   46.657004]  [&lt;ffffffff81364cfb&gt;] check_unmap+0x47b/0x950
[   46.657004]  [&lt;ffffffff8136522f&gt;] debug_dma_unmap_page+0x5f/0x70
[   46.657004]  [&lt;ffffffffa030f0f0&gt;] ? e100_tx_clean+0x30/0x210 [e100]
[   46.657004]  [&lt;ffffffffa030f1a8&gt;] e100_tx_clean+0xe8/0x210 [e100]
[   46.657004]  [&lt;ffffffffa030fc6f&gt;] e100_poll+0x56f/0x6c0 [e100]
[   46.657004]  [&lt;ffffffff8159dce1&gt;] ? net_rx_action+0xa1/0x370
[   46.657004]  [&lt;ffffffff8159ddb2&gt;] net_rx_action+0x172/0x370
[   46.657004]  [&lt;ffffffff810703bf&gt;] __do_softirq+0xef/0x3d0
[   46.657004]  [&lt;ffffffff816e4ebc&gt;] call_softirq+0x1c/0x30
[   46.657004]  [&lt;ffffffff8101c485&gt;] do_softirq+0x85/0xc0
[   46.657004]  [&lt;ffffffff81070885&gt;] irq_exit+0xd5/0xe0
[   46.657004]  [&lt;ffffffff816e5756&gt;] do_IRQ+0x56/0xc0
[   46.657004]  [&lt;ffffffff816dacb2&gt;] common_interrupt+0x72/0x72
[   46.657004]  &lt;EOI&gt;  [&lt;ffffffff816da1eb&gt;] ?
_raw_spin_unlock_irqrestore+0x3b/0x70
[   46.657004]  [&lt;ffffffff816d124d&gt;] __slab_free+0x58/0x38b
[   46.657004]  [&lt;ffffffff81214424&gt;] ? fsnotify_clear_marks_by_inode+0x34/0x120
[   46.657004]  [&lt;ffffffff811b0417&gt;] ? kmem_cache_free+0x97/0x320
[   46.657004]  [&lt;ffffffff8157fc14&gt;] ? sock_destroy_inode+0x34/0x40
[   46.657004]  [&lt;ffffffff8157fc14&gt;] ? sock_destroy_inode+0x34/0x40
[   46.657004]  [&lt;ffffffff811b0692&gt;] kmem_cache_free+0x312/0x320
[   46.657004]  [&lt;ffffffff8157fc14&gt;] sock_destroy_inode+0x34/0x40
[   46.657004]  [&lt;ffffffff811e8c28&gt;] destroy_inode+0x38/0x60
[   46.657004]  [&lt;ffffffff811e8d5e&gt;] evict+0x10e/0x1a0
[   46.657004]  [&lt;ffffffff811e9605&gt;] iput+0xf5/0x180
[   46.657004]  [&lt;ffffffff811e4338&gt;] dput+0x248/0x310
[   46.657004]  [&lt;ffffffff811ce0e1&gt;] __fput+0x171/0x240
[   46.657004]  [&lt;ffffffff811ce26e&gt;] ____fput+0xe/0x10
[   46.657004]  [&lt;ffffffff8108d54c&gt;] task_work_run+0xac/0xe0
[   46.657004]  [&lt;ffffffff8106c6ed&gt;] do_exit+0x26d/0xc30
[   46.657004]  [&lt;ffffffff8109eccc&gt;] ? finish_task_switch+0x7c/0x120
[   46.657004]  [&lt;ffffffff816dad58&gt;] ? retint_swapgs+0x13/0x1b
[   46.657004]  [&lt;ffffffff8106d139&gt;] do_group_exit+0x49/0xc0
[   46.657004]  [&lt;ffffffff8106d1c4&gt;] sys_exit_group+0x14/0x20
[   46.657004]  [&lt;ffffffff816e3b19&gt;] system_call_fastpath+0x16/0x1b
[   46.657004] ---[ end trace 4468c44e2156e7d1 ]---
[   46.657004] Mapped at:
[   46.657004]  [&lt;ffffffff813663d1&gt;] debug_dma_map_page+0x91/0x140
[   46.657004]  [&lt;ffffffffa030e8eb&gt;] e100_xmit_prepare+0x12b/0x1c0 [e100]
[   46.657004]  [&lt;ffffffffa030c924&gt;] e100_exec_cb+0x84/0x140 [e100]
[   46.657004]  [&lt;ffffffffa030e56a&gt;] e100_xmit_frame+0x3a/0x190 [e100]
[   46.657004]  [&lt;ffffffff8159ee89&gt;] dev_hard_start_xmit+0x259/0x6c0

Easy fix, modify the cb paramter to e100_exec_cb to return an error, and do the
dma_mapping_error check in the obvious place

This was reported previously here:
http://article.gmane.org/gmane.linux.network/257893

But nobody stepped up and fixed it.

CC: Josh Boyer &lt;jwboyer@redhat.com&gt;
CC: e1000-devel@lists.sourceforge.net
Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Reported-by: Michal Jaegermann &lt;michal@harddata.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.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>
e100 uses pci_map_single, but fails to check for a dma mapping error after its
use, resulting in a stack trace:

[   46.656594] ------------[ cut here ]------------
[   46.657004] WARNING: at lib/dma-debug.c:933 check_unmap+0x47b/0x950()
[   46.657004] Hardware name: To Be Filled By O.E.M.
[   46.657004] e100 0000:00:0e.0: DMA-API: device driver failed to check map
error[device address=0x000000007a4540fa] [size=90 bytes] [mapped as single]
[   46.657004] Modules linked in:
[   46.657004]  w83627hf hwmon_vid snd_via82xx ppdev snd_ac97_codec ac97_bus
snd_seq snd_pcm snd_mpu401 snd_mpu401_uart ns558 snd_rawmidi gameport parport_pc
e100 snd_seq_device parport snd_page_alloc snd_timer snd soundcore skge shpchp
k8temp mii edac_core i2c_viapro edac_mce_amd nfsd auth_rpcgss nfs_acl lockd
sunrpc binfmt_misc uinput ata_generic pata_acpi radeon i2c_algo_bit
drm_kms_helper ttm firewire_ohci drm firewire_core pata_via sata_via i2c_core
sata_promise crc_itu_t
[   46.657004] Pid: 792, comm: ip Not tainted 3.8.0-0.rc6.git0.1.fc19.x86_64 #1
[   46.657004] Call Trace:
[   46.657004]  &lt;IRQ&gt;  [&lt;ffffffff81065ed0&gt;] warn_slowpath_common+0x70/0xa0
[   46.657004]  [&lt;ffffffff81065f4c&gt;] warn_slowpath_fmt+0x4c/0x50
[   46.657004]  [&lt;ffffffff81364cfb&gt;] check_unmap+0x47b/0x950
[   46.657004]  [&lt;ffffffff8136522f&gt;] debug_dma_unmap_page+0x5f/0x70
[   46.657004]  [&lt;ffffffffa030f0f0&gt;] ? e100_tx_clean+0x30/0x210 [e100]
[   46.657004]  [&lt;ffffffffa030f1a8&gt;] e100_tx_clean+0xe8/0x210 [e100]
[   46.657004]  [&lt;ffffffffa030fc6f&gt;] e100_poll+0x56f/0x6c0 [e100]
[   46.657004]  [&lt;ffffffff8159dce1&gt;] ? net_rx_action+0xa1/0x370
[   46.657004]  [&lt;ffffffff8159ddb2&gt;] net_rx_action+0x172/0x370
[   46.657004]  [&lt;ffffffff810703bf&gt;] __do_softirq+0xef/0x3d0
[   46.657004]  [&lt;ffffffff816e4ebc&gt;] call_softirq+0x1c/0x30
[   46.657004]  [&lt;ffffffff8101c485&gt;] do_softirq+0x85/0xc0
[   46.657004]  [&lt;ffffffff81070885&gt;] irq_exit+0xd5/0xe0
[   46.657004]  [&lt;ffffffff816e5756&gt;] do_IRQ+0x56/0xc0
[   46.657004]  [&lt;ffffffff816dacb2&gt;] common_interrupt+0x72/0x72
[   46.657004]  &lt;EOI&gt;  [&lt;ffffffff816da1eb&gt;] ?
_raw_spin_unlock_irqrestore+0x3b/0x70
[   46.657004]  [&lt;ffffffff816d124d&gt;] __slab_free+0x58/0x38b
[   46.657004]  [&lt;ffffffff81214424&gt;] ? fsnotify_clear_marks_by_inode+0x34/0x120
[   46.657004]  [&lt;ffffffff811b0417&gt;] ? kmem_cache_free+0x97/0x320
[   46.657004]  [&lt;ffffffff8157fc14&gt;] ? sock_destroy_inode+0x34/0x40
[   46.657004]  [&lt;ffffffff8157fc14&gt;] ? sock_destroy_inode+0x34/0x40
[   46.657004]  [&lt;ffffffff811b0692&gt;] kmem_cache_free+0x312/0x320
[   46.657004]  [&lt;ffffffff8157fc14&gt;] sock_destroy_inode+0x34/0x40
[   46.657004]  [&lt;ffffffff811e8c28&gt;] destroy_inode+0x38/0x60
[   46.657004]  [&lt;ffffffff811e8d5e&gt;] evict+0x10e/0x1a0
[   46.657004]  [&lt;ffffffff811e9605&gt;] iput+0xf5/0x180
[   46.657004]  [&lt;ffffffff811e4338&gt;] dput+0x248/0x310
[   46.657004]  [&lt;ffffffff811ce0e1&gt;] __fput+0x171/0x240
[   46.657004]  [&lt;ffffffff811ce26e&gt;] ____fput+0xe/0x10
[   46.657004]  [&lt;ffffffff8108d54c&gt;] task_work_run+0xac/0xe0
[   46.657004]  [&lt;ffffffff8106c6ed&gt;] do_exit+0x26d/0xc30
[   46.657004]  [&lt;ffffffff8109eccc&gt;] ? finish_task_switch+0x7c/0x120
[   46.657004]  [&lt;ffffffff816dad58&gt;] ? retint_swapgs+0x13/0x1b
[   46.657004]  [&lt;ffffffff8106d139&gt;] do_group_exit+0x49/0xc0
[   46.657004]  [&lt;ffffffff8106d1c4&gt;] sys_exit_group+0x14/0x20
[   46.657004]  [&lt;ffffffff816e3b19&gt;] system_call_fastpath+0x16/0x1b
[   46.657004] ---[ end trace 4468c44e2156e7d1 ]---
[   46.657004] Mapped at:
[   46.657004]  [&lt;ffffffff813663d1&gt;] debug_dma_map_page+0x91/0x140
[   46.657004]  [&lt;ffffffffa030e8eb&gt;] e100_xmit_prepare+0x12b/0x1c0 [e100]
[   46.657004]  [&lt;ffffffffa030c924&gt;] e100_exec_cb+0x84/0x140 [e100]
[   46.657004]  [&lt;ffffffffa030e56a&gt;] e100_xmit_frame+0x3a/0x190 [e100]
[   46.657004]  [&lt;ffffffff8159ee89&gt;] dev_hard_start_xmit+0x259/0x6c0

Easy fix, modify the cb paramter to e100_exec_cb to return an error, and do the
dma_mapping_error check in the obvious place

This was reported previously here:
http://article.gmane.org/gmane.linux.network/257893

But nobody stepped up and fixed it.

CC: Josh Boyer &lt;jwboyer@redhat.com&gt;
CC: e1000-devel@lists.sourceforge.net
Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Reported-by: Michal Jaegermann &lt;michal@harddata.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: fix bonding_masters race condition in bond unloading</title>
<updated>2013-04-08T20:45:09+00:00</updated>
<author>
<name>nikolay@redhat.com</name>
<email>nikolay@redhat.com</email>
</author>
<published>2013-04-06T00:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=69b0216ac255f523556fa3d4ff030d857eaaa37f'/>
<id>69b0216ac255f523556fa3d4ff030d857eaaa37f</id>
<content type='text'>
While the bonding module is unloading, it is considered that after
rtnl_link_unregister all bond devices are destroyed but since no
synchronization mechanism exists, a new bond device can be created
via bonding_masters before unregister_pernet_subsys which would
lead to multiple problems (e.g. NULL pointer dereference, wrong RIP,
list corruption).

This patch fixes the issue by removing any bond devices left in the
netns after bonding_masters is removed from sysfs.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@redhat.com&gt;
Acked-by: Veaceslav Falico &lt;vfalico@redhat.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>
While the bonding module is unloading, it is considered that after
rtnl_link_unregister all bond devices are destroyed but since no
synchronization mechanism exists, a new bond device can be created
via bonding_masters before unregister_pernet_subsys which would
lead to multiple problems (e.g. NULL pointer dereference, wrong RIP,
list corruption).

This patch fixes the issue by removing any bond devices left in the
netns after bonding_masters is removed from sysfs.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@redhat.com&gt;
Acked-by: Veaceslav Falico &lt;vfalico@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "bonding: remove sysfs before removing devices"</title>
<updated>2013-04-08T20:45:09+00:00</updated>
<author>
<name>nikolay@redhat.com</name>
<email>nikolay@redhat.com</email>
</author>
<published>2013-04-06T00:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ffcdedb667b6db8ee31c7efa76a3ec59d9c3b0fc'/>
<id>ffcdedb667b6db8ee31c7efa76a3ec59d9c3b0fc</id>
<content type='text'>
This reverts commit 4de79c737b200492195ebc54a887075327e1ec1d.

This patch introduces a new bug which causes access to freed memory.
In bond_uninit: list_del(&amp;bond-&gt;bond_list);
bond_list is linked in bond_net's dev_list which is freed by
unregister_pernet_subsys.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@redhat.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 reverts commit 4de79c737b200492195ebc54a887075327e1ec1d.

This patch introduces a new bug which causes access to freed memory.
In bond_uninit: list_del(&amp;bond-&gt;bond_list);
bond_list is linked in bond_net's dev_list which is freed by
unregister_pernet_subsys.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem</title>
<updated>2013-04-08T18:26:57+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-04-08T18:26:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=64e5751918b4d03015b185750a46ecd050e1ce77'/>
<id>64e5751918b4d03015b185750a46ecd050e1ce77</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>net: mvneta: enable features before registering the driver</title>
<updated>2013-04-08T16:16:38+00:00</updated>
<author>
<name>willy tarreau</name>
<email>w@1wt.eu</email>
</author>
<published>2013-04-06T08:47:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b50b72de2f2feed4adfbd8e18610a393b5a04cc7'/>
<id>b50b72de2f2feed4adfbd8e18610a393b5a04cc7</id>
<content type='text'>
It seems that the reason why the dev features were ignored was because
they were enabled after registeration.

Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
Acked-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.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>
It seems that the reason why the dev features were ignored was because
they were enabled after registeration.

Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
Acked-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hyperv: Fix RNDIS send_completion code path</title>
<updated>2013-04-08T16:15:17+00:00</updated>
<author>
<name>Haiyang Zhang</name>
<email>haiyangz@microsoft.com</email>
</author>
<published>2013-04-05T11:44:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f1ea3cd70110d482ef1ce6ef158df113aa366f43'/>
<id>f1ea3cd70110d482ef1ce6ef158df113aa366f43</id>
<content type='text'>
In some cases, the VM_PKT_COMP message can arrive later than RNDIS completion
message, which will free the packet memory. This may cause panic due to access
to freed memory in netvsc_send_completion().

This patch fixes this problem by removing rndis_filter_send_request_completion()
from the code path. The function was a no-op.

Reported-by: Long Li &lt;longli@microsoft.com&gt;
Tested-by: Long Li &lt;longli@microsoft.com&gt;
Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.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>
In some cases, the VM_PKT_COMP message can arrive later than RNDIS completion
message, which will free the packet memory. This may cause panic due to access
to freed memory in netvsc_send_completion().

This patch fixes this problem by removing rndis_filter_send_request_completion()
from the code path. The function was a no-op.

Reported-by: Long Li &lt;longli@microsoft.com&gt;
Tested-by: Long Li &lt;longli@microsoft.com&gt;
Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hyperv: Fix a kernel warning from netvsc_linkstatus_callback()</title>
<updated>2013-04-08T16:15:17+00:00</updated>
<author>
<name>Haiyang Zhang</name>
<email>haiyangz@microsoft.com</email>
</author>
<published>2013-04-05T11:44:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fd5c07a8d6a10c7112b19f3b0d428627c62b06ab'/>
<id>fd5c07a8d6a10c7112b19f3b0d428627c62b06ab</id>
<content type='text'>
The warning about local_bh_enable inside IRQ happens when disconnecting a
virtual NIC.

The reason for the warning is -- netif_tx_disable() is called when the NIC
is disconnected. And it's called within irq context. netif_tx_disable() calls
local_bh_enable() which displays warning if in irq.

The fix is to remove the unnecessary netif_tx_disable &amp; wake_queue() in the
netvsc_linkstatus_callback().

Reported-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Tested-by: Long Li &lt;longli@microsoft.com&gt;
Tested-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.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>
The warning about local_bh_enable inside IRQ happens when disconnecting a
virtual NIC.

The reason for the warning is -- netif_tx_disable() is called when the NIC
is disconnected. And it's called within irq context. netif_tx_disable() calls
local_bh_enable() which displays warning if in irq.

The fix is to remove the unnecessary netif_tx_disable &amp; wake_queue() in the
netvsc_linkstatus_callback().

Reported-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Tested-by: Long Li &lt;longli@microsoft.com&gt;
Tested-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2x: Fix KR2 rapid link flap</title>
<updated>2013-04-07T21:17:00+00:00</updated>
<author>
<name>Yaniv Rosner</name>
<email>yanivr@broadcom.com</email>
</author>
<published>2013-04-07T05:36:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=cb28ea3b13b86fb23448525f34720e659bda7aa8'/>
<id>cb28ea3b13b86fb23448525f34720e659bda7aa8</id>
<content type='text'>
Check KR2 recovery time at the beginning of the work-around function.

Signed-off-by: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.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>
Check KR2 recovery time at the beginning of the work-around function.

Signed-off-by: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ixgbe: fix registration order of driver and DCA nofitication</title>
<updated>2013-04-05T04:49:13+00:00</updated>
<author>
<name>Jakub Kicinski</name>
<email>jakub.kicinski@intel.com</email>
</author>
<published>2013-04-03T16:50:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f01fc1a82c2ee68726b400fadb156bd623b5f2f1'/>
<id>f01fc1a82c2ee68726b400fadb156bd623b5f2f1</id>
<content type='text'>
ixgbe_notify_dca cannot be called before driver registration
because it expects driver's klist_devices to be allocated and
initialized. While on it make sure debugfs files are removed
when registration fails.

Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@intel.com&gt;
Tested-by: Phil Schmitt &lt;phillip.j.schmitt@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.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>
ixgbe_notify_dca cannot be called before driver registration
because it expects driver's klist_devices to be allocated and
initialized. While on it make sure debugfs files are removed
when registration fails.

Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@intel.com&gt;
Tested-by: Phil Schmitt &lt;phillip.j.schmitt@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
