<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/staging/wfx, branch v5.10.257</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.257</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.257'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2024-12-14T18:47:54+00:00</updated>
<entry>
<title>wifi: wfx: Fix error handling in wfx_core_init()</title>
<updated>2024-12-14T18:47:54+00:00</updated>
<author>
<name>Yuan Can</name>
<email>yuancan@huawei.com</email>
</author>
<published>2024-10-22T09:04:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3fd17a47ee724a90a308e16d657b3f3616ddcdf9'/>
<id>urn:sha1:3fd17a47ee724a90a308e16d657b3f3616ddcdf9</id>
<content type='text'>
[ Upstream commit 3b88a9876779b55478a4dde867e73f7a100ffa23 ]

The wfx_core_init() returns without checking the retval from
sdio_register_driver().
If the sdio_register_driver() failed, the module failed to install,
leaving the wfx_spi_driver not unregistered.

Fixes: a7a91ca5a23d ("staging: wfx: add infrastructure for new driver")
Signed-off-by: Yuan Can &lt;yuancan@huawei.com&gt;
Reviewed-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://patch.msgid.link/20241022090453.84679-1-yuancan@huawei.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>staging: wfx: fix an error handling in wfx_init_common()</title>
<updated>2022-04-13T19:01:01+00:00</updated>
<author>
<name>Xiaoke Wang</name>
<email>xkernel.wang@foxmail.com</email>
</author>
<published>2022-02-18T13:59:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=93498c6e775ae91732a8109dba1bdcd324908f84'/>
<id>urn:sha1:93498c6e775ae91732a8109dba1bdcd324908f84</id>
<content type='text'>
[ Upstream commit 60f1d3c92dc1ef1026e5b917a329a7fa947da036 ]

One error handler of wfx_init_common() return without calling
ieee80211_free_hw(hw), which may result in memory leak. And I add
one err label to unify the error handler, which is useful for the
subsequent changes.

Suggested-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Reviewed-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Reviewed-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Signed-off-by: Xiaoke Wang &lt;xkernel.wang@foxmail.com&gt;
Link: https://lore.kernel.org/r/tencent_24A24A3EFF61206ECCC4B94B1C5C1454E108@qq.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>staging: wfx: ensure IRQ is ready before enabling it</title>
<updated>2021-11-26T09:39:08+00:00</updated>
<author>
<name>Jérôme Pouiller</name>
<email>jerome.pouiller@silabs.com</email>
</author>
<published>2021-09-13T13:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5010df76ab1f8bde8c8187fba243b52e8e9e684d'/>
<id>urn:sha1:5010df76ab1f8bde8c8187fba243b52e8e9e684d</id>
<content type='text'>
[ Upstream commit 5e57c668dc097c6c27c973504706edec53f79281 ]

Since commit 5561770f80b1 ("staging: wfx: repair external IRQ for
SDIO"), wfx_sdio_irq_subscribe() enforce the device to use IRQs.
However, there is currently a race in this code. An IRQ may happen
before the IRQ has been registered.

The problem has observed during debug session when the device crashes
before the IRQ set up:

    [ 1.546] wfx-sdio mmc0:0001:1: started firmware 3.12.2 "WF200_ASIC_WFM_(Jenkins)_FW3.12.2" (API: 3.7, keyset: C0, caps: 0x00000002)
    [ 2.559] wfx-sdio mmc0:0001:1: time out while polling control register
    [ 3.565] wfx-sdio mmc0:0001:1: chip is abnormally long to answer
    [ 6.563] wfx-sdio mmc0:0001:1: chip did not answer
    [ 6.568] wfx-sdio mmc0:0001:1: hardware request CONFIGURATION (0x09) on vif 2 returned error -110
    [ 6.577] wfx-sdio mmc0:0001:1: PDS bytes 0 to 12: chip didn't reply (corrupted file?)
    [ 6.585] Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [ 6.592] pgd = c0004000
    [ 6.595] [00000000] *pgd=00000000
    [ 6.598] Internal error: Oops - BUG: 17 [#1] THUMB2
    [ 6.603] Modules linked in:
    [ 6.606] CPU: 0 PID: 23 Comm: kworker/u2:1 Not tainted 3.18.19 #78
    [ 6.612] Workqueue: kmmcd mmc_rescan
    [ 6.616] task: c176d100 ti: c0e50000 task.ti: c0e50000
    [ 6.621] PC is at wake_up_process+0xa/0x14
    [ 6.625] LR is at sdio_irq+0x61/0x250
    [ 6.629] pc : [&lt;c001e8ae&gt;] lr : [&lt;c00ec5bd&gt;] psr: 600001b3
    [ 6.629] sp : c0e51bd8 ip : c0e51cc8 fp : 00000001
    [ 6.640] r10: 00000003 r9 : 00000000 r8 : c0003c34
    [ 6.644] r7 : c0e51bd8 r6 : c0003c30 r5 : 00000001 r4 : c0e78c00
    [ 6.651] r3 : 00000000 r2 : 00000000 r1 : 00000003 r0 : 00000000
    [ 6.657] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA Thumb Segment kernel
    [ 6.664] Control: 50c53c7d Table: 11fd8059 DAC: 00000015
    [ 6.670] Process kworker/u2:1 (pid: 23, stack limit = 0xc0e501b0)
    [ 6.676] Stack: (0xc0e51bd8 to 0xc0e52000)
    [...]
    [ 6.949] [&lt;c001e8ae&gt;] (wake_up_process) from [&lt;c00ec5bd&gt;] (sdio_irq+0x61/0x250)
    [ 6.956] [&lt;c00ec5bd&gt;] (sdio_irq) from [&lt;c0025099&gt;] (handle_irq_event_percpu+0x17/0x92)
    [ 6.964] [&lt;c0025099&gt;] (handle_irq_event_percpu) from [&lt;c002512f&gt;] (handle_irq_event+0x1b/0x24)
    [ 6.973] [&lt;c002512f&gt;] (handle_irq_event) from [&lt;c0026577&gt;] (handle_level_irq+0x5d/0x76)
    [ 6.981] [&lt;c0026577&gt;] (handle_level_irq) from [&lt;c0024cc3&gt;] (generic_handle_irq+0x13/0x1c)
    [ 6.989] [&lt;c0024cc3&gt;] (generic_handle_irq) from [&lt;c0024dd9&gt;] (__handle_domain_irq+0x31/0x48)
    [ 6.997] [&lt;c0024dd9&gt;] (__handle_domain_irq) from [&lt;c0008359&gt;] (ov_handle_irq+0x31/0xe0)
    [ 7.005] [&lt;c0008359&gt;] (ov_handle_irq) from [&lt;c000af5b&gt;] (__irq_svc+0x3b/0x5c)
    [ 7.013] Exception stack(0xc0e51c68 to 0xc0e51cb0)
    [...]
    [ 7.038] [&lt;c000af5b&gt;] (__irq_svc) from [&lt;c01775aa&gt;] (wait_for_common+0x9e/0xc4)
    [ 7.045] [&lt;c01775aa&gt;] (wait_for_common) from [&lt;c00e1dc3&gt;] (mmc_wait_for_req+0x4b/0xdc)
    [ 7.053] [&lt;c00e1dc3&gt;] (mmc_wait_for_req) from [&lt;c00e1e83&gt;] (mmc_wait_for_cmd+0x2f/0x34)
    [ 7.061] [&lt;c00e1e83&gt;] (mmc_wait_for_cmd) from [&lt;c00e7b2b&gt;] (mmc_io_rw_direct_host+0x71/0xac)
    [ 7.070] [&lt;c00e7b2b&gt;] (mmc_io_rw_direct_host) from [&lt;c00e8f79&gt;] (sdio_claim_irq+0x6b/0x116)
    [ 7.078] [&lt;c00e8f79&gt;] (sdio_claim_irq) from [&lt;c00d8415&gt;] (wfx_sdio_irq_subscribe+0x19/0x94)
    [ 7.086] [&lt;c00d8415&gt;] (wfx_sdio_irq_subscribe) from [&lt;c00d5229&gt;] (wfx_probe+0x189/0x2ac)
    [ 7.095] [&lt;c00d5229&gt;] (wfx_probe) from [&lt;c00d83bf&gt;] (wfx_sdio_probe+0x8f/0xcc)
    [ 7.102] [&lt;c00d83bf&gt;] (wfx_sdio_probe) from [&lt;c00e7fbb&gt;] (sdio_bus_probe+0x5f/0xa8)
    [ 7.109] [&lt;c00e7fbb&gt;] (sdio_bus_probe) from [&lt;c00be229&gt;] (driver_probe_device+0x59/0x134)
    [ 7.118] [&lt;c00be229&gt;] (driver_probe_device) from [&lt;c00bd4d7&gt;] (bus_for_each_drv+0x3f/0x4a)
    [ 7.126] [&lt;c00bd4d7&gt;] (bus_for_each_drv) from [&lt;c00be1a5&gt;] (device_attach+0x3b/0x52)
    [ 7.134] [&lt;c00be1a5&gt;] (device_attach) from [&lt;c00bdc2b&gt;] (bus_probe_device+0x17/0x4c)
    [ 7.141] [&lt;c00bdc2b&gt;] (bus_probe_device) from [&lt;c00bcd69&gt;] (device_add+0x2c5/0x334)
    [ 7.149] [&lt;c00bcd69&gt;] (device_add) from [&lt;c00e80bf&gt;] (sdio_add_func+0x23/0x44)
    [ 7.156] [&lt;c00e80bf&gt;] (sdio_add_func) from [&lt;c00e79eb&gt;] (mmc_attach_sdio+0x187/0x1ec)
    [ 7.164] [&lt;c00e79eb&gt;] (mmc_attach_sdio) from [&lt;c00e31bd&gt;] (mmc_rescan+0x18d/0x1fc)
    [ 7.172] [&lt;c00e31bd&gt;] (mmc_rescan) from [&lt;c001a14f&gt;] (process_one_work+0xd7/0x170)
    [ 7.179] [&lt;c001a14f&gt;] (process_one_work) from [&lt;c001a59b&gt;] (worker_thread+0x103/0x1bc)
    [ 7.187] [&lt;c001a59b&gt;] (worker_thread) from [&lt;c001c731&gt;] (kthread+0x7d/0x90)
    [ 7.194] [&lt;c001c731&gt;] (kthread) from [&lt;c0008ce1&gt;] (ret_from_fork+0x11/0x30)
    [ 7.201] Code: 2103 b580 2200 af00 (681b) 46bd
    [ 7.206] ---[ end trace 3ab50aced42eedb4 ]---

Signed-off-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Link: https://lore.kernel.org/r/20210913130203.1903622-33-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>staging: wfx: fix possible panic with re-queued frames</title>
<updated>2021-03-04T10:37:28+00:00</updated>
<author>
<name>Jérôme Pouiller</name>
<email>jerome.pouiller@silabs.com</email>
</author>
<published>2021-02-08T13:52:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6709f280e75da5699e16b955c8a211a9b8ba6b4d'/>
<id>urn:sha1:6709f280e75da5699e16b955c8a211a9b8ba6b4d</id>
<content type='text'>
[ Upstream commit 26df933d9b83ea668304dc4ec641d52ea1fc4091 ]

When the firmware rejects a frame (because station become asleep or
disconnected), the frame is re-queued in mac80211. However, the
re-queued frame was 8 bytes longer than the original one (the size of
the ICV for the encryption). So, when mac80211 try to send this frame
again, it is a little bigger than expected.
If the frame is re-queued secveral time it end with a skb_over_panic
because the skb buffer is not large enough.

Note it only happens when device acts as an AP and encryption is
enabled.

This patch more or less reverts the commit 049fde130419 ("staging: wfx:
drop useless field from struct wfx_tx_priv").

Fixes: 049fde130419 ("staging: wfx: drop useless field from struct wfx_tx_priv")
Signed-off-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Link: https://lore.kernel.org/r/20210208135254.399964-1-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'docs-5.10-warnings' of git://git.lwn.net/linux</title>
<updated>2020-11-03T21:14:14+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2020-11-03T21:14:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e6b0bd61a73718886c2df16762f0a5dba485fc10'/>
<id>urn:sha1:e6b0bd61a73718886c2df16762f0a5dba485fc10</id>
<content type='text'>
Pull documentation build warning fixes from Jonathan Corbet:
 "This contains a series of warning fixes from Mauro; once applied, the
  number of warnings from the once-noisy docs build process is nearly
  zero.

  Getting to this point has required a lot of work; once there,
  hopefully we can keep things that way.

  I have packaged this as a separate pull because it does a fair amount
  of reaching outside of Documentation/. The changes are all in comments
  and in code placement. It's all been in linux-next since last week"

* tag 'docs-5.10-warnings' of git://git.lwn.net/linux: (24 commits)
  docs: SafeSetID: fix a warning
  amdgpu: fix a few kernel-doc markup issues
  selftests: kselftest_harness.h: fix kernel-doc markups
  drm: amdgpu_dm: fix a typo
  gpu: docs: amdgpu.rst: get rid of wrong kernel-doc markups
  drm: amdgpu: kernel-doc: update some adev parameters
  docs: fs: api-summary.rst: get rid of kernel-doc include
  IB/srpt: docs: add a description for cq_size member
  locking/refcount: move kernel-doc markups to the proper place
  docs: lockdep-design: fix some warning issues
  MAINTAINERS: fix broken doc refs due to yaml conversion
  ice: docs fix a devlink info that broke a table
  crypto: sun8x-ce*: update entries to its documentation
  net: phy: remove kernel-doc duplication
  mm: pagemap.h: fix two kernel-doc markups
  blk-mq: docs: add kernel-doc description for a new struct member
  docs: userspace-api: add iommu.rst to the index file
  docs: hwmon: mp2975.rst: address some html build warnings
  docs: net: statistics.rst: remove a duplicated kernel-doc
  docs: kasan.rst: add two missing blank lines
  ...
</content>
</entry>
<entry>
<title>MAINTAINERS: fix broken doc refs due to yaml conversion</title>
<updated>2020-10-28T17:41:15+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab+huawei@kernel.org</email>
</author>
<published>2020-10-27T09:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ef900cccb864d72292b6f5564850d157036905ea'/>
<id>urn:sha1:ef900cccb864d72292b6f5564850d157036905ea</id>
<content type='text'>
Several *.txt files got converted to yaml. Update their
references at MAINTAINERS file accordingly.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab+huawei@kernel.org&gt;
Acked-by: Stephen Boyd &lt;sboyd@kernel.org&gt;
Link: https://lore.kernel.org/r/3b58afec5195d4ea505ea9b3f74d53f7abed4e6f.1603791716.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet &lt;corbet@lwn.net&gt;
</content>
</entry>
<entry>
<title>staging: wfx: fix test on return value of gpiod_get_value()</title>
<updated>2020-10-27T12:23:59+00:00</updated>
<author>
<name>Jérôme Pouiller</name>
<email>jerome.pouiller@silabs.com</email>
</author>
<published>2020-10-19T16:06:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=df5fbca677c916d1959f814b41b841b65e450027'/>
<id>urn:sha1:df5fbca677c916d1959f814b41b841b65e450027</id>
<content type='text'>
The commit 8522d62e6bca ("staging: wfx: gpiod_get_value() can return an
error") has changed the way the driver test the value returned by
gpiod_get_value(). The new code was wrong.

Fixes: 8522d62e6bca ("staging: wfx: gpiod_get_value() can return an error")
Signed-off-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Link: https://lore.kernel.org/r/20201019160604.1609180-2-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>staging: wfx: fix use of uninitialized pointer</title>
<updated>2020-10-27T12:23:42+00:00</updated>
<author>
<name>Jérôme Pouiller</name>
<email>jerome.pouiller@silabs.com</email>
</author>
<published>2020-10-19T16:06:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d3a85737521a8570adf3a8171b4b3e42216686ec'/>
<id>urn:sha1:d3a85737521a8570adf3a8171b4b3e42216686ec</id>
<content type='text'>
With -Wuninitialized, the compiler complains:

drivers/staging/wfx/data_tx.c:34:19: warning: variable 'band' is uninitialized when used here [-Wuninitialized]
    if (rate-&gt;idx &gt;= band-&gt;n_bitrates) {
                         ^~~~

Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Reported-by: Nathan Chancellor &lt;natechancellor@gmail.com&gt;
Fixes: 868fd970e187 ("staging: wfx: improve robustness of wfx_get_hw_rate()")
Signed-off-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Reviewed-by: Nathan Chancellor &lt;natechancellor@gmail.com&gt;
Link: https://lore.kernel.org/r/20201019160604.1609180-1-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>staging: wfx: improve robustness of wfx_get_hw_rate()</title>
<updated>2020-10-10T10:33:59+00:00</updated>
<author>
<name>Jérôme Pouiller</name>
<email>jerome.pouiller@silabs.com</email>
</author>
<published>2020-10-09T17:13:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=868fd970e187d39c586565c875837e530c6f7e1b'/>
<id>urn:sha1:868fd970e187d39c586565c875837e530c6f7e1b</id>
<content type='text'>
Smatch complains:

    data_tx.c:37 wfx_get_hw_rate() warn: constraint '(struct ieee80211_supported_band)-&gt;bitrates' overflow 'band-&gt;bitrates' 0 &lt;= abs_rl '0-127' user_rl '' required = '(struct ieee80211_supported_band)-&gt;n_bitrates'
    23          struct ieee80211_supported_band *band;
    24
    25          if (rate-&gt;idx &lt; 0)
    26                  return -1;
    27          if (rate-&gt;flags &amp; IEEE80211_TX_RC_MCS) {
    28                  if (rate-&gt;idx &gt; 7) {
    29                          WARN(1, "wrong rate-&gt;idx value: %d", rate-&gt;idx);
    30                          return -1;
    31                  }
    32                  return rate-&gt;idx + 14;
    33          }
    34          // WFx only support 2GHz, else band information should be retrieved
    35          // from ieee80211_tx_info
    36          band = wdev-&gt;hw-&gt;wiphy-&gt;bands[NL80211_BAND_2GHZ];
    37          return band-&gt;bitrates[rate-&gt;idx].hw_value;

Add a simple check to make Smatch happy.

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Link: https://lore.kernel.org/r/20201009171307.864608-9-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>staging: wfx: drop unicode characters from strings</title>
<updated>2020-10-10T10:33:59+00:00</updated>
<author>
<name>Jérôme Pouiller</name>
<email>jerome.pouiller@silabs.com</email>
</author>
<published>2020-10-09T17:13:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c9d47696391d17923ed34451d451fac5ff4939db'/>
<id>urn:sha1:c9d47696391d17923ed34451d451fac5ff4939db</id>
<content type='text'>
Smatch complains:

  hif_rx.c:235 hif_generic_indication() warn: format string contains non-ascii character '\xc2'
  hif_rx.c:235 hif_generic_indication() warn: format string contains non-ascii character '\xb0'
   234                  if (!wfx_api_older_than(wdev, 1, 4))
   235                          dev_info(wdev-&gt;dev, "Rx test ongoing. Temperature: %d°C\n",
                                                                                     ^
   236                                   body-&gt;data.rx_stats.current_temp);

So, replace the unicode character.

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Jérôme Pouiller &lt;jerome.pouiller@silabs.com&gt;
Link: https://lore.kernel.org/r/20201009171307.864608-8-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
