<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch v3.6.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock()</title>
<updated>2012-10-07T15:39:35+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2012-09-21T07:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b2be9b06f9f9682943fe274c0d3c07945e623e76'/>
<id>b2be9b06f9f9682943fe274c0d3c07945e623e76</id>
<content type='text'>
commit f61bd0585dfc7d99db4936d7467de4ca8e2f7ea0 upstream.

In case of error, the function clk_get() returns ERR_PTR()
and never returns NULL pointer. The NULL test in the error
handling should be replaced with IS_ERR().

dpatch engine is used to auto generated this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Acked-by: Wolfgang Grandegger &lt;wg@grandegger.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f61bd0585dfc7d99db4936d7467de4ca8e2f7ea0 upstream.

In case of error, the function clk_get() returns ERR_PTR()
and never returns NULL pointer. The NULL test in the error
handling should be replaced with IS_ERR().

dpatch engine is used to auto generated this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Acked-by: Wolfgang Grandegger &lt;wg@grandegger.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: Disable ASPM only for AR9285</title>
<updated>2012-10-07T15:39:33+00:00</updated>
<author>
<name>Sujith Manoharan</name>
<email>c_manoha@qualcomm.com</email>
</author>
<published>2012-09-21T18:44:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1a7dcc9ae24f131dd2ee85eacc9c04d5562ef170'/>
<id>1a7dcc9ae24f131dd2ee85eacc9c04d5562ef170</id>
<content type='text'>
commit 046b6802c8d3c8a57448485513bf7291633e0fa3 upstream.

Currently, ASPM is disabled for all WLAN+BT combo chipsets
when BTCOEX is enabled. This is incorrect since the workaround
is required only for WB195, which is a AR9285+AR3011 combo
solution. Fix this by checking for the HW version when enabling
the workaround.

Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Tested-by: Paul Stewart &lt;pstew@chromium.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 046b6802c8d3c8a57448485513bf7291633e0fa3 upstream.

Currently, ASPM is disabled for all WLAN+BT combo chipsets
when BTCOEX is enabled. This is incorrect since the workaround
is required only for WB195, which is a AR9285+AR3011 combo
solution. Fix this by checking for the HW version when enabling
the workaround.

Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Tested-by: Paul Stewart &lt;pstew@chromium.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>b43legacy: Fix crash on unload when firmware not available</title>
<updated>2012-10-07T15:39:32+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2012-09-26T17:32:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2975303676cea3f3d7cc076e32c1542637ef7edc'/>
<id>2975303676cea3f3d7cc076e32c1542637ef7edc</id>
<content type='text'>
commit 2d838bb608e2d1f6cb4280e76748cb812dc822e7 upstream.

When b43legacy is loaded without the firmware being available, a following
unload generates a kernel NULL pointer dereference BUG as follows:

[  214.330789] BUG: unable to handle kernel NULL pointer dereference at 0000004c
[  214.330997] IP: [&lt;c104c395&gt;] drain_workqueue+0x15/0x170
[  214.331179] *pde = 00000000
[  214.331311] Oops: 0000 [#1] SMP
[  214.331471] Modules linked in: b43legacy(-) ssb pcmcia mac80211 cfg80211 af_packet mperf arc4 ppdev sr_mod cdrom sg shpchp yenta_socket pcmcia_rsrc pci_hotplug pcmcia_core battery parport_pc parport floppy container ac button edd autofs4 ohci_hcd ehci_hcd usbcore usb_common thermal processor scsi_dh_rdac scsi_dh_hp_sw scsi_dh_emc scsi_dh_alua scsi_dh fan thermal_sys hwmon ata_generic pata_ali libata [last unloaded: cfg80211]
[  214.333421] Pid: 3639, comm: modprobe Not tainted 3.6.0-rc6-wl+ #163 Source Technology VIC 9921/ALI Based Notebook
[  214.333580] EIP: 0060:[&lt;c104c395&gt;] EFLAGS: 00010246 CPU: 0
[  214.333687] EIP is at drain_workqueue+0x15/0x170
[  214.333788] EAX: c162ac40 EBX: cdfb8360 ECX: 0000002a EDX: 00002a2a
[  214.333890] ESI: 00000000 EDI: 00000000 EBP: cd767e7c ESP: cd767e5c
[  214.333957]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  214.333957] CR0: 8005003b CR2: 0000004c CR3: 0c96a000 CR4: 00000090
[  214.333957] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[  214.333957] DR6: ffff0ff0 DR7: 00000400
[  214.333957] Process modprobe (pid: 3639, ti=cd766000 task=cf802e90 task.ti=cd766000)
[  214.333957] Stack:
[  214.333957]  00000292 cd767e74 c12c5e09 00000296 00000296 cdfb8360 cdfb9220 00000000
[  214.333957]  cd767e90 c104c4fd cdfb8360 cdfb9220 cd682800 cd767ea4 d0c10184 cd682800
[  214.333957]  cd767ea4 cba31064 cd767eb8 d0867908 cba31064 d087e09c cd96f034 cd767ec4
[  214.333957] Call Trace:
[  214.333957]  [&lt;c12c5e09&gt;] ? skb_dequeue+0x49/0x60
[  214.333957]  [&lt;c104c4fd&gt;] destroy_workqueue+0xd/0x150
[  214.333957]  [&lt;d0c10184&gt;] ieee80211_unregister_hw+0xc4/0x100 [mac80211]
[  214.333957]  [&lt;d0867908&gt;] b43legacy_remove+0x78/0x80 [b43legacy]
[  214.333957]  [&lt;d083654d&gt;] ssb_device_remove+0x1d/0x30 [ssb]
[  214.333957]  [&lt;c126f15a&gt;] __device_release_driver+0x5a/0xb0
[  214.333957]  [&lt;c126fb07&gt;] driver_detach+0x87/0x90
[  214.333957]  [&lt;c126ef4c&gt;] bus_remove_driver+0x6c/0xe0
[  214.333957]  [&lt;c1270120&gt;] driver_unregister+0x40/0x70
[  214.333957]  [&lt;d083686b&gt;] ssb_driver_unregister+0xb/0x10 [ssb]
[  214.333957]  [&lt;d087c488&gt;] b43legacy_exit+0xd/0xf [b43legacy]
[  214.333957]  [&lt;c1089dde&gt;] sys_delete_module+0x14e/0x2b0
[  214.333957]  [&lt;c110a4a7&gt;] ? vfs_write+0xf7/0x150
[  214.333957]  [&lt;c1240050&gt;] ? tty_write_lock+0x50/0x50
[  214.333957]  [&lt;c110a6f8&gt;] ? sys_write+0x38/0x70
[  214.333957]  [&lt;c1397c55&gt;] syscall_call+0x7/0xb
[  214.333957] Code: bc 27 00 00 00 00 a1 74 61 56 c1 55 89 e5 e8 a3 fc ff ff 5d c3 90 55 89 e5 57 56 89 c6 53 b8 40 ac 62 c1 83 ec 14 e8 bb b7 34 00 &lt;8b&gt; 46 4c 8d 50 01 85 c0 89 56 4c 75 03 83 0e 40 80 05 40 ac 62
[  214.333957] EIP: [&lt;c104c395&gt;] drain_workqueue+0x15/0x170 SS:ESP 0068:cd767e5c
[  214.333957] CR2: 000000000000004c
[  214.341110] ---[ end trace c7e90ec026d875a6 ]---Index: wireless-testing/drivers/net/wireless/b43legacy/main.c

The problem is fixed by making certain that the ucode pointer is not NULL
before deregistering the driver in mac80211.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2d838bb608e2d1f6cb4280e76748cb812dc822e7 upstream.

When b43legacy is loaded without the firmware being available, a following
unload generates a kernel NULL pointer dereference BUG as follows:

[  214.330789] BUG: unable to handle kernel NULL pointer dereference at 0000004c
[  214.330997] IP: [&lt;c104c395&gt;] drain_workqueue+0x15/0x170
[  214.331179] *pde = 00000000
[  214.331311] Oops: 0000 [#1] SMP
[  214.331471] Modules linked in: b43legacy(-) ssb pcmcia mac80211 cfg80211 af_packet mperf arc4 ppdev sr_mod cdrom sg shpchp yenta_socket pcmcia_rsrc pci_hotplug pcmcia_core battery parport_pc parport floppy container ac button edd autofs4 ohci_hcd ehci_hcd usbcore usb_common thermal processor scsi_dh_rdac scsi_dh_hp_sw scsi_dh_emc scsi_dh_alua scsi_dh fan thermal_sys hwmon ata_generic pata_ali libata [last unloaded: cfg80211]
[  214.333421] Pid: 3639, comm: modprobe Not tainted 3.6.0-rc6-wl+ #163 Source Technology VIC 9921/ALI Based Notebook
[  214.333580] EIP: 0060:[&lt;c104c395&gt;] EFLAGS: 00010246 CPU: 0
[  214.333687] EIP is at drain_workqueue+0x15/0x170
[  214.333788] EAX: c162ac40 EBX: cdfb8360 ECX: 0000002a EDX: 00002a2a
[  214.333890] ESI: 00000000 EDI: 00000000 EBP: cd767e7c ESP: cd767e5c
[  214.333957]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  214.333957] CR0: 8005003b CR2: 0000004c CR3: 0c96a000 CR4: 00000090
[  214.333957] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[  214.333957] DR6: ffff0ff0 DR7: 00000400
[  214.333957] Process modprobe (pid: 3639, ti=cd766000 task=cf802e90 task.ti=cd766000)
[  214.333957] Stack:
[  214.333957]  00000292 cd767e74 c12c5e09 00000296 00000296 cdfb8360 cdfb9220 00000000
[  214.333957]  cd767e90 c104c4fd cdfb8360 cdfb9220 cd682800 cd767ea4 d0c10184 cd682800
[  214.333957]  cd767ea4 cba31064 cd767eb8 d0867908 cba31064 d087e09c cd96f034 cd767ec4
[  214.333957] Call Trace:
[  214.333957]  [&lt;c12c5e09&gt;] ? skb_dequeue+0x49/0x60
[  214.333957]  [&lt;c104c4fd&gt;] destroy_workqueue+0xd/0x150
[  214.333957]  [&lt;d0c10184&gt;] ieee80211_unregister_hw+0xc4/0x100 [mac80211]
[  214.333957]  [&lt;d0867908&gt;] b43legacy_remove+0x78/0x80 [b43legacy]
[  214.333957]  [&lt;d083654d&gt;] ssb_device_remove+0x1d/0x30 [ssb]
[  214.333957]  [&lt;c126f15a&gt;] __device_release_driver+0x5a/0xb0
[  214.333957]  [&lt;c126fb07&gt;] driver_detach+0x87/0x90
[  214.333957]  [&lt;c126ef4c&gt;] bus_remove_driver+0x6c/0xe0
[  214.333957]  [&lt;c1270120&gt;] driver_unregister+0x40/0x70
[  214.333957]  [&lt;d083686b&gt;] ssb_driver_unregister+0xb/0x10 [ssb]
[  214.333957]  [&lt;d087c488&gt;] b43legacy_exit+0xd/0xf [b43legacy]
[  214.333957]  [&lt;c1089dde&gt;] sys_delete_module+0x14e/0x2b0
[  214.333957]  [&lt;c110a4a7&gt;] ? vfs_write+0xf7/0x150
[  214.333957]  [&lt;c1240050&gt;] ? tty_write_lock+0x50/0x50
[  214.333957]  [&lt;c110a6f8&gt;] ? sys_write+0x38/0x70
[  214.333957]  [&lt;c1397c55&gt;] syscall_call+0x7/0xb
[  214.333957] Code: bc 27 00 00 00 00 a1 74 61 56 c1 55 89 e5 e8 a3 fc ff ff 5d c3 90 55 89 e5 57 56 89 c6 53 b8 40 ac 62 c1 83 ec 14 e8 bb b7 34 00 &lt;8b&gt; 46 4c 8d 50 01 85 c0 89 56 4c 75 03 83 0e 40 80 05 40 ac 62
[  214.333957] EIP: [&lt;c104c395&gt;] drain_workqueue+0x15/0x170 SS:ESP 0068:cd767e5c
[  214.333957] CR2: 000000000000004c
[  214.341110] ---[ end trace c7e90ec026d875a6 ]---Index: wireless-testing/drivers/net/wireless/b43legacy/main.c

The problem is fixed by making certain that the ucode pointer is not NULL
before deregistering the driver in mac80211.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>netdev: octeon: fix return value check in octeon_mgmt_init_phy()</title>
<updated>2012-09-28T05:18:32+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2012-09-27T19:04:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=df555b665367f9de6c04826acc482096f17c243d'/>
<id>df555b665367f9de6c04826acc482096f17c243d</id>
<content type='text'>
In case of error, the function of_phy_connect() returns NULL
pointer not ERR_PTR(). The IS_ERR() test in the return value
check should be replaced with NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&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 case of error, the function of_phy_connect() returns NULL
pointer not ERR_PTR(). The IS_ERR() test in the return value
check should be replaced with NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qlcnic: Fix scheduling while atomic bug</title>
<updated>2012-09-27T23:24:52+00:00</updated>
<author>
<name>Narendra K</name>
<email>narendra_k@dell.com</email>
</author>
<published>2012-09-25T07:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=68b3f28c11bf896be32ad2a2e151aaa5f4a7c98e'/>
<id>68b3f28c11bf896be32ad2a2e151aaa5f4a7c98e</id>
<content type='text'>
In the device close path, 'qlcnic_fw_destroy_ctx' and
'qlcnic_poll_rsp' call msleep. But  'qlcnic_fw_destroy_ctx' and
'qlcnic_poll_rsp' are called with 'adapter-&gt;tx_clean_lock' spin lock
held resulting in scheduling while atomic bug causing the following
trace.

I observed that the commit 012dc19a45b2b9cc2ebd14aaa401cf782c2abba4
from John Fastabend addresses a similar issue in ixgbevf driver.
Adopting the same approach used in the commit, this patch uses mdelay
to address the issue.

[79884.999115] BUG: scheduling while atomic: ip/30846/0x00000002
[79885.005562] INFO: lockdep is turned off.
[79885.009958] Modules linked in: qlcnic fuse nf_conntrack_netbios_ns nf_conntrack_broadcast ipt_MASQUERADE bnep bluetooth rfkill ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_nat nf_nat iptable_mangle ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack iptable_filter ip_tables dcdbas coretemp kvm_intel kvm iTCO_wdt ixgbe iTCO_vendor_support crc32c_intel ghash_clmulni_intel nfsd microcode sb_edac pcspkr edac_core dca bnx2x shpchp auth_rpcgss nfs_acl lpc_ich mfd_core mdio lockd libcrc32c wmi acpi_pad acpi_power_meter sunrpc uinput sd_mod sr_mod cdrom crc_t10dif ahci libahci libata megaraid_sas usb_storage dm_mirror dm_region_hash dm_log dm_mod [last unloaded: qlcnic]
[79885.083608] Pid: 30846, comm: ip Tainted: G        W  O 3.6.0-rc7+ #1
[79885.090805] Call Trace:
[79885.093569]  [&lt;ffffffff816764d8&gt;] __schedule_bug+0x68/0x76
[79885.099699]  [&lt;ffffffff8168358e&gt;] __schedule+0x99e/0xa00
[79885.105634]  [&lt;ffffffff81683929&gt;] schedule+0x29/0x70
[79885.111186]  [&lt;ffffffff81680def&gt;] schedule_timeout+0x16f/0x350
[79885.117724]  [&lt;ffffffff811afb7a&gt;] ? init_object+0x4a/0x90
[79885.123770]  [&lt;ffffffff8107c190&gt;] ? __internal_add_timer+0x140/0x140
[79885.130873]  [&lt;ffffffff81680fee&gt;] schedule_timeout_uninterruptible+0x1e/0x20
[79885.138773]  [&lt;ffffffff8107e830&gt;] msleep+0x20/0x30
[79885.144159]  [&lt;ffffffffa04c7fbf&gt;] qlcnic_issue_cmd+0xef/0x290 [qlcnic]
[79885.151478]  [&lt;ffffffffa04c8265&gt;] qlcnic_fw_cmd_destroy_rx_ctx+0x55/0x90 [qlcnic]
[79885.159868]  [&lt;ffffffffa04c92fd&gt;] qlcnic_fw_destroy_ctx+0x2d/0xa0 [qlcnic]
[79885.167576]  [&lt;ffffffffa04bf2ed&gt;] __qlcnic_down+0x11d/0x180 [qlcnic]
[79885.174708]  [&lt;ffffffffa04bf6f8&gt;] qlcnic_close+0x18/0x20 [qlcnic]
[79885.181547]  [&lt;ffffffff8153b4c5&gt;] __dev_close_many+0x95/0xe0
[79885.187899]  [&lt;ffffffff8153b548&gt;] __dev_close+0x38/0x50
[79885.193761]  [&lt;ffffffff81545101&gt;] __dev_change_flags+0xa1/0x180
[79885.200419]  [&lt;ffffffff81545298&gt;] dev_change_flags+0x28/0x70
[79885.206779]  [&lt;ffffffff815531b8&gt;] do_setlink+0x378/0xa00
[79885.212731]  [&lt;ffffffff81354fe1&gt;] ? nla_parse+0x31/0xe0
[79885.218612]  [&lt;ffffffff815558ee&gt;] rtnl_newlink+0x37e/0x560
[79885.224768]  [&lt;ffffffff812cfa19&gt;] ? selinux_capable+0x39/0x50
[79885.231217]  [&lt;ffffffff812cbf98&gt;] ? security_capable+0x18/0x20
[79885.237765]  [&lt;ffffffff81555114&gt;] rtnetlink_rcv_msg+0x114/0x2f0
[79885.244412]  [&lt;ffffffff81551f87&gt;] ? rtnl_lock+0x17/0x20
[79885.250280]  [&lt;ffffffff81551f87&gt;] ? rtnl_lock+0x17/0x20
[79885.256148]  [&lt;ffffffff81555000&gt;] ? __rtnl_unlock+0x20/0x20
[79885.262413]  [&lt;ffffffff81570fc1&gt;] netlink_rcv_skb+0xa1/0xb0
[79885.268661]  [&lt;ffffffff81551fb5&gt;] rtnetlink_rcv+0x25/0x40
[79885.274727]  [&lt;ffffffff815708bd&gt;] netlink_unicast+0x19d/0x220
[79885.281146]  [&lt;ffffffff81570c45&gt;] netlink_sendmsg+0x305/0x3f0
[79885.287595]  [&lt;ffffffff8152b188&gt;] ? sock_update_classid+0x148/0x2e0
[79885.294650]  [&lt;ffffffff81525c2c&gt;] sock_sendmsg+0xbc/0xf0
[79885.300600]  [&lt;ffffffff8152600c&gt;] __sys_sendmsg+0x3ac/0x3c0
[79885.306853]  [&lt;ffffffff8109be23&gt;] ? up_read+0x23/0x40
[79885.312510]  [&lt;ffffffff816896cc&gt;] ? do_page_fault+0x2bc/0x570
[79885.318968]  [&lt;ffffffff81191854&gt;] ? sys_brk+0x44/0x150
[79885.324715]  [&lt;ffffffff811c458c&gt;] ? fget_light+0x24c/0x520
[79885.330875]  [&lt;ffffffff815286f9&gt;] sys_sendmsg+0x49/0x90
[79885.336707]  [&lt;ffffffff8168e429&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Narendra K &lt;narendra_k@dell.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 the device close path, 'qlcnic_fw_destroy_ctx' and
'qlcnic_poll_rsp' call msleep. But  'qlcnic_fw_destroy_ctx' and
'qlcnic_poll_rsp' are called with 'adapter-&gt;tx_clean_lock' spin lock
held resulting in scheduling while atomic bug causing the following
trace.

I observed that the commit 012dc19a45b2b9cc2ebd14aaa401cf782c2abba4
from John Fastabend addresses a similar issue in ixgbevf driver.
Adopting the same approach used in the commit, this patch uses mdelay
to address the issue.

[79884.999115] BUG: scheduling while atomic: ip/30846/0x00000002
[79885.005562] INFO: lockdep is turned off.
[79885.009958] Modules linked in: qlcnic fuse nf_conntrack_netbios_ns nf_conntrack_broadcast ipt_MASQUERADE bnep bluetooth rfkill ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_nat nf_nat iptable_mangle ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack iptable_filter ip_tables dcdbas coretemp kvm_intel kvm iTCO_wdt ixgbe iTCO_vendor_support crc32c_intel ghash_clmulni_intel nfsd microcode sb_edac pcspkr edac_core dca bnx2x shpchp auth_rpcgss nfs_acl lpc_ich mfd_core mdio lockd libcrc32c wmi acpi_pad acpi_power_meter sunrpc uinput sd_mod sr_mod cdrom crc_t10dif ahci libahci libata megaraid_sas usb_storage dm_mirror dm_region_hash dm_log dm_mod [last unloaded: qlcnic]
[79885.083608] Pid: 30846, comm: ip Tainted: G        W  O 3.6.0-rc7+ #1
[79885.090805] Call Trace:
[79885.093569]  [&lt;ffffffff816764d8&gt;] __schedule_bug+0x68/0x76
[79885.099699]  [&lt;ffffffff8168358e&gt;] __schedule+0x99e/0xa00
[79885.105634]  [&lt;ffffffff81683929&gt;] schedule+0x29/0x70
[79885.111186]  [&lt;ffffffff81680def&gt;] schedule_timeout+0x16f/0x350
[79885.117724]  [&lt;ffffffff811afb7a&gt;] ? init_object+0x4a/0x90
[79885.123770]  [&lt;ffffffff8107c190&gt;] ? __internal_add_timer+0x140/0x140
[79885.130873]  [&lt;ffffffff81680fee&gt;] schedule_timeout_uninterruptible+0x1e/0x20
[79885.138773]  [&lt;ffffffff8107e830&gt;] msleep+0x20/0x30
[79885.144159]  [&lt;ffffffffa04c7fbf&gt;] qlcnic_issue_cmd+0xef/0x290 [qlcnic]
[79885.151478]  [&lt;ffffffffa04c8265&gt;] qlcnic_fw_cmd_destroy_rx_ctx+0x55/0x90 [qlcnic]
[79885.159868]  [&lt;ffffffffa04c92fd&gt;] qlcnic_fw_destroy_ctx+0x2d/0xa0 [qlcnic]
[79885.167576]  [&lt;ffffffffa04bf2ed&gt;] __qlcnic_down+0x11d/0x180 [qlcnic]
[79885.174708]  [&lt;ffffffffa04bf6f8&gt;] qlcnic_close+0x18/0x20 [qlcnic]
[79885.181547]  [&lt;ffffffff8153b4c5&gt;] __dev_close_many+0x95/0xe0
[79885.187899]  [&lt;ffffffff8153b548&gt;] __dev_close+0x38/0x50
[79885.193761]  [&lt;ffffffff81545101&gt;] __dev_change_flags+0xa1/0x180
[79885.200419]  [&lt;ffffffff81545298&gt;] dev_change_flags+0x28/0x70
[79885.206779]  [&lt;ffffffff815531b8&gt;] do_setlink+0x378/0xa00
[79885.212731]  [&lt;ffffffff81354fe1&gt;] ? nla_parse+0x31/0xe0
[79885.218612]  [&lt;ffffffff815558ee&gt;] rtnl_newlink+0x37e/0x560
[79885.224768]  [&lt;ffffffff812cfa19&gt;] ? selinux_capable+0x39/0x50
[79885.231217]  [&lt;ffffffff812cbf98&gt;] ? security_capable+0x18/0x20
[79885.237765]  [&lt;ffffffff81555114&gt;] rtnetlink_rcv_msg+0x114/0x2f0
[79885.244412]  [&lt;ffffffff81551f87&gt;] ? rtnl_lock+0x17/0x20
[79885.250280]  [&lt;ffffffff81551f87&gt;] ? rtnl_lock+0x17/0x20
[79885.256148]  [&lt;ffffffff81555000&gt;] ? __rtnl_unlock+0x20/0x20
[79885.262413]  [&lt;ffffffff81570fc1&gt;] netlink_rcv_skb+0xa1/0xb0
[79885.268661]  [&lt;ffffffff81551fb5&gt;] rtnetlink_rcv+0x25/0x40
[79885.274727]  [&lt;ffffffff815708bd&gt;] netlink_unicast+0x19d/0x220
[79885.281146]  [&lt;ffffffff81570c45&gt;] netlink_sendmsg+0x305/0x3f0
[79885.287595]  [&lt;ffffffff8152b188&gt;] ? sock_update_classid+0x148/0x2e0
[79885.294650]  [&lt;ffffffff81525c2c&gt;] sock_sendmsg+0xbc/0xf0
[79885.300600]  [&lt;ffffffff8152600c&gt;] __sys_sendmsg+0x3ac/0x3c0
[79885.306853]  [&lt;ffffffff8109be23&gt;] ? up_read+0x23/0x40
[79885.312510]  [&lt;ffffffff816896cc&gt;] ? do_page_fault+0x2bc/0x570
[79885.318968]  [&lt;ffffffff81191854&gt;] ? sys_brk+0x44/0x150
[79885.324715]  [&lt;ffffffff811c458c&gt;] ? fget_light+0x24c/0x520
[79885.330875]  [&lt;ffffffff815286f9&gt;] sys_sendmsg+0x49/0x90
[79885.336707]  [&lt;ffffffff8168e429&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Narendra K &lt;narendra_k@dell.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2: Clean up remaining iounmap</title>
<updated>2012-09-27T23:18:50+00:00</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2012-09-26T07:22:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=64f605c77408ad3aaff025e849d2e42cad9687e3'/>
<id>64f605c77408ad3aaff025e849d2e42cad9687e3</id>
<content type='text'>
commit c0357e975afdbbedab5c662d19bef865f02adc17 modified bnx2 to switch from
using ioremap/iounmap to pci_iomap/pci_iounmap.  They missed a spot in the error
path of bnx2_init_one though.  This patch just cleans that up.

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
CC: Michael Chan &lt;mcan@broadcom.com&gt;
CC: "David S. Miller" &lt;davem@davemloft.net&gt;
Acked-by: Michael Chan &lt;mchan@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>
commit c0357e975afdbbedab5c662d19bef865f02adc17 modified bnx2 to switch from
using ioremap/iounmap to pci_iomap/pci_iounmap.  They missed a spot in the error
path of bnx2_init_one though.  This patch just cleans that up.

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
CC: Michael Chan &lt;mcan@broadcom.com&gt;
CC: "David S. Miller" &lt;davem@davemloft.net&gt;
Acked-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: phy: smsc: Implement PHY config_init for LAN87xx</title>
<updated>2012-09-27T22:28:30+00:00</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2012-09-25T10:17:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b629820d18fa65cc598390e4b9712fd5f83ee693'/>
<id>b629820d18fa65cc598390e4b9712fd5f83ee693</id>
<content type='text'>
The LAN8710/LAN8720 chips do have broken the "FlexPWR" smart power-saving
capability. Enabling it leads to the PHY not being able to detect Link when
cold-started without cable connected. Thus, make sure this is disabled.

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Christian Hohnstaedt &lt;chohnstaedt@innominate.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Fabio Estevam &lt;fabio.estevam@freescale.com&gt;
Cc: Giuseppe Cavallaro &lt;peppe.cavallaro@st.com&gt;
Cc: Otavio Salvador &lt;otavio@ossystems.com.br&gt;
Acked-by: Otavio Salvador &lt;otavio@ossystems.com.br&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 LAN8710/LAN8720 chips do have broken the "FlexPWR" smart power-saving
capability. Enabling it leads to the PHY not being able to detect Link when
cold-started without cable connected. Thus, make sure this is disabled.

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Christian Hohnstaedt &lt;chohnstaedt@innominate.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Fabio Estevam &lt;fabio.estevam@freescale.com&gt;
Cc: Giuseppe Cavallaro &lt;peppe.cavallaro@st.com&gt;
Cc: Otavio Salvador &lt;otavio@ossystems.com.br&gt;
Acked-by: Otavio Salvador &lt;otavio@ossystems.com.br&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>smsc75xx: fix resume after device reset</title>
<updated>2012-09-27T21:59:30+00:00</updated>
<author>
<name>Steve Glendinning</name>
<email>steve.glendinning@shawell.net</email>
</author>
<published>2012-09-24T04:42:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a3cff128c970da8400875c8893d68ac735e783fb'/>
<id>a3cff128c970da8400875c8893d68ac735e783fb</id>
<content type='text'>
On some systems this device fails to properly resume after suspend,
this patch fixes it by running the usbnet_resume handler.

I suspect this also fixes this bug:

http://code.google.com/p/chromium-os/issues/detail?id=31871

Signed-off-by: Steve Glendinning &lt;steve.glendinning@shawell.net&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>
On some systems this device fails to properly resume after suspend,
this patch fixes it by running the usbnet_resume handler.

I suspect this also fixes this bug:

http://code.google.com/p/chromium-os/issues/detail?id=31871

Signed-off-by: Steve Glendinning &lt;steve.glendinning@shawell.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netdev: pasemi: fix return value check in pasemi_mac_phy_init()</title>
<updated>2012-09-27T17:20:50+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2012-09-26T19:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=beb5ac20b3f90ffabac1eecd3c00205255df0728'/>
<id>beb5ac20b3f90ffabac1eecd3c00205255df0728</id>
<content type='text'>
In case of error, the function of_phy_connect() returns NULL
pointer not ERR_PTR(). The IS_ERR() test in the return value
check should be replaced with NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&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 case of error, the function of_phy_connect() returns NULL
pointer not ERR_PTR(). The IS_ERR() test in the return value
check should be replaced with NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>team: fix return value check</title>
<updated>2012-09-27T17:18:19+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2012-09-24T18:29:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a326e6dd315ee38c280b7ecf8a0d777952e384cd'/>
<id>a326e6dd315ee38c280b7ecf8a0d777952e384cd</id>
<content type='text'>
In case of error, the function genlmsg_put() returns NULL pointer
not ERR_PTR(). The IS_ERR() test in the return value check should
be replaced with NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Acked-by: Jiri Pirko &lt;jiri@resnulli.us&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 case of error, the function genlmsg_put() returns NULL pointer
not ERR_PTR(). The IS_ERR() test in the return value check should
be replaced with NULL test.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Acked-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
