[PATCH v3 0/4] staging: r8188eu: add error handling of usb read errors

Pavel Skripkin posted 4 patches 3 years, 10 months ago
There is a newer version of this series
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(-)
[PATCH v3 0/4] staging: r8188eu: add error handling of usb read errors
Posted by Pavel Skripkin 3 years, 10 months ago
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@gmail.com/
v2: https://lore.kernel.org/linux-staging/cover.1652994483.git.paskripkin@gmail.com/

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(-)

-- 
2.36.1
Re: [PATCH v3 0/4] staging: r8188eu: add error handling of usb read errors
Posted by Greg KH 3 years, 10 months ago
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@gmail.com/
> v2: https://lore.kernel.org/linux-staging/cover.1652994483.git.paskripkin@gmail.com/
> 
> 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
Re: [PATCH v3 0/4] staging: r8188eu: add error handling of usb read errors
Posted by Pavel Skripkin 3 years, 10 months ago
Hi Greg,

On 6/7/22 14:07, Greg KH wrote:
> 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 :(
> 

Was curious about why my compiler didn't yell at me about that issue, 
since I've done not only build test, but also tested on real hw...

Build failure occurs while applying 1/4, but 3/4 fixes it, that's why I 
missed that build error

Anyway, it's only my bad. Sorry about that, will fix up in next version.




With regards,
Pavel Skripkin