diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c index e965133d94ab..2b1ca1299b96 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c @@ -1990,6 +1990,10 @@ s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntfr pxmitbuf->sctx = &sctx; ret = rtw_hal_mgnt_xmit(padapter, pmgntframe); + if (ret) + ret = _FAIL; + else + ret = _SUCCESS; if (ret == _SUCCESS) ret = rtw_sctx_wait(&sctx); diff --git a/drivers/staging/rtl8723bs/hal/hal_intf.c b/drivers/staging/rtl8723bs/hal/hal_intf.c index 2caade1a8bdd..1443875d1369 100644 --- a/drivers/staging/rtl8723bs/hal/hal_intf.c +++ b/drivers/staging/rtl8723bs/hal/hal_intf.c @@ -115,8 +115,10 @@ s32 rtw_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe) /* * [IMPORTANT] This function would be run in interrupt context. */ -s32 rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe) +int rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe) { + int ret; + update_mgntframe_attrib_addr(padapter, pmgntframe); /* pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; */ /* pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; */ @@ -130,7 +132,10 @@ s32 rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe) pmgntframe->attrib.encrypt = _AES_; pmgntframe->attrib.bswenc = true; } - rtw_mgmt_xmitframe_coalesce(padapter, pmgntframe->pkt, pmgntframe); + ret = rtw_mgmt_xmitframe_coalesce(padapter, pmgntframe->pkt, pmgntframe); + + if (ret) + return ret; } return rtl8723bs_mgnt_xmit(padapter, pmgntframe); diff --git a/drivers/staging/rtl8723bs/include/hal_intf.h b/drivers/staging/rtl8723bs/include/hal_intf.h index a7ae8c006f0c..7b63116525ca 100644 --- a/drivers/staging/rtl8723bs/include/hal_intf.h +++ b/drivers/staging/rtl8723bs/include/hal_intf.h @@ -191,7 +191,7 @@ u8 rtw_hal_check_ips_status(struct adapter *padapter); int rtw_hal_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe); s32 rtw_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe); -s32 rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe); +int rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe); s32 rtw_hal_init_xmit_priv(struct adapter *padapter); void rtw_hal_free_xmit_priv(struct adapter *padapter);