On Mon, Jun 06, 2022 at 10:36:46PM +0300, Pavel Skripkin wrote: > Hi, > > it's reincarnation of my old series for adding sane error handling in > r8818eu. > > *Problem* > > Old code was returning just stack variable in case of read error. It's > not the best approach, since passing around stack data might cause > device misconfiguration or even kernel data leakage > > To solve this I've changed rtw_read{8,16,32} prototypes to return an error via > return value and data via passed pointer. Some work should be done to > propogate an error down to calltrace, but it's good way to at least > start doing sane I/O error handling > > Tested locally on qemu with TP-Link TL-WN722N v2/v3 [Realtek RTL8188EUS] > device. More testing is welcomed, of course :) > > _NOTE_ > Series is based on top of staging-testing branch. > > Changes since v2: > get rid of `(void)res` and return an error from function instead of > hiding it > > Changes since v1: > addresses issues found by Dan and self review. Mostly related to returning > _FAIL instead of -errno, since callers expect _FAIL/_SUCCESS > > v1: https://lore.kernel.org/linux-staging/cover.1652911343.git.paskripkin@xxxxxxxxx/ > v2: https://lore.kernel.org/linux-staging/cover.1652994483.git.paskripkin@xxxxxxxxx/ > > Pavel Skripkin (4): > staging: r8188eu: add error handling of rtw_read8 > staging: r8188eu: add error handling of rtw_read16 > staging: r8188eu: add error handling of rtw_read32 > MAINTAINERS: add myself as r8188eu reviewer > > MAINTAINERS | 1 + > drivers/staging/r8188eu/core/rtw_cmd.c | 15 +- > drivers/staging/r8188eu/core/rtw_efuse.c | 33 ++- > drivers/staging/r8188eu/core/rtw_fw.c | 72 +++-- > drivers/staging/r8188eu/core/rtw_led.c | 16 +- > drivers/staging/r8188eu/core/rtw_mlme_ext.c | 62 ++++- > drivers/staging/r8188eu/core/rtw_pwrctrl.c | 9 +- > drivers/staging/r8188eu/core/rtw_wlan_util.c | 20 +- > .../r8188eu/hal/Hal8188ERateAdaptive.c | 21 +- > drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 21 +- > drivers/staging/r8188eu/hal/HalPwrSeqCmd.c | 9 +- > drivers/staging/r8188eu/hal/hal_com.c | 27 +- > drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 37 ++- > drivers/staging/r8188eu/hal/rtl8188e_dm.c | 6 +- > .../staging/r8188eu/hal/rtl8188e_hal_init.c | 136 +++++++--- > drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 30 ++- > drivers/staging/r8188eu/hal/usb_halinit.c | 251 +++++++++++++++--- > drivers/staging/r8188eu/hal/usb_ops_linux.c | 33 ++- > drivers/staging/r8188eu/include/rtw_io.h | 6 +- > drivers/staging/r8188eu/os_dep/ioctl_linux.c | 47 +++- > drivers/staging/r8188eu/os_dep/os_intfs.c | 19 +- > 21 files changed, 693 insertions(+), 178 deletions(-) After applying, I get the following build warning which breaks the build: drivers/staging/r8188eu/core/rtw_mlme_ext.c:6826:13: error: unused variable ‘res’ [-Werror=unused-variable] 6826 | int res; | ^~~ Please test-build your patches before sending them out :( greg k-h