Muhammad Usama Anjum [Fri, 28 Jan 2022 11:19:54 +0000 (16:19 +0500)]
staging: rt8188eu: Remove dead code
rtStatus is _SUCCESS when the execution reaches this if condition.
Remove the dead code.
Fixes: 67396d2dfef3 ("staging: r8188eu: merge ODM_ConfigBBWithHeaderFile with its callers") Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> Link: https://lore.kernel.org/r/20220128111954.1028121-1-usama.anjum@collabora.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Michael Straube [Sun, 30 Jan 2022 11:12:19 +0000 (12:12 +0100)]
staging: r8188eu: remove hal_init_macaddr()
hal_init_macaddr() is just a wrapper around SetHwReg8188EU() which
calls hw_var_set_macaddr(). Remove hal_init_macaddr(), remove the
HW_VAR_MAC_ADDR case from SetHwReg8188EU() and call
hw_var_set_macaddr() directly.
Paulo Miguel Almeida [Sun, 30 Jan 2022 05:08:38 +0000 (18:08 +1300)]
staging: pi433: remove coding style item from the TODO file
After several patches sent by the community along the last couple of
years, it's possible to remove the coding style item from the TODO file
in the driver's folder.
This patch addresses the last code formatting inconsistences and remove
the coding style item from the TODO file.
Michael Straube [Fri, 28 Jan 2022 11:54:42 +0000 (12:54 +0100)]
staging: r8188eu: max_rx_ampdu_factor is always MAX_AMPDU_FACTOR_64K
The local variable max_rx_ampdu_factor in rtw_restructure_ht_ie() and
issue_action_BA() is always set to MAX_AMPDU_FACTOR_64K. Remove the
variable from both functions and use MAX_AMPDU_FACTOR_64K directly.
The case HW_VAR_MAX_RX_AMPDU_FACTOR in GetHalDefVar8188EUsb() is now
unused and can be removed.
Michael Straube [Fri, 28 Jan 2022 11:54:41 +0000 (12:54 +0100)]
staging: r8188eu: remove unused cases from GetHalDefVar8188EUsb()
GetHalDefVar8188EUsb() is never called with HAL_DEF_DRVINFO_SZ,
HAL_DEF_RA_DECISION_RATE, HAL_DEF_RA_SGI and HAL_DEF_PT_PWR_STATUS.
Remove these cases from the function.
Sergio Paracuellos [Mon, 10 Jan 2022 11:49:30 +0000 (12:49 +0100)]
staging: mt7621-dts: align resets with binding documentation
Binding documentation for compatible 'mediatek,mt7621-sysc' has been updated
to be used as a reset provider. Align reset related bits and system controller
node with binding documentation along the dtsi file.
Gustavo A. R. Silva [Tue, 25 Jan 2022 22:34:43 +0000 (16:34 -0600)]
staging: unisys: visorinput: Use struct_size() helper in kzalloc()
Make use of the struct_size() helper instead of an open-coded version,
in order to avoid any potential type mistakes or integer overflows that,
in the worst scenario, could lead to heap overflows.
Also, address the following sparse warnings:
drivers/staging/unisys/visorinput/visorinput.c:409:27: warning: using sizeof on a flexible structure
Arınç ÜNAL [Tue, 25 Jan 2022 15:39:03 +0000 (18:39 +0300)]
staging: mt7621-dts: fix pinctrl properties for ethernet
Add pinctrl properties with rgmii1 & mdio pins under ethernet node which
was wrongfully put under an external phy node.
GMAC1 will start working with this fix.
Paulo Miguel Almeida [Fri, 14 Jan 2022 22:16:43 +0000 (11:16 +1300)]
staging: pi433: enforce tx_cfg to be set before any message can be sent
this driver relies on exposing a char device to userspace to tx
messages. Every message can be sent using different trasmitter settings
such so the tx_cfg must be written before sending any messages.
Failing to do so will cause the message to fail silently depending on
printk/dynamic_debug settings which makes it hard to troubleshoot.
This patch add a control variable that will get initialized once tx_cfg
is set for the fd used when interacting with the char device.
The two macros FBTFT_REGISTER_DRIVER and FBTFT_REGISTER_SPI_DRIVER
contain quite some duplication: Both define an spi driver and an of device
table and the differences are quite subtle.
Paulo Miguel Almeida [Tue, 18 Jan 2022 23:05:55 +0000 (12:05 +1300)]
staging: pi433: validate max bit_rate based on modulation used
Max bit rate is dependent on which modulation is used. Previous
validation routine only took into consideration min bit rate which can
lead a misconfiguration of the rf69 chip causing the packets not to be
sent/read.
This patch enhances that input check in set_bit_rate to account for
modulation values and their respective max bit rate
Acked-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com> Link: https://lore.kernel.org/r/20220118230555.GA4961@mail.google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Paulo Miguel Almeida [Tue, 18 Jan 2022 23:05:02 +0000 (12:05 +1300)]
staging: pi433: change order in which driver config the rf69 chip
There is an explicit dependency between modulation and bit rate
configurations. To ensure proper validation of input value for the
set_bit_rate routine, we must ensure that modulation has been set
before.
This patch ensures that set_modulation is always called before
set_bit_rate for both RX and TX routines
Acked-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com> Link: https://lore.kernel.org/r/20220118230502.GA4897@mail.google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Paulo Miguel Almeida [Tue, 18 Jan 2022 23:04:13 +0000 (12:04 +1300)]
staging: pi433: fix validation for min bit rate supported by the device
rf69 datasheets establishes that the minimum supported bit rate is
1.2 kbps regardless of modulation.
this patch replaces the errouneous validation with the correct value
Acked-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com> Link: https://lore.kernel.org/r/20220118230413.GA4859@mail.google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Wahren [Sun, 23 Jan 2022 20:02:23 +0000 (21:02 +0100)]
staging: vchiq_dev: Avoid unnecessary alloc in vchiq_ioc_create_service
There is no need to allocate the user service in case there is a VCHIQ
connection required, but not available. So simply check the error conditions
before doing an expensive memory allocation.
Stefan Wahren [Sun, 23 Jan 2022 20:02:15 +0000 (21:02 +0100)]
staging: vchiq_core: drop prefix of vchiq_set_service_state
The name of this static function is unnecessary longish. So drop the prefix.
This gives us the chance to avoid some multi-line statements or fix some
indentations later.
rtw_init_netdev_name() calls dev_alloc_name() which allocates the name
for the device as per the given name format.
The name format is specified by the module parameter "ifname".
It returns a negative err code if the format is invalid. Handle this
error appropriately.
Cancel the timers ininitliazed by rtw_init_drv_sw() before calling
rtw_free_drv_sw() and then proceed to free the adapter.
Also, if register_netdev() fails then goto free_drv_sw instead of
goto handle_dualmac.
Paulo Miguel Almeida [Sat, 8 Jan 2022 21:27:28 +0000 (10:27 +1300)]
staging: pi433: move get version func to where all other functions are
As a convention for the pi433 driver, all routines that deals with the
rf69 chip are defined in the rf69.c file. There was an exception to the
rule in which the uC version verification was being done directly
elsewhere. While at it, the Version Register hardcoded value was
replaced with a pre-existing constant in the driver.
This patch adds rf69_get_version function to rf69.c
Martin Kaiser [Sat, 15 Jan 2022 16:55:32 +0000 (17:55 +0100)]
staging: r8188eu: call msecs_to_jiffies in _set_timer
The _set_timer wrapper function takes a timeout in milliseconds.
Call msecs_to_jiffies to convert the timeout to jiffies. Don't do
the calculation ourselves.
Martin Kaiser [Sat, 15 Jan 2022 16:55:31 +0000 (17:55 +0100)]
staging: r8188eu: remove _cancel_timer wrapper
Remove the _cancel_timer wrapper function and call del_timer_sync
directly.
None of the callers needs the bcancelled variable that's populated by
_cancel_timer, these variables can be removed in the calling functions.
rtw_surveydone_event_callback calls _cancel_timer only if it believes
that the timer is currently running. We can drop this. It's safe to
call del_timer_sync when the timer is not running. The timer in question,
scan_to_timer, is used only for the site survey command (the rtw_survey
functions) so we won't be stopping it while it's in use by someone else.
Phillip Potter [Mon, 10 Jan 2022 09:00:20 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_sta_mgt.c
Convert the DBG_88E macro calls in core/rtw_sta_mgt.c to use pr_debug,
as their information may be useful to observers, and this gets the
driver closer to the point of being able to remove DBG_88E itself.
These calls are at points in the call chain where use of dev_dbg or
netdev_dbg isn't possible due to lack of device pointer, so plain
pr_debug is appropriate here.
Phillip Potter [Mon, 10 Jan 2022 09:00:19 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_mlme_ext.c
Convert the DBG_88E macro calls in core/rtw_mlme_ext.c to use pr_debug
or netdev_dbg appropriately, as their information may be useful to
observers, and this gets the driver closer to the point of being
able to remove DBG_88E itself. Also remove some commented out
or unnecessary DBG_88E calls altogether.
Some calls are at points in the call chain where use of dev_dbg or
netdev_dbg isn't possible due to lack of device pointer, so plain
pr_debug is appropriate here.
Phillip Potter [Mon, 10 Jan 2022 09:00:18 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_ioctl_set.c
Convert the DBG_88E macro calls in core/rtw_ioctl_set.c to use netdev_dbg,
as their information may be useful to observers, and this gets the
driver closer to the point of being able to remove DBG_88E itself.
Also remove one unnecessary DBG_88E call which was already commented
out.
Phillip Potter [Mon, 10 Jan 2022 09:00:17 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_mlme.c
Convert the DBG_88E macro calls in core/rtw_mlme.c to use netdev_dbg,
as their information may be useful to observers, and this gets the
driver closer to the point of being able to remove DBG_88E itself.
Also remove some unnecessary DBG_88E calls altogether as all they do
is print the function name.
Phillip Potter [Mon, 10 Jan 2022 09:00:16 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_iol.c
Convert the DBG_88E macro calls in core/rtw_iol.c to use pr_debug
or netdev_dbg appropriately, as their information may be useful to
observers, and this gets the driver closer to the point of being
able to remove DBG_88E itself.
Some calls are at points in the call chain where use of dev_dbg or
netdev_dbg isn't possible due to lack of device pointer, so plain
pr_debug is appropriate here.
Phillip Potter [Mon, 10 Jan 2022 09:00:15 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_xmit.c
Convert the DBG_88E macro calls in core/rtw_xmit.c to use pr_debug
or netdev_dbg appropriately, as their information may be useful to
observers, and this gets the driver closer to the point of being
able to remove DBG_88E itself. Also remove some commented out
DBG_88E calls altogether.
Some calls are at points in the call chain where use of dev_dbg or
netdev_dbg isn't possible due to lack of device pointer, so plain
pr_debug is appropriate here.
Phillip Potter [Mon, 10 Jan 2022 09:00:14 +0000 (09:00 +0000)]
staging: r8188eu: convert DBG_88E calls in core/rtw_ieee80211.c
Convert the DBG_88E macro calls in core/rtw_ieee80211.c to use pr_debug
as their information may be useful to observers, and this gets the
driver closer to the point of being able to remove DBG_88E itself.
These calls are at points in the call chain where use of dev_dbg or
netdev_dbg isn't possible due to lack of device pointer, so plain
pr_debug is appropriate here.
Kees Cook [Tue, 18 Jan 2022 19:33:27 +0000 (11:33 -0800)]
staging: rtl8712: Drop get_recvframe_data()
As done for rtl8723bs and r8188eu, drop get_recvframe_data(), as it
introduces an impossible value (NULL) for the compiler to check code
paths against which could result in nonsensical warnings.
Kees Cook [Tue, 18 Jan 2022 19:33:26 +0000 (11:33 -0800)]
staging: rtl8723bs: Drop get_recvframe_data()
When building with -Warray-bounds, the following warning is emitted:
In file included from ./include/linux/string.h:253,
from ./arch/x86/include/asm/page_32.h:22,
from ./arch/x86/include/asm/page.h:14,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:60,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:78,
from ./include/linux/rcupdate.h:27,
from ./include/linux/rculist.h:11,
from ./include/linux/sched/signal.h:5,
from ./drivers/staging/rtl8723bs/include/drv_types.h:17,
from drivers/staging/rtl8723bs/core/rtw_recv.c:7:
In function 'memcpy',
inlined from 'wlanhdr_to_ethhdr' at drivers/staging/rtl8723bs/core/rtw_recv.c:1554:2:
./include/linux/fortify-string.h:41:33: warning: '__builtin_memcpy' offset [0, 5] is out of the bounds [0, 0] [-Warray-bounds]
41 | #define __underlying_memcpy __builtin_memcpy
| ^
This is because the compiler sees it is possible for "ptr" to be a NULL
value, and concludes that it has zero size and attempts to copy to it
would overflow. Instead, remove the get_recvframe_data() entirely, as
it's not possible for this to ever be NULL.
Additionally add missing NULL checks after recvframe_pull() (which are
present in the rtl8712 driver).
Cc: Larry Finger <Larry.Finger@lwfinger.net> Cc: Phillip Potter <phil@philpotter.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Michael Straube <straube.linux@gmail.com> Cc: Fabio Aiuto <fabioaiuto83@gmail.com> Cc: linux-staging@lists.linux.dev Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20220118193327.2822099-3-keescook@chromium.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Kees Cook [Tue, 18 Jan 2022 19:33:25 +0000 (11:33 -0800)]
staging: r8188eu: Drop get_recvframe_data()
When building with -Warray-bounds, the following warning is emitted:
In file included from ./include/linux/string.h:253,
from ./arch/x86/include/asm/page_32.h:22,
from ./arch/x86/include/asm/page.h:14,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:60,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:78,
from ./include/linux/rcupdate.h:27,
from ./include/linux/rculist.h:11,
from ./include/linux/sched/signal.h:5,
from ./drivers/staging/rtl8723bs/include/drv_types.h:17,
from drivers/staging/rtl8723bs/core/rtw_recv.c:7:
In function 'memcpy',
inlined from 'wlanhdr_to_ethhdr' at drivers/staging/rtl8723bs/core/rtw_recv.c:1554:2:
./include/linux/fortify-string.h:41:33: warning: '__builtin_memcpy' offset [0, 5] is out of the bounds [0, 0] [-Warray-bounds]
41 | #define __underlying_memcpy __builtin_memcpy
| ^
This is because the compiler sees it is possible for "ptr" to be a NULL
value, and concludes that it has zero size and attempts to copy to it
would overflow. Instead, remove the get_recvframe_data() entirely, as
it's not possible for this to ever be NULL.
Additionally add missing NULL checks after recvframe_pull() (which are
present in the rtl8712 driver).
Cc: Larry Finger <Larry.Finger@lwfinger.net> Cc: Phillip Potter <phil@philpotter.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Michael Straube <straube.linux@gmail.com> Cc: Fabio Aiuto <fabioaiuto83@gmail.com> Cc: linux-staging@lists.linux.dev Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20220118193327.2822099-2-keescook@chromium.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jérôme Pouiller [Thu, 13 Jan 2022 08:55:24 +0000 (09:55 +0100)]
staging: wfx: do not probe the device if not in the DT
Since the WF200 VID/PID are not reliable, it's recommended to declare it
in the DT. Until now, if the device was not declared, the driver just
printed a warning and continue. But, the risk of a collision is too
high, the driver now returns an error.
Jérôme Pouiller [Thu, 13 Jan 2022 08:55:22 +0000 (09:55 +0100)]
staging: wfx: drop legacy compatible values
Values "silabs,wfx-sdio" and "silabs,wfx-spi" are deprecated for a while
now. We take advantage of getting out of the staging tree to drop them
and start from a blank sheet.