<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/wireless/marvell, branch linux-4.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.16.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.16.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-01-16T16:00:17Z</updated>
<entry>
<title>mwifiex: resolve reset vs. remove()/shutdown() deadlocks</title>
<updated>2018-01-16T16:00:17Z</updated>
<author>
<name>Brian Norris</name>
<email>briannorris@chromium.org</email>
</author>
<published>2018-01-12T21:08:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a64e7a79dd6030479caad603c8d78e6c9c14904f'/>
<id>urn:sha1:a64e7a79dd6030479caad603c8d78e6c9c14904f</id>
<content type='text'>
Commit b014e96d1abb ("PCI: Protect pci_error_handlers-&gt;reset_notify()
usage with device_lock()") resolves races between driver reset and
removal, but it introduces some new deadlock problems. If we see a
timeout while we've already started suspending, removing, or shutting
down the driver, we might see:

(a) a worker thread, running mwifiex_pcie_work() -&gt;
    mwifiex_pcie_card_reset_work() -&gt; pci_reset_function()
(b) a removal thread, running mwifiex_pcie_remove() -&gt;
    mwifiex_free_adapter() -&gt; mwifiex_unregister() -&gt;
    mwifiex_cleanup_pcie() -&gt; cancel_work_sync(&amp;card-&gt;work)

Unfortunately, mwifiex_pcie_remove() already holds the device lock that
pci_reset_function() is now requesting, and so we see a deadlock.

It's necessary to cancel and synchronize our outstanding work before
tearing down the driver, so we can't have this work wait indefinitely
for the lock.

It's reasonable to only "try" to reset here, since this will mostly
happen for cases where it's already difficult to reset the firmware
anyway (e.g., while we're suspending or powering off the system). And if
reset *really* needs to happen, we can always try again later.

Fixes: b014e96d1abb ("PCI: Protect pci_error_handlers-&gt;reset_notify() usage with device_lock()")
Cc: &lt;stable@vger.kernel.org&gt;
Cc: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Brian Norris &lt;briannorris@chromium.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>Revert "mwifiex: cancel pcie/sdio work in remove/shutdown handler"</title>
<updated>2018-01-16T16:00:16Z</updated>
<author>
<name>Brian Norris</name>
<email>briannorris@chromium.org</email>
</author>
<published>2018-01-12T21:08:36Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7e34c0d2f631a1ecd4a0a6973502fff72343487e'/>
<id>urn:sha1:7e34c0d2f631a1ecd4a0a6973502fff72343487e</id>
<content type='text'>
This reverts commit b713bbf1471b56b572ce26bd02b81a85c2b007f4.

The "fix" in question does not actually fix all related problems, and it
also introduces new deadlock possibilities. Since commit b014e96d1abb
("PCI: Protect pci_error_handlers-&gt;reset_notify() usage with
device_lock()"), the race in question is actually resolved (PCIe reset
cannot happen at the same time as remove()). Instead, this "fix" just
introduces a deadlock where mwifiex_pcie_card_reset_work() is waiting on
device_lock, which is held by PCIe device remove(), which is waiting
on...mwifiex_pcie_card_reset_work().

The proper thing to do is just to fix the deadlock. Patch for this will
come separately.

Cc: Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Brian Norris &lt;briannorris@chromium.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwifiex: cancel pcie/sdio work in remove/shutdown handler</title>
<updated>2018-01-08T17:38:11Z</updated>
<author>
<name>Xinming Hu</name>
<email>huxm@marvell.com</email>
</author>
<published>2017-12-13T11:27:53Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b713bbf1471b56b572ce26bd02b81a85c2b007f4'/>
<id>urn:sha1:b713bbf1471b56b572ce26bd02b81a85c2b007f4</id>
<content type='text'>
The last command used to shutdown firmware might be timeout,
and trigger firmware dump in asynchronous pcie/sdio work.

The remove/shutdown handler will continue free core data
structure private/adapter, which might be dereferenced in
pcie/sdio work, finally crash the kernel.

Sync and Cancel pcie/sdio work, could be a fix for above
cornel case. In this way, the last command timeout could
be handled properly.

Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwifiex: debugfs: trigger device dump for usb interface</title>
<updated>2018-01-08T17:36:56Z</updated>
<author>
<name>Xinming Hu</name>
<email>huxm@marvell.com</email>
</author>
<published>2017-12-12T07:38:13Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=18d605013357563de79afeee9e9d2000161eb6a0'/>
<id>urn:sha1:18d605013357563de79afeee9e9d2000161eb6a0</id>
<content type='text'>
This patch extend device_dump debugfs function to make it
works for usb interface.

For command timeouts, USB firmware will automatically emit
firmware dump events, so we don't implement device_dump().

For user-initiated dumps, we trigger it by issue firmware
dump event command to firmware, as there is no command
response, do not start 10s timer.

Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Cathy Luo &lt;cluo@marvell.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwifiex: device dump support for usb interface</title>
<updated>2018-01-08T17:36:55Z</updated>
<author>
<name>Xinming Hu</name>
<email>huxm@marvell.com</email>
</author>
<published>2017-12-12T07:38:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f5ecd02a8b20f900701d6809a3ea5f12e5c87de8'/>
<id>urn:sha1:f5ecd02a8b20f900701d6809a3ea5f12e5c87de8</id>
<content type='text'>
Firmware dump on usb interface is different with current
sdio/pcie chipset, which is based on register operation.

When firmware hang on usb interface, context dump will be
upload to host using 0x73 firmware debug event.

This patch store dump data from debug event and send to
userspace using device coredump API.

Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Cathy Luo &lt;cluo@marvell.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwifiex: refactor device dump code to make it generic for usb interface</title>
<updated>2018-01-08T17:36:55Z</updated>
<author>
<name>Xinming Hu</name>
<email>huxm@marvell.com</email>
</author>
<published>2017-12-12T07:38:11Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d0e2b44ef32814bdde8aaed307d1ae663fcf251c'/>
<id>urn:sha1:d0e2b44ef32814bdde8aaed307d1ae663fcf251c</id>
<content type='text'>
This patch refactor current device dump code to make it generic
for subsequent implementation on usb interface.

Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Cathy Luo &lt;cluo@marvell.com&gt;
Signed-off-by: Ganapathi Bhat &lt;gbhat@marvell.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwifiex: cfg80211: do not change virtual interface during scan processing</title>
<updated>2017-12-07T13:30:57Z</updated>
<author>
<name>Limin Zhu</name>
<email>liminzhu@marvell.com</email>
</author>
<published>2017-11-30T06:22:34Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c61cfe49f0f0f0d1f8b56d0b045838d597e8c3a3'/>
<id>urn:sha1:c61cfe49f0f0f0d1f8b56d0b045838d597e8c3a3</id>
<content type='text'>
(1) Change virtual interface operation in cfg80211 process reset and
reinitilize private data structure.
(2) Scan result event processed in main process will dereference private
data structure concurrently, ocassionly crash the kernel.

The cornel case could be trigger by below steps:
(1) wpa_cli mlan0 scan
(2) ./hostapd mlan0.conf

Cfg80211 asynchronous scan procedure is not all the time operated
under rtnl lock, here we add the protect to serialize the cfg80211
scan and change_virtual interface operation.

Signed-off-by: Limin Zhu &lt;liminzhu@marvell.com&gt;
Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwifiex: do not support change AP interface to station mode</title>
<updated>2017-12-07T13:26:27Z</updated>
<author>
<name>Xinming Hu</name>
<email>huxm@marvell.com</email>
</author>
<published>2017-11-22T06:55:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=71121e420d75a43c6faf45728fbaf0671423f199'/>
<id>urn:sha1:71121e420d75a43c6faf45728fbaf0671423f199</id>
<content type='text'>
Firmware do not support change interface from micro-ap mode
to station mode, forbid this operation

Signed-off-by: Cathy Luo &lt;cluo@marvell.com&gt;
Signed-off-by: Xinming Hu &lt;huxm@marvell.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>mwl8k: Expand non-DFS 5G channels</title>
<updated>2017-12-07T13:17:26Z</updated>
<author>
<name>Weixiao Zhang</name>
<email>waveletboy@gmail.com</email>
</author>
<published>2017-11-16T07:59:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4628257bf3006c18e0037459922624f02a138aed'/>
<id>urn:sha1:4628257bf3006c18e0037459922624f02a138aed</id>
<content type='text'>
Add non-DFS 5G upper channels (149-165) besides existed 4 lower channels
(36, 40, 44, 48).

Signed-off-by: Weixiao Zhang &lt;waveletboy@gmail.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'wireless-drivers-next-for-davem-2017-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next</title>
<updated>2017-11-04T09:07:50Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2017-11-04T09:07:50Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=6e300769dcbaba7bfacbc02ec9c3fcc595eec755'/>
<id>urn:sha1:6e300769dcbaba7bfacbc02ec9c3fcc595eec755</id>
<content type='text'>
Kalle Valo says:

====================
wireless-drivers-next patches for 4.15

Mostly fixes this time, but also few new features.

Major changes:

wil6210

* remove ssid debugfs file

rsi

* add WOWLAN support for suspend, hibernate and shutdown states

ath10k

* add support for CCMP-256, GCMP and GCMP-256 ciphers on hardware
  where it's supported (QCA99x0 and QCA4019)
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
