Commit d3f3fb98 authored by Martin Kaiser's avatar Martin Kaiser Committed by Greg Kroah-Hartman
Browse files

staging: rtl8188eu: refactor rtw_lps_ctrl_wk_cmd



Allocate memory only if we're asked to enqueue the command for later
processing. Handle memory allocation failures in one place.

There's no need to "goto exit" if we're not doing any cleanup there.

kzalloc already set all of pdrvextra_cmd_parm to 0. We don't have
to set pdrvextra_cmd_parm->pbuf = NULL manually.

Signed-off-by: default avatarMartin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210605165858.3175-3-martin@kaiser.cx


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b17aad8b
Loading
Loading
Loading
Loading
+16 −27
Original line number Diff line number Diff line
@@ -870,39 +870,28 @@ static void lps_ctrl_wk_hdl(struct adapter *padapter, u8 lps_ctrl_type)

u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue)
{
	struct cmd_obj	*ph2c;
	struct drvextra_cmd_parm	*pdrvextra_cmd_parm;
	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
	u8	res = _SUCCESS;
	struct drvextra_cmd_parm *pdrvextra_cmd_parm;
	struct cmd_obj	*ph2c;

	if (enqueue) {
		ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
		if (!ph2c) {
			res = _FAIL;
			goto exit;
	if (!enqueue) {
		lps_ctrl_wk_hdl(padapter, lps_ctrl_type);
		return _SUCCESS;
	}

	ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
	pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
		if (!pdrvextra_cmd_parm) {
	if (!ph2c || !pdrvextra_cmd_parm) {
		kfree(ph2c);
			res = _FAIL;
			goto exit;
		kfree(pdrvextra_cmd_parm);
		return _FAIL;
	}

	pdrvextra_cmd_parm->ec_id = LPS_CTRL_WK_CID;
	pdrvextra_cmd_parm->type_size = lps_ctrl_type;
		pdrvextra_cmd_parm->pbuf = NULL;

	init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_);

		res = rtw_enqueue_cmd(pcmdpriv, ph2c);
	} else {
		lps_ctrl_wk_hdl(padapter, lps_ctrl_type);
	}

exit:

	return res;
	return rtw_enqueue_cmd(pcmdpriv, ph2c);
}

static void rpt_timer_setting_wk_hdl(struct adapter *padapter, u16 min_time)