All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "F.A.Sulaiman" <asha.16@itfac.mrt.ac.lk>,
	gregkh@linuxfoundation.org, fabioaiuto83@gmail.com,
	marcocesati@gmail.com, dan.carpenter@oracle.com,
	hdegoede@redhat.com
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	"F.A.Sulaiman" <asha.16@itfac.mrt.ac.lk>,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] rtl8723bs: fix memory leak error
Date: Fri, 7 Jan 2022 05:00:58 +0800	[thread overview]
Message-ID: <202201070423.WeoyORXE-lkp@intel.com> (raw)
In-Reply-To: <20220105123447.24674-1-asha.16@itfac.mrt.ac.lk>

Hi "F.A.Sulaiman",

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v5.16-rc8 next-20220106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/F-A-Sulaiman/rtl8723bs-fix-memory-leak-error/20220105-203752
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 0640d18b15d86ab76275e63f36f5841db5f52e74
config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20220107/202201070423.WeoyORXE-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/1a1faafe5fcac0069aad1036ce1757e87ba847d3
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review F-A-Sulaiman/rtl8723bs-fix-memory-leak-error/20220105-203752
        git checkout 1a1faafe5fcac0069aad1036ce1757e87ba847d3
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/mmc/host/ drivers/staging/rtl8723bs/ fs/xfs/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c:421:1: warning: unused label 'release_fw1' [-Wunused-label]
   release_fw1:
   ^~~~~~~~~~~~
   drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c:957:5: warning: variable 'hoffset' set but not used [-Wunused-but-set-variable]
           u8 hoffset = 0, hworden = 0;
              ^
   drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c:1050:5: warning: variable 'hoffset' set but not used [-Wunused-but-set-variable]
           u8 hoffset = 0, hworden = 0;
              ^
   3 warnings generated.


vim +/release_fw1 +421 drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c

554c0a3abf216c Hans de Goede  2017-03-29  286  
554c0a3abf216c Hans de Goede  2017-03-29  287  /*  */
554c0a3abf216c Hans de Goede  2017-03-29  288  /* 	Description: */
554c0a3abf216c Hans de Goede  2017-03-29  289  /* 		Download 8192C firmware code. */
554c0a3abf216c Hans de Goede  2017-03-29  290  /*  */
554c0a3abf216c Hans de Goede  2017-03-29  291  /*  */
554c0a3abf216c Hans de Goede  2017-03-29  292  s32 rtl8723b_FirmwareDownload(struct adapter *padapter, bool  bUsedWoWLANFw)
554c0a3abf216c Hans de Goede  2017-03-29  293  {
554c0a3abf216c Hans de Goede  2017-03-29  294  	s32 rtStatus = _SUCCESS;
554c0a3abf216c Hans de Goede  2017-03-29  295  	u8 write_fw = 0;
554c0a3abf216c Hans de Goede  2017-03-29  296  	unsigned long fwdl_start_time;
554c0a3abf216c Hans de Goede  2017-03-29  297  	struct hal_com_data *pHalData = GET_HAL_DATA(padapter);
554c0a3abf216c Hans de Goede  2017-03-29  298  	struct rt_firmware *pFirmware;
554c0a3abf216c Hans de Goede  2017-03-29  299  	struct rt_firmware *pBTFirmware;
554c0a3abf216c Hans de Goede  2017-03-29  300  	struct rt_firmware_hdr *pFwHdr = NULL;
554c0a3abf216c Hans de Goede  2017-03-29  301  	u8 *pFirmwareBuf;
554c0a3abf216c Hans de Goede  2017-03-29  302  	u32 FirmwareLen;
554c0a3abf216c Hans de Goede  2017-03-29  303  	const struct firmware *fw;
554c0a3abf216c Hans de Goede  2017-03-29  304  	struct device *device = dvobj_to_dev(padapter->dvobj);
554c0a3abf216c Hans de Goede  2017-03-29  305  	u8 *fwfilepath;
554c0a3abf216c Hans de Goede  2017-03-29  306  	struct dvobj_priv *psdpriv = padapter->dvobj;
554c0a3abf216c Hans de Goede  2017-03-29  307  	struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
554c0a3abf216c Hans de Goede  2017-03-29  308  	u8 tmp_ps;
554c0a3abf216c Hans de Goede  2017-03-29  309  
554c0a3abf216c Hans de Goede  2017-03-29  310  	pFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
7e2b0aaec63351 Larry Finger   2017-04-08  311  	if (!pFirmware)
7e2b0aaec63351 Larry Finger   2017-04-08  312  		return _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  313  	pBTFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
7e2b0aaec63351 Larry Finger   2017-04-08  314  	if (!pBTFirmware) {
7e2b0aaec63351 Larry Finger   2017-04-08  315  		kfree(pFirmware);
7e2b0aaec63351 Larry Finger   2017-04-08  316  		return _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  317  	}
554c0a3abf216c Hans de Goede  2017-03-29  318  	tmp_ps = rtw_read8(padapter, 0xa3);
554c0a3abf216c Hans de Goede  2017-03-29  319  	tmp_ps &= 0xf8;
554c0a3abf216c Hans de Goede  2017-03-29  320  	tmp_ps |= 0x02;
554c0a3abf216c Hans de Goede  2017-03-29  321  	/* 1. write 0xA3[:2:0] = 3b'010 */
554c0a3abf216c Hans de Goede  2017-03-29  322  	rtw_write8(padapter, 0xa3, tmp_ps);
554c0a3abf216c Hans de Goede  2017-03-29  323  	/* 2. read power_state = 0xA0[1:0] */
554c0a3abf216c Hans de Goede  2017-03-29  324  	tmp_ps = rtw_read8(padapter, 0xa0);
554c0a3abf216c Hans de Goede  2017-03-29  325  	tmp_ps &= 0x03;
709c8e49b51c37 Fabio Aiuto    2021-04-07  326  	if (tmp_ps != 0x01)
554c0a3abf216c Hans de Goede  2017-03-29  327  		pdbgpriv->dbg_downloadfw_pwr_state_cnt++;
554c0a3abf216c Hans de Goede  2017-03-29  328  
554c0a3abf216c Hans de Goede  2017-03-29  329  	fwfilepath = "rtlwifi/rtl8723bs_nic.bin";
554c0a3abf216c Hans de Goede  2017-03-29  330  
b388285205609c Colin Ian King 2017-04-11  331  	pr_info("rtl8723bs: acquire FW from file:%s\n", fwfilepath);
554c0a3abf216c Hans de Goede  2017-03-29  332  
554c0a3abf216c Hans de Goede  2017-03-29  333  	rtStatus = request_firmware(&fw, fwfilepath, device);
554c0a3abf216c Hans de Goede  2017-03-29  334  	if (rtStatus) {
554c0a3abf216c Hans de Goede  2017-03-29  335  		pr_err("Request firmware failed with error 0x%x\n", rtStatus);
554c0a3abf216c Hans de Goede  2017-03-29  336  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  337  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  338  	}
554c0a3abf216c Hans de Goede  2017-03-29  339  
554c0a3abf216c Hans de Goede  2017-03-29  340  	if (!fw) {
554c0a3abf216c Hans de Goede  2017-03-29  341  		pr_err("Firmware %s not available\n", fwfilepath);
554c0a3abf216c Hans de Goede  2017-03-29  342  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  343  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  344  	}
554c0a3abf216c Hans de Goede  2017-03-29  345  
554c0a3abf216c Hans de Goede  2017-03-29  346  	if (fw->size > FW_8723B_SIZE) {
554c0a3abf216c Hans de Goede  2017-03-29  347  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  348  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  349  	}
554c0a3abf216c Hans de Goede  2017-03-29  350  
93998817a169c0 Quytelda Kahja 2018-05-22  351  	pFirmware->fw_buffer_sz = kmemdup(fw->data, fw->size, GFP_KERNEL);
93998817a169c0 Quytelda Kahja 2018-05-22  352  	if (!pFirmware->fw_buffer_sz) {
554c0a3abf216c Hans de Goede  2017-03-29  353  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  354  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  355  	}
554c0a3abf216c Hans de Goede  2017-03-29  356  
93998817a169c0 Quytelda Kahja 2018-05-22  357  	pFirmware->fw_length = fw->size;
554c0a3abf216c Hans de Goede  2017-03-29  358  	release_firmware(fw);
93998817a169c0 Quytelda Kahja 2018-05-22  359  	if (pFirmware->fw_length > FW_8723B_SIZE) {
554c0a3abf216c Hans de Goede  2017-03-29  360  		rtStatus = _FAIL;
79df841b435018 Fabio Aiuto    2021-04-15  361  		netdev_emerg(padapter->pnetdev,
79df841b435018 Fabio Aiuto    2021-04-15  362  			     "Firmware size:%u exceed %u\n",
79df841b435018 Fabio Aiuto    2021-04-15  363  			     pFirmware->fw_length, FW_8723B_SIZE);
1a1faafe5fcac0 F.A.Sulaiman   2022-01-05  364  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  365  	}
554c0a3abf216c Hans de Goede  2017-03-29  366  
93998817a169c0 Quytelda Kahja 2018-05-22  367  	pFirmwareBuf = pFirmware->fw_buffer_sz;
93998817a169c0 Quytelda Kahja 2018-05-22  368  	FirmwareLen = pFirmware->fw_length;
554c0a3abf216c Hans de Goede  2017-03-29  369  
554c0a3abf216c Hans de Goede  2017-03-29  370  	/*  To Check Fw header. Added by tynli. 2009.12.04. */
554c0a3abf216c Hans de Goede  2017-03-29  371  	pFwHdr = (struct rt_firmware_hdr *)pFirmwareBuf;
554c0a3abf216c Hans de Goede  2017-03-29  372  
699ad73456d6c9 Quytelda Kahja 2018-05-22  373  	pHalData->FirmwareVersion =  le16_to_cpu(pFwHdr->version);
699ad73456d6c9 Quytelda Kahja 2018-05-22  374  	pHalData->FirmwareSubVersion = le16_to_cpu(pFwHdr->subversion);
699ad73456d6c9 Quytelda Kahja 2018-05-22  375  	pHalData->FirmwareSignature = le16_to_cpu(pFwHdr->signature);
554c0a3abf216c Hans de Goede  2017-03-29  376  
554c0a3abf216c Hans de Goede  2017-03-29  377  	if (IS_FW_HEADER_EXIST_8723B(pFwHdr)) {
554c0a3abf216c Hans de Goede  2017-03-29  378  		/*  Shift 32 bytes for FW header */
554c0a3abf216c Hans de Goede  2017-03-29  379  		pFirmwareBuf = pFirmwareBuf + 32;
554c0a3abf216c Hans de Goede  2017-03-29  380  		FirmwareLen = FirmwareLen - 32;
554c0a3abf216c Hans de Goede  2017-03-29  381  	}
554c0a3abf216c Hans de Goede  2017-03-29  382  
554c0a3abf216c Hans de Goede  2017-03-29  383  	/*  Suggested by Filen. If 8051 is running in RAM code, driver should inform Fw to reset by itself, */
554c0a3abf216c Hans de Goede  2017-03-29  384  	/*  or it will cause download Fw fail. 2010.02.01. by tynli. */
554c0a3abf216c Hans de Goede  2017-03-29  385  	if (rtw_read8(padapter, REG_MCUFWDL) & RAM_DL_SEL) { /* 8051 RAM code */
554c0a3abf216c Hans de Goede  2017-03-29  386  		rtw_write8(padapter, REG_MCUFWDL, 0x00);
554c0a3abf216c Hans de Goede  2017-03-29  387  		rtl8723b_FirmwareSelfReset(padapter);
554c0a3abf216c Hans de Goede  2017-03-29  388  	}
554c0a3abf216c Hans de Goede  2017-03-29  389  
554c0a3abf216c Hans de Goede  2017-03-29  390  	_FWDownloadEnable(padapter, true);
554c0a3abf216c Hans de Goede  2017-03-29  391  	fwdl_start_time = jiffies;
554c0a3abf216c Hans de Goede  2017-03-29  392  	while (
554c0a3abf216c Hans de Goede  2017-03-29  393  		!padapter->bDriverStopped &&
554c0a3abf216c Hans de Goede  2017-03-29  394  		!padapter->bSurpriseRemoved &&
554c0a3abf216c Hans de Goede  2017-03-29  395  		(write_fw++ < 3 || jiffies_to_msecs(jiffies - fwdl_start_time) < 500)
554c0a3abf216c Hans de Goede  2017-03-29  396  	) {
554c0a3abf216c Hans de Goede  2017-03-29  397  		/* reset FWDL chksum */
554c0a3abf216c Hans de Goede  2017-03-29  398  		rtw_write8(padapter, REG_MCUFWDL, rtw_read8(padapter, REG_MCUFWDL)|FWDL_ChkSum_rpt);
554c0a3abf216c Hans de Goede  2017-03-29  399  
554c0a3abf216c Hans de Goede  2017-03-29  400  		rtStatus = _WriteFW(padapter, pFirmwareBuf, FirmwareLen);
554c0a3abf216c Hans de Goede  2017-03-29  401  		if (rtStatus != _SUCCESS)
554c0a3abf216c Hans de Goede  2017-03-29  402  			continue;
554c0a3abf216c Hans de Goede  2017-03-29  403  
554c0a3abf216c Hans de Goede  2017-03-29  404  		rtStatus = polling_fwdl_chksum(padapter, 5, 50);
554c0a3abf216c Hans de Goede  2017-03-29  405  		if (rtStatus == _SUCCESS)
554c0a3abf216c Hans de Goede  2017-03-29  406  			break;
554c0a3abf216c Hans de Goede  2017-03-29  407  	}
554c0a3abf216c Hans de Goede  2017-03-29  408  	_FWDownloadEnable(padapter, false);
554c0a3abf216c Hans de Goede  2017-03-29  409  	if (_SUCCESS != rtStatus)
554c0a3abf216c Hans de Goede  2017-03-29  410  		goto fwdl_stat;
554c0a3abf216c Hans de Goede  2017-03-29  411  
554c0a3abf216c Hans de Goede  2017-03-29  412  	rtStatus = _FWFreeToGo(padapter, 10, 200);
554c0a3abf216c Hans de Goede  2017-03-29  413  	if (_SUCCESS != rtStatus)
554c0a3abf216c Hans de Goede  2017-03-29  414  		goto fwdl_stat;
554c0a3abf216c Hans de Goede  2017-03-29  415  
554c0a3abf216c Hans de Goede  2017-03-29  416  fwdl_stat:
554c0a3abf216c Hans de Goede  2017-03-29  417  
554c0a3abf216c Hans de Goede  2017-03-29  418  exit:
93998817a169c0 Quytelda Kahja 2018-05-22  419  	kfree(pFirmware->fw_buffer_sz);
554c0a3abf216c Hans de Goede  2017-03-29  420  	kfree(pFirmware);
7e2b0aaec63351 Larry Finger   2017-04-08 @421  release_fw1:
554c0a3abf216c Hans de Goede  2017-03-29  422  	kfree(pBTFirmware);
554c0a3abf216c Hans de Goede  2017-03-29  423  	return rtStatus;
554c0a3abf216c Hans de Goede  2017-03-29  424  }
554c0a3abf216c Hans de Goede  2017-03-29  425  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2] rtl8723bs: fix memory leak error
Date: Fri, 07 Jan 2022 05:00:58 +0800	[thread overview]
Message-ID: <202201070423.WeoyORXE-lkp@intel.com> (raw)
In-Reply-To: <20220105123447.24674-1-asha.16@itfac.mrt.ac.lk>

[-- Attachment #1: Type: text/plain, Size: 12923 bytes --]

Hi "F.A.Sulaiman",

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v5.16-rc8 next-20220106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/F-A-Sulaiman/rtl8723bs-fix-memory-leak-error/20220105-203752
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 0640d18b15d86ab76275e63f36f5841db5f52e74
config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20220107/202201070423.WeoyORXE-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/1a1faafe5fcac0069aad1036ce1757e87ba847d3
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review F-A-Sulaiman/rtl8723bs-fix-memory-leak-error/20220105-203752
        git checkout 1a1faafe5fcac0069aad1036ce1757e87ba847d3
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/mmc/host/ drivers/staging/rtl8723bs/ fs/xfs/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c:421:1: warning: unused label 'release_fw1' [-Wunused-label]
   release_fw1:
   ^~~~~~~~~~~~
   drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c:957:5: warning: variable 'hoffset' set but not used [-Wunused-but-set-variable]
           u8 hoffset = 0, hworden = 0;
              ^
   drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c:1050:5: warning: variable 'hoffset' set but not used [-Wunused-but-set-variable]
           u8 hoffset = 0, hworden = 0;
              ^
   3 warnings generated.


vim +/release_fw1 +421 drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c

554c0a3abf216c Hans de Goede  2017-03-29  286  
554c0a3abf216c Hans de Goede  2017-03-29  287  /*  */
554c0a3abf216c Hans de Goede  2017-03-29  288  /* 	Description: */
554c0a3abf216c Hans de Goede  2017-03-29  289  /* 		Download 8192C firmware code. */
554c0a3abf216c Hans de Goede  2017-03-29  290  /*  */
554c0a3abf216c Hans de Goede  2017-03-29  291  /*  */
554c0a3abf216c Hans de Goede  2017-03-29  292  s32 rtl8723b_FirmwareDownload(struct adapter *padapter, bool  bUsedWoWLANFw)
554c0a3abf216c Hans de Goede  2017-03-29  293  {
554c0a3abf216c Hans de Goede  2017-03-29  294  	s32 rtStatus = _SUCCESS;
554c0a3abf216c Hans de Goede  2017-03-29  295  	u8 write_fw = 0;
554c0a3abf216c Hans de Goede  2017-03-29  296  	unsigned long fwdl_start_time;
554c0a3abf216c Hans de Goede  2017-03-29  297  	struct hal_com_data *pHalData = GET_HAL_DATA(padapter);
554c0a3abf216c Hans de Goede  2017-03-29  298  	struct rt_firmware *pFirmware;
554c0a3abf216c Hans de Goede  2017-03-29  299  	struct rt_firmware *pBTFirmware;
554c0a3abf216c Hans de Goede  2017-03-29  300  	struct rt_firmware_hdr *pFwHdr = NULL;
554c0a3abf216c Hans de Goede  2017-03-29  301  	u8 *pFirmwareBuf;
554c0a3abf216c Hans de Goede  2017-03-29  302  	u32 FirmwareLen;
554c0a3abf216c Hans de Goede  2017-03-29  303  	const struct firmware *fw;
554c0a3abf216c Hans de Goede  2017-03-29  304  	struct device *device = dvobj_to_dev(padapter->dvobj);
554c0a3abf216c Hans de Goede  2017-03-29  305  	u8 *fwfilepath;
554c0a3abf216c Hans de Goede  2017-03-29  306  	struct dvobj_priv *psdpriv = padapter->dvobj;
554c0a3abf216c Hans de Goede  2017-03-29  307  	struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
554c0a3abf216c Hans de Goede  2017-03-29  308  	u8 tmp_ps;
554c0a3abf216c Hans de Goede  2017-03-29  309  
554c0a3abf216c Hans de Goede  2017-03-29  310  	pFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
7e2b0aaec63351 Larry Finger   2017-04-08  311  	if (!pFirmware)
7e2b0aaec63351 Larry Finger   2017-04-08  312  		return _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  313  	pBTFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
7e2b0aaec63351 Larry Finger   2017-04-08  314  	if (!pBTFirmware) {
7e2b0aaec63351 Larry Finger   2017-04-08  315  		kfree(pFirmware);
7e2b0aaec63351 Larry Finger   2017-04-08  316  		return _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  317  	}
554c0a3abf216c Hans de Goede  2017-03-29  318  	tmp_ps = rtw_read8(padapter, 0xa3);
554c0a3abf216c Hans de Goede  2017-03-29  319  	tmp_ps &= 0xf8;
554c0a3abf216c Hans de Goede  2017-03-29  320  	tmp_ps |= 0x02;
554c0a3abf216c Hans de Goede  2017-03-29  321  	/* 1. write 0xA3[:2:0] = 3b'010 */
554c0a3abf216c Hans de Goede  2017-03-29  322  	rtw_write8(padapter, 0xa3, tmp_ps);
554c0a3abf216c Hans de Goede  2017-03-29  323  	/* 2. read power_state = 0xA0[1:0] */
554c0a3abf216c Hans de Goede  2017-03-29  324  	tmp_ps = rtw_read8(padapter, 0xa0);
554c0a3abf216c Hans de Goede  2017-03-29  325  	tmp_ps &= 0x03;
709c8e49b51c37 Fabio Aiuto    2021-04-07  326  	if (tmp_ps != 0x01)
554c0a3abf216c Hans de Goede  2017-03-29  327  		pdbgpriv->dbg_downloadfw_pwr_state_cnt++;
554c0a3abf216c Hans de Goede  2017-03-29  328  
554c0a3abf216c Hans de Goede  2017-03-29  329  	fwfilepath = "rtlwifi/rtl8723bs_nic.bin";
554c0a3abf216c Hans de Goede  2017-03-29  330  
b388285205609c Colin Ian King 2017-04-11  331  	pr_info("rtl8723bs: acquire FW from file:%s\n", fwfilepath);
554c0a3abf216c Hans de Goede  2017-03-29  332  
554c0a3abf216c Hans de Goede  2017-03-29  333  	rtStatus = request_firmware(&fw, fwfilepath, device);
554c0a3abf216c Hans de Goede  2017-03-29  334  	if (rtStatus) {
554c0a3abf216c Hans de Goede  2017-03-29  335  		pr_err("Request firmware failed with error 0x%x\n", rtStatus);
554c0a3abf216c Hans de Goede  2017-03-29  336  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  337  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  338  	}
554c0a3abf216c Hans de Goede  2017-03-29  339  
554c0a3abf216c Hans de Goede  2017-03-29  340  	if (!fw) {
554c0a3abf216c Hans de Goede  2017-03-29  341  		pr_err("Firmware %s not available\n", fwfilepath);
554c0a3abf216c Hans de Goede  2017-03-29  342  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  343  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  344  	}
554c0a3abf216c Hans de Goede  2017-03-29  345  
554c0a3abf216c Hans de Goede  2017-03-29  346  	if (fw->size > FW_8723B_SIZE) {
554c0a3abf216c Hans de Goede  2017-03-29  347  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  348  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  349  	}
554c0a3abf216c Hans de Goede  2017-03-29  350  
93998817a169c0 Quytelda Kahja 2018-05-22  351  	pFirmware->fw_buffer_sz = kmemdup(fw->data, fw->size, GFP_KERNEL);
93998817a169c0 Quytelda Kahja 2018-05-22  352  	if (!pFirmware->fw_buffer_sz) {
554c0a3abf216c Hans de Goede  2017-03-29  353  		rtStatus = _FAIL;
554c0a3abf216c Hans de Goede  2017-03-29  354  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  355  	}
554c0a3abf216c Hans de Goede  2017-03-29  356  
93998817a169c0 Quytelda Kahja 2018-05-22  357  	pFirmware->fw_length = fw->size;
554c0a3abf216c Hans de Goede  2017-03-29  358  	release_firmware(fw);
93998817a169c0 Quytelda Kahja 2018-05-22  359  	if (pFirmware->fw_length > FW_8723B_SIZE) {
554c0a3abf216c Hans de Goede  2017-03-29  360  		rtStatus = _FAIL;
79df841b435018 Fabio Aiuto    2021-04-15  361  		netdev_emerg(padapter->pnetdev,
79df841b435018 Fabio Aiuto    2021-04-15  362  			     "Firmware size:%u exceed %u\n",
79df841b435018 Fabio Aiuto    2021-04-15  363  			     pFirmware->fw_length, FW_8723B_SIZE);
1a1faafe5fcac0 F.A.Sulaiman   2022-01-05  364  		goto exit;
554c0a3abf216c Hans de Goede  2017-03-29  365  	}
554c0a3abf216c Hans de Goede  2017-03-29  366  
93998817a169c0 Quytelda Kahja 2018-05-22  367  	pFirmwareBuf = pFirmware->fw_buffer_sz;
93998817a169c0 Quytelda Kahja 2018-05-22  368  	FirmwareLen = pFirmware->fw_length;
554c0a3abf216c Hans de Goede  2017-03-29  369  
554c0a3abf216c Hans de Goede  2017-03-29  370  	/*  To Check Fw header. Added by tynli. 2009.12.04. */
554c0a3abf216c Hans de Goede  2017-03-29  371  	pFwHdr = (struct rt_firmware_hdr *)pFirmwareBuf;
554c0a3abf216c Hans de Goede  2017-03-29  372  
699ad73456d6c9 Quytelda Kahja 2018-05-22  373  	pHalData->FirmwareVersion =  le16_to_cpu(pFwHdr->version);
699ad73456d6c9 Quytelda Kahja 2018-05-22  374  	pHalData->FirmwareSubVersion = le16_to_cpu(pFwHdr->subversion);
699ad73456d6c9 Quytelda Kahja 2018-05-22  375  	pHalData->FirmwareSignature = le16_to_cpu(pFwHdr->signature);
554c0a3abf216c Hans de Goede  2017-03-29  376  
554c0a3abf216c Hans de Goede  2017-03-29  377  	if (IS_FW_HEADER_EXIST_8723B(pFwHdr)) {
554c0a3abf216c Hans de Goede  2017-03-29  378  		/*  Shift 32 bytes for FW header */
554c0a3abf216c Hans de Goede  2017-03-29  379  		pFirmwareBuf = pFirmwareBuf + 32;
554c0a3abf216c Hans de Goede  2017-03-29  380  		FirmwareLen = FirmwareLen - 32;
554c0a3abf216c Hans de Goede  2017-03-29  381  	}
554c0a3abf216c Hans de Goede  2017-03-29  382  
554c0a3abf216c Hans de Goede  2017-03-29  383  	/*  Suggested by Filen. If 8051 is running in RAM code, driver should inform Fw to reset by itself, */
554c0a3abf216c Hans de Goede  2017-03-29  384  	/*  or it will cause download Fw fail. 2010.02.01. by tynli. */
554c0a3abf216c Hans de Goede  2017-03-29  385  	if (rtw_read8(padapter, REG_MCUFWDL) & RAM_DL_SEL) { /* 8051 RAM code */
554c0a3abf216c Hans de Goede  2017-03-29  386  		rtw_write8(padapter, REG_MCUFWDL, 0x00);
554c0a3abf216c Hans de Goede  2017-03-29  387  		rtl8723b_FirmwareSelfReset(padapter);
554c0a3abf216c Hans de Goede  2017-03-29  388  	}
554c0a3abf216c Hans de Goede  2017-03-29  389  
554c0a3abf216c Hans de Goede  2017-03-29  390  	_FWDownloadEnable(padapter, true);
554c0a3abf216c Hans de Goede  2017-03-29  391  	fwdl_start_time = jiffies;
554c0a3abf216c Hans de Goede  2017-03-29  392  	while (
554c0a3abf216c Hans de Goede  2017-03-29  393  		!padapter->bDriverStopped &&
554c0a3abf216c Hans de Goede  2017-03-29  394  		!padapter->bSurpriseRemoved &&
554c0a3abf216c Hans de Goede  2017-03-29  395  		(write_fw++ < 3 || jiffies_to_msecs(jiffies - fwdl_start_time) < 500)
554c0a3abf216c Hans de Goede  2017-03-29  396  	) {
554c0a3abf216c Hans de Goede  2017-03-29  397  		/* reset FWDL chksum */
554c0a3abf216c Hans de Goede  2017-03-29  398  		rtw_write8(padapter, REG_MCUFWDL, rtw_read8(padapter, REG_MCUFWDL)|FWDL_ChkSum_rpt);
554c0a3abf216c Hans de Goede  2017-03-29  399  
554c0a3abf216c Hans de Goede  2017-03-29  400  		rtStatus = _WriteFW(padapter, pFirmwareBuf, FirmwareLen);
554c0a3abf216c Hans de Goede  2017-03-29  401  		if (rtStatus != _SUCCESS)
554c0a3abf216c Hans de Goede  2017-03-29  402  			continue;
554c0a3abf216c Hans de Goede  2017-03-29  403  
554c0a3abf216c Hans de Goede  2017-03-29  404  		rtStatus = polling_fwdl_chksum(padapter, 5, 50);
554c0a3abf216c Hans de Goede  2017-03-29  405  		if (rtStatus == _SUCCESS)
554c0a3abf216c Hans de Goede  2017-03-29  406  			break;
554c0a3abf216c Hans de Goede  2017-03-29  407  	}
554c0a3abf216c Hans de Goede  2017-03-29  408  	_FWDownloadEnable(padapter, false);
554c0a3abf216c Hans de Goede  2017-03-29  409  	if (_SUCCESS != rtStatus)
554c0a3abf216c Hans de Goede  2017-03-29  410  		goto fwdl_stat;
554c0a3abf216c Hans de Goede  2017-03-29  411  
554c0a3abf216c Hans de Goede  2017-03-29  412  	rtStatus = _FWFreeToGo(padapter, 10, 200);
554c0a3abf216c Hans de Goede  2017-03-29  413  	if (_SUCCESS != rtStatus)
554c0a3abf216c Hans de Goede  2017-03-29  414  		goto fwdl_stat;
554c0a3abf216c Hans de Goede  2017-03-29  415  
554c0a3abf216c Hans de Goede  2017-03-29  416  fwdl_stat:
554c0a3abf216c Hans de Goede  2017-03-29  417  
554c0a3abf216c Hans de Goede  2017-03-29  418  exit:
93998817a169c0 Quytelda Kahja 2018-05-22  419  	kfree(pFirmware->fw_buffer_sz);
554c0a3abf216c Hans de Goede  2017-03-29  420  	kfree(pFirmware);
7e2b0aaec63351 Larry Finger   2017-04-08 @421  release_fw1:
554c0a3abf216c Hans de Goede  2017-03-29  422  	kfree(pBTFirmware);
554c0a3abf216c Hans de Goede  2017-03-29  423  	return rtStatus;
554c0a3abf216c Hans de Goede  2017-03-29  424  }
554c0a3abf216c Hans de Goede  2017-03-29  425  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

  parent reply	other threads:[~2022-01-06 21:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-30 19:33 [PATCH] staging: rtl8723bs: fix memory leak error F.A.Sulaiman
2021-08-31  8:47 ` Dan Carpenter
2021-09-01 18:54   ` F.A. SULAIMAN
2022-01-05 12:34 ` [PATCH v2] " F.A.Sulaiman
2022-01-05 14:37   ` Dan Carpenter
2022-01-06 21:00   ` kernel test robot [this message]
2022-01-06 21:00     ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202201070423.WeoyORXE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=asha.16@itfac.mrt.ac.lk \
    --cc=dan.carpenter@oracle.com \
    --cc=fabioaiuto83@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=llvm@lists.linux.dev \
    --cc=marcocesati@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.