struct cmd_priv is an element of struct adapter. Use container_of to get a pointer to the enclosing struct. Signed-off-by: Martin Kaiser <martin@xxxxxxxxx> --- drivers/staging/rtl8188eu/core/rtw_cmd.c | 9 +++++---- drivers/staging/rtl8188eu/include/rtw_cmd.h | 1 - drivers/staging/rtl8188eu/os_dep/os_intfs.c | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 955899f334e6..64e83684fb81 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -103,11 +103,12 @@ struct cmd_obj *rtw_dequeue_cmd(struct __queue *queue) static int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) { + struct adapter *padapter = container_of(pcmdpriv, struct adapter, cmdpriv); u8 bAllow = false; /* set to true to allow enqueuing cmd when hw_init_completed is false */ /* To decide allow or not */ - if ((pcmdpriv->padapter->pwrctrlpriv.bHWPwrPindetect) && - (!pcmdpriv->padapter->registrypriv.usbss_enable)) { + if ((padapter->pwrctrlpriv.bHWPwrPindetect) && + (!padapter->registrypriv.usbss_enable)) { if (cmd_obj->cmdcode == _Set_Drv_Extra_CMD_) { struct drvextra_cmd_parm *pdrvextra_cmd_parm = (struct drvextra_cmd_parm *)cmd_obj->parmbuf; @@ -119,7 +120,7 @@ static int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) if (cmd_obj->cmdcode == _SetChannelPlan_CMD_) bAllow = true; - if ((!pcmdpriv->padapter->hw_init_completed && !bAllow) || + if ((!padapter->hw_init_completed && !bAllow) || !pcmdpriv->cmdthd_running) /* com_thread not running */ return _FAIL; return _SUCCESS; @@ -128,7 +129,7 @@ static int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) { int res = _FAIL; - struct adapter *padapter = pcmdpriv->padapter; + struct adapter *padapter = container_of(pcmdpriv, struct adapter, cmdpriv); if (!cmd_obj) goto exit; diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index cb0eb4a1d2b7..0261cd931c35 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -35,7 +35,6 @@ struct cmd_priv { struct completion terminate_cmdthread_comp; struct __queue cmd_queue; u8 cmdthd_running; - struct adapter *padapter; }; #define init_h2fwcmd_w_parm_no_rsp(pcmd, pparm, code) \ diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c b/drivers/staging/rtl8188eu/os_dep/os_intfs.c index 193895338cf0..5207cb0c60cd 100644 --- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c +++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c @@ -423,8 +423,6 @@ u8 rtw_init_drv_sw(struct adapter *padapter) rtw_init_cmd_priv(&padapter->cmdpriv); - padapter->cmdpriv.padapter = padapter; - if (rtw_init_mlme_priv(padapter) == _FAIL) { RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init mlme_priv\n")); ret8 = _FAIL; -- 2.20.1