linux-stable/drivers/staging/rtl8712
Xiaoke Wang 205e039fea staging: rtl8712: fix a potential memory leak in r871xu_drv_init()
[ Upstream commit 7288ff561d ]

In r871xu_drv_init(), if r8712_init_drv_sw() fails, then the memory
allocated by r8712_alloc_io_queue() in r8712_usb_dvobj_init() is not
properly released as there is no action will be performed by
r8712_usb_dvobj_deinit().
To properly release it, we should call r8712_free_io_queue() in
r8712_usb_dvobj_deinit().

Besides, in r871xu_dev_remove(), r8712_usb_dvobj_deinit() will be called
by r871x_dev_unload() under condition `padapter->bup` and
r8712_free_io_queue() is called by r8712_free_drv_sw().
However, r8712_usb_dvobj_deinit() does not rely on `padapter->bup` and
calling r8712_free_io_queue() in r8712_free_drv_sw() is negative for
better understading the code.
So I move r8712_usb_dvobj_deinit() into r871xu_dev_remove(), and remove
r8712_free_io_queue() from r8712_free_drv_sw().

Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
Link: https://lore.kernel.org/r/tencent_B8048C592777830380A23A7C4409F9DF1305@qq.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-06-14 18:41:33 +02:00
..
Kconfig staging: rtl8712: switch to common ieee80211 headers 2020-06-16 21:26:18 +02:00
Makefile
TODO
basic_types.h staging: rtl8712: base_types: Remove unused macros 2020-07-03 10:32:13 +02:00
drv_types.h drivers: staging: rtl8712: _adapter is declared twice 2021-03-26 14:59:33 +01: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: Use constants from <linux/ieee80211.h> 2021-04-07 10:19:12 +02:00
ieee80211.h treewide: Replace 0-element memcpy() destinations with flexible arrays 2021-10-18 12:28:53 -07:00
mlme_linux.c
mlme_osdep.h drivers: staging: rtl8712: align arguments with open parenthesis 2021-04-06 14:15:56 +02:00
mp_custom_oid.h
os_intfs.c staging: rtl8712: fix a potential memory leak in r871xu_drv_init() 2022-06-14 18:41:33 +02:00
osdep_intf.h staging: rtl8712: Simplify expressions with boolean logic 2020-07-10 13:53:59 +02:00
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
rtl871x_cmd.c staging: rtl8712: prepare for const netdev->dev_addr 2021-10-20 19:33:58 +02:00
rtl871x_cmd.h staging: rtl8712: prepare for const netdev->dev_addr 2021-10-20 19:33:58 +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 staging: rtl8712: add blank lines after declarations 2021-04-05 12:12:26 +02:00
rtl871x_ht.h staging: rtl8712: remove struct rtl_ieee80211_ht_cap and ieee80211_ht_addt_info 2021-04-09 16:14:33 +02:00
rtl871x_io.c staging: rtl8712: clean up comparsions to NULL 2020-09-22 09:49:59 +02:00
rtl871x_io.h staging: rtl8712: Remove extra blank lines 2021-04-06 14:16:20 +02:00
rtl871x_ioctl.h
rtl871x_ioctl_linux.c staging: rtl8712: remove struct rtl_ieee80211_ht_cap and ieee80211_ht_addt_info 2021-04-09 16:14:33 +02:00
rtl871x_ioctl_rtl.c
rtl871x_ioctl_rtl.h
rtl871x_ioctl_set.c
rtl871x_ioctl_set.h
rtl871x_led.h staging: rtl8712: get rid of flush_scheduled_work 2021-07-27 15:15:24 +02:00
rtl871x_mlme.c staging: rtl8712: Use list iterators and helpers 2021-05-10 11:19:33 +02:00
rtl871x_mlme.h staging: rtl8712: Remove extra blank lines 2021-04-06 14:16:20 +02:00
rtl871x_mp.c staging: rtl8712: add blank lines after declarations 2021-04-05 12:12:26 +02:00
rtl871x_mp.h staging: rtl8712: add blank lines after declarations 2021-04-05 12:12:26 +02:00
rtl871x_mp_ioctl.c staging: rtl8712: fix the bssid in mp_start_test() 2021-05-19 16:02:51 +02:00
rtl871x_mp_ioctl.h staging: rtl8712: rtl871x_mp_ioctl: Remove a bunch of unused tables 2021-05-10 11:19:23 +02:00
rtl871x_mp_phy_regdef.h staging: rtl8712: Correct a typo in a comment 2020-03-19 15:09:10 +01:00
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: Fix some tests against some 'data' subtype frames 2021-05-10 11:19:34 +02:00
rtl871x_recv.h staging: rtl8712: Remove extra blank lines 2021-04-06 14:16:20 +02:00
rtl871x_rf.h
rtl871x_security.c staging: rtl8712: Fix some tests against some 'data' subtype frames 2021-05-10 11:19:34 +02:00
rtl871x_security.h staging: rtl8712: add spaces around operators 2021-04-06 14:15:39 +02:00
rtl871x_sta_mgt.c staging: rtl8712: Removed unnecessary blank lines 2021-05-25 18:23:26 +02:00
rtl871x_wlan_sme.h
rtl871x_xmit.c staging: rtl8712: Removed unnecessary blank lines 2021-05-25 18:23:26 +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 exit/rtl8712: Replace the macro thread_exit with a simple return 0 2021-10-29 14:31:34 -05:00
rtl8712_cmd.h
rtl8712_cmdctrl_bitdef.h
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
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
rtl8712_macsetting_regdef.h
rtl8712_powersave_bitdef.h
rtl8712_powersave_regdef.h
rtl8712_ratectrl_bitdef.h
rtl8712_ratectrl_regdef.h
rtl8712_recv.c staging: rtl8712: remove multiple multiple assignments 2021-05-10 11:19:34 +02:00
rtl8712_recv.h staging: rtl8712: remove extra blank lines 2021-04-05 12:12:26 +02:00
rtl8712_regdef.h
rtl8712_security_bitdef.h
rtl8712_spec.h
rtl8712_syscfg_bitdef.h
rtl8712_syscfg_regdef.h
rtl8712_timectrl_bitdef.h
rtl8712_timectrl_regdef.h
rtl8712_wmac_bitdef.h
rtl8712_wmac_regdef.h staging: rtl8712: removed extra blank line 2021-04-08 09:27:59 +02:00
rtl8712_xmit.c Staging: rtl8712: Cleanup coding style warning 2021-06-03 15:57:37 +02:00
rtl8712_xmit.h staging: rtl8712: fixed whitespace coding style issue 2021-03-12 17:31:01 +01:00
sta_info.h staging: rtl8712: Remove extra blank lines 2021-04-06 14:16:20 +02:00
usb_halinit.c staging: rtl8712: correct spelling mistake in comment 2020-04-16 12:33:03 +02:00
usb_intf.c staging: rtl8712: fix a potential memory leak in r871xu_drv_init() 2022-06-14 18:41:33 +02:00
usb_ops.c
usb_ops.h staging: rtl8712: matched alignment with open parenthesis 2021-04-08 09:27:58 +02:00
usb_ops_linux.c staging: r8712u: fix control-message timeout 2021-10-26 18:44:38 +02:00
usb_osintf.h
wifi.h staging: rtl8712: Remove some unused #define and enum 2021-07-21 11:01:54 +02:00
wlan_bssdef.h staging: rtl8712: add spaces around '+' 2021-04-09 16:11:23 +02:00
xmit_linux.c staging: rtl8712: Removed unnecessary blank lines 2021-05-25 18:23:26 +02:00
xmit_osdep.h staging: rtl8712: match parentheses alignment 2021-04-06 14:15:40 +02:00