linux/drivers/staging/rtl8712
Nam Cao 1422b526fb staging: rtl8712: fix race condition
In probe function, request_firmware_nowait() is called to load firmware
asynchronously. At completion of firmware loading, register_netdev() is
called. However, a mutex needed by netdev is initialized after the call
to request_firmware_nowait(). Consequently, it can happen that
register_netdev() is called before the driver is ready.

Move the mutex initialization into r8712_init_drv_sw(), which is called
before request_firmware_nowait().

Reported-by: syzbot+b08315e8cf5a78eed03c@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-staging/000000000000d9d4560601b8e0d7@google.com/T/#u
Fixes: 8c213fa591 ("staging: r8712u: Use asynchronous firmware loading")
Cc: stable <stable@kernel.org>
Signed-off-by: Nam Cao <namcaov@gmail.com>
Link: https://lore.kernel.org/r/20230731110620.116562-1-namcaov@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-04 16:20:13 +02:00
..
basic_types.h
drv_types.h staging: rtl8712: Use completions for signaling 2022-04-04 07:33:45 +02:00
ethernet.h
hal_init.c Merge 5.14-rc5 into staging-next 2021-08-09 08:59:23 +02:00
ieee80211.c staging: rtl8712: fix camel case in function r8712_generate_ie 2022-04-07 19:53:06 +02:00
ieee80211.h treewide: Replace 0-element memcpy() destinations with flexible arrays 2021-10-18 12:28:53 -07:00
Kconfig
Makefile
mlme_linux.c
mlme_osdep.h
mp_custom_oid.h
os_intfs.c staging: rtl8712: fix race condition 2023-08-04 16:20:13 +02:00
osdep_intf.h
osdep_service.h exit/rtl8712: Replace the macro thread_exit with a simple return 0 2021-10-29 14:31:34 -05:00
recv_linux.c
recv_osdep.h staging: rtl8712: check for alloc fail in _r8712_init_recv_priv() 2022-10-31 09:08:30 +01:00
rtl871x_cmd.c staging: rtl8712: cmd: remove redundant space after cast 2022-04-14 09:11:48 +02:00
rtl871x_cmd.h staging/rtl8712: remove event_tasklet 2022-04-12 15:53:50 +02:00
rtl871x_debug.h staging: rtl8712: Remove unnecessary alias of printk() 2021-06-09 12:11:21 +02:00
rtl871x_eeprom.c
rtl871x_eeprom.h
rtl871x_event.h
rtl871x_ht.h
rtl871x_io.c
rtl871x_io.h
rtl871x_ioctl_linux.c staging: rtl8712: Remove unnecessary int typecast 2022-04-20 18:40:19 +02:00
rtl871x_ioctl_rtl.c staging: rtl8712: Fix multiple blank lines warning from .c files 2022-04-04 16:34:32 +02:00
rtl871x_ioctl_rtl.h
rtl871x_ioctl_set.c staging: rtl8712: Remove unnecessary parentheses 2022-04-14 09:12:11 +02:00
rtl871x_ioctl_set.h
rtl871x_ioctl.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl871x_led.h staging: rtl8712: get rid of flush_scheduled_work 2021-07-27 15:15:24 +02:00
rtl871x_mlme.c staging: rtl8712: Fix multiple line dereference 2023-03-08 17:00:53 +01:00
rtl871x_mlme.h
rtl871x_mp_ioctl.c
rtl871x_mp_ioctl.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl871x_mp_phy_regdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl871x_mp.c
rtl871x_mp.h
rtl871x_pwrctrl.c staging: rtl8712: get rid of flush_scheduled_work 2021-07-27 15:15:24 +02:00
rtl871x_pwrctrl.h staging: rtl8712: get rid of flush_scheduled_work 2021-07-27 15:15:24 +02:00
rtl871x_recv.c staging: rtl8712: check for alloc fail in _r8712_init_recv_priv() 2022-10-31 09:08:30 +01:00
rtl871x_recv.h staging: rtl8712: Drop get_recvframe_data() 2022-01-25 16:21:36 +01:00
rtl871x_rf.h
rtl871x_security.c staging: rtl8712: Fix multiple blank lines warning from .c files 2022-04-04 16:34:32 +02:00
rtl871x_security.h
rtl871x_sta_mgt.c
rtl871x_wlan_sme.h
rtl871x_xmit.c staging: r8712: Fix memory leak in _r8712_init_xmit_priv() 2023-07-27 09:50:57 +02:00
rtl871x_xmit.h staging: rtl8712: Statements should start on a tabstop 2021-10-05 12:32:42 +02:00
rtl8712_bitdef.h
rtl8712_cmd.c staging: rtl8712: fix use after free bugs 2022-08-30 17:15:16 +02:00
rtl8712_cmd.h
rtl8712_cmdctrl_bitdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_cmdctrl_regdef.h
rtl8712_debugctrl_bitdef.h
rtl8712_debugctrl_regdef.h
rtl8712_edcasetting_bitdef.h
rtl8712_edcasetting_regdef.h
rtl8712_efuse.c staging: rtl8712: Fix alignment checks with flipped condition 2021-12-09 08:57:22 +01:00
rtl8712_efuse.h staging: rtl8172: Add blank lines after declarations 2023-04-15 18:04:36 +02:00
rtl8712_event.h
rtl8712_fifoctrl_bitdef.h
rtl8712_fifoctrl_regdef.h
rtl8712_gp_bitdef.h
rtl8712_gp_regdef.h
rtl8712_hal.h
rtl8712_interrupt_bitdef.h
rtl8712_io.c
rtl8712_led.c staging: rtl8712: get rid of flush_scheduled_work 2021-07-27 15:15:24 +02:00
rtl8712_macsetting_bitdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_macsetting_regdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_powersave_bitdef.h
rtl8712_powersave_regdef.h
rtl8712_ratectrl_bitdef.h
rtl8712_ratectrl_regdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_recv.c staging: rtl8712: check for alloc fail in _r8712_init_recv_priv() 2022-10-31 09:08:30 +01:00
rtl8712_recv.h
rtl8712_regdef.h
rtl8712_security_bitdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_spec.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_syscfg_bitdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_syscfg_regdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_timectrl_bitdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_timectrl_regdef.h
rtl8712_wmac_bitdef.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
rtl8712_wmac_regdef.h
rtl8712_xmit.c staging: rtl8712: Remove variable xcnt 2022-10-22 09:58:35 +02:00
rtl8712_xmit.h
sta_info.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
TODO
usb_halinit.c
usb_intf.c staging: rtl8712: fix race condition 2023-08-04 16:20:13 +02:00
usb_ops_linux.c staging: rtl8712: add error handler in r8712_usbctrl_vendorreq() 2022-05-19 17:44:25 +02:00
usb_ops.c staging: rtl8712: fix uninit-value in usb_read8() and friends 2022-05-19 17:44:25 +02:00
usb_ops.h
usb_osintf.h
wifi.h staging: rtl8712: Fix multiple blank lines warning from .h files 2022-04-04 16:34:31 +02:00
wlan_bssdef.h
xmit_linux.c staging: r8712: Fix memory leak in _r8712_init_xmit_priv() 2023-07-27 09:50:57 +02:00
xmit_osdep.h staging: rtl8712: Fix return type for implementation of ndo_start_xmit 2022-09-09 09:55:24 +02:00