lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1401717285.24954.12.camel@smile.fi.intel.com>
Date:	Mon, 02 Jun 2014 16:54:45 +0300
From:	Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To:	Vitaly Osipov <vitaly.osipov@...il.com>
Cc:	Larry Finger <Larry.Finger@...inger.net>,
	Florian Schilhabel <florian.c.schilhabel@...glemail.com>,
	devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: rtl8712: remove _malloc()

On Sat, 2014-05-24 at 18:19 +1000, Vitaly Osipov wrote:
> This patch removes all usage of _malloc() and the function itself. Most
> uses are straightforward replacements by kmalloc(..., GFP_ATOMIC),
> because this was the definition of _malloc(). In a few places it
> was possible to use kzalloc() or memdup_user.
> 
> A further improvement would be to replace GFP_ATOMIC with GFP_KERNEL
> where possible.

I don't know if it's okay to do

v = ... sizeof(struct type_of_v) -> sizeof(*v)

along with these changes.

And in one or couple of places you may use kcalloc(x, y) instead of
kmalloc(x * y).

> 
> Verified by compilation only.
> 
> Initial replacement done by running a Coccinelle script along the lines
> of:
> 
> @@
> type T;
> expression E;
> identifier V;
> @@
> - V = (T) _malloc(E);
> + V = kmalloc(E, GFP_ATOMIC);
> 
> @@
> expression E, E1;
> @@
> - E1 = _malloc(E);
> + E1 = kmalloc(E, GFP_ATOMIC);
> 
> Signed-off-by: Vitaly Osipov <vitaly.osipov@...il.com>
> ---
>  drivers/staging/rtl8712/hal_init.c            |   2 +-
>  drivers/staging/rtl8712/mlme_linux.c          |   3 +-
>  drivers/staging/rtl8712/osdep_service.h       |   5 --
>  drivers/staging/rtl8712/rtl8712_recv.c        |   6 +-
>  drivers/staging/rtl8712/rtl871x_cmd.c         | 123 +++++++++++---------------
>  drivers/staging/rtl8712/rtl871x_io.c          |  11 +--
>  drivers/staging/rtl8712/rtl871x_ioctl_linux.c |  35 +++-----
>  drivers/staging/rtl8712/rtl871x_mlme.c        |  17 ++--
>  drivers/staging/rtl8712/rtl871x_mp.c          |  10 +--
>  drivers/staging/rtl8712/rtl871x_recv.c        |   6 +-
>  drivers/staging/rtl8712/rtl871x_sta_mgt.c     |   4 +-
>  drivers/staging/rtl8712/rtl871x_xmit.c        |  16 ++--
>  drivers/staging/rtl8712/usb_ops_linux.c       |   2 +-
>  13 files changed, 102 insertions(+), 138 deletions(-)
> 
> diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c
> index d801c5a..36de7e4 100644
> --- a/drivers/staging/rtl8712/hal_init.c
> +++ b/drivers/staging/rtl8712/hal_init.c
> @@ -183,7 +183,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
>  		maxlen = (fwhdr.img_IMEM_size > fwhdr.img_SRAM_size) ?
>  			  fwhdr.img_IMEM_size : fwhdr.img_SRAM_size;
>  		maxlen += txdscp_sz;
> -		ptmpchar = _malloc(maxlen + FWBUFF_ALIGN_SZ);
> +		ptmpchar = kmalloc(maxlen + FWBUFF_ALIGN_SZ, GFP_ATOMIC);
>  		if (ptmpchar == NULL)
>  			return ret;
>  
> diff --git a/drivers/staging/rtl8712/mlme_linux.c b/drivers/staging/rtl8712/mlme_linux.c
> index f569a70..377efb8 100644
> --- a/drivers/staging/rtl8712/mlme_linux.c
> +++ b/drivers/staging/rtl8712/mlme_linux.c
> @@ -147,10 +147,9 @@ void r8712_report_sec_ie(struct _adapter *adapter, u8 authmode, u8 *sec_ie)
>  
>  	buff = NULL;
>  	if (authmode == _WPA_IE_ID_) {
> -		buff = _malloc(IW_CUSTOM_MAX);
> +		buff = kzalloc(IW_CUSTOM_MAX, GFP_ATOMIC);
>  		if (buff == NULL)
>  			return;
> -		memset(buff, 0, IW_CUSTOM_MAX);
>  		p = buff;
>  		p += sprintf(p, "ASSOCINFO(ReqIEs=");
>  		len = sec_ie[1] + 2;
> diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h
> index 566235a..09e1561 100644
> --- a/drivers/staging/rtl8712/osdep_service.h
> +++ b/drivers/staging/rtl8712/osdep_service.h
> @@ -168,11 +168,6 @@ static inline void sleep_schedulable(int ms)
>  		return;
>  }
>  
> -static inline u8 *_malloc(u32 sz)
> -{
> -	return	kmalloc(sz, GFP_ATOMIC);
> -}
> -
>  static inline unsigned char _cancel_timer_ex(struct timer_list *ptimer)
>  {
>  	return del_timer(ptimer);
> diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c
> index 667398a..1f70017 100644
> --- a/drivers/staging/rtl8712/rtl8712_recv.c
> +++ b/drivers/staging/rtl8712/rtl8712_recv.c
> @@ -58,12 +58,10 @@ int r8712_init_recv_priv(struct recv_priv *precvpriv, struct _adapter *padapter)
>  
>  	/*init recv_buf*/
>  	_init_queue(&precvpriv->free_recv_buf_queue);
> -	precvpriv->pallocated_recv_buf = _malloc(NR_RECVBUFF *
> -					 sizeof(struct recv_buf) + 4);
> +	precvpriv->pallocated_recv_buf = kzalloc(NR_RECVBUFF * sizeof(struct recv_buf) + 4,
> +						 GFP_ATOMIC);
>  	if (precvpriv->pallocated_recv_buf == NULL)
>  		return _FAIL;
> -	memset(precvpriv->pallocated_recv_buf, 0, NR_RECVBUFF *
> -		sizeof(struct recv_buf) + 4);
>  	precvpriv->precv_buf = precvpriv->pallocated_recv_buf + 4 -
>  			      ((addr_t) (precvpriv->pallocated_recv_buf) & 3);
>  	precvbuf = (struct recv_buf *)precvpriv->precv_buf;
> diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c
> index a67185d..6a3cecc 100644
> --- a/drivers/staging/rtl8712/rtl871x_cmd.c
> +++ b/drivers/staging/rtl8712/rtl871x_cmd.c
> @@ -64,13 +64,14 @@ static sint _init_cmd_priv(struct cmd_priv *pcmdpriv)
>  
>  	/* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */
>  	pcmdpriv->cmd_seq = 1;
> -	pcmdpriv->cmd_allocated_buf = _malloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ);
> +	pcmdpriv->cmd_allocated_buf = kmalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ,
> +					      GFP_ATOMIC);
>  	if (pcmdpriv->cmd_allocated_buf == NULL)
>  		return _FAIL;
>  	pcmdpriv->cmd_buf = pcmdpriv->cmd_allocated_buf  +  CMDBUFF_ALIGN_SZ -
>  			    ((addr_t)(pcmdpriv->cmd_allocated_buf) &
>  			    (CMDBUFF_ALIGN_SZ-1));
> -	pcmdpriv->rsp_allocated_buf = _malloc(MAX_RSPSZ + 4);
> +	pcmdpriv->rsp_allocated_buf = kmalloc(MAX_RSPSZ + 4, GFP_ATOMIC);
>  	if (pcmdpriv->rsp_allocated_buf == NULL)
>  		return _FAIL;
>  	pcmdpriv->rsp_buf = pcmdpriv->rsp_allocated_buf  +  4 -
> @@ -85,7 +86,7 @@ static sint _init_evt_priv(struct evt_priv *pevtpriv)
>  {
>  	/* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */
>  	pevtpriv->event_seq = 0;
> -	pevtpriv->evt_allocated_buf = _malloc(MAX_EVTSZ + 4);
> +	pevtpriv->evt_allocated_buf = kmalloc(MAX_EVTSZ + 4, GFP_ATOMIC);
>  
>  	if (pevtpriv->evt_allocated_buf == NULL)
>  		return _FAIL;
> @@ -226,11 +227,10 @@ u8 r8712_sitesurvey_cmd(struct _adapter *padapter,
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psurveyPara = (struct sitesurvey_parm *)_malloc(
> -		       sizeof(struct sitesurvey_parm));
> +	psurveyPara = kmalloc(sizeof(struct sitesurvey_parm), GFP_ATOMIC);
>  	if (psurveyPara == NULL) {
>  		kfree((unsigned char *) ph2c);
>  		return _FAIL;
> @@ -259,11 +259,11 @@ u8 r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset)
>  	struct setdatarate_parm	*pbsetdataratepara;
>  	struct cmd_priv		*pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pbsetdataratepara = (struct setdatarate_parm *)_malloc(
> -			     sizeof(struct setdatarate_parm));
> +	pbsetdataratepara = kmalloc(sizeof(struct setdatarate_parm),
> +				    GFP_ATOMIC);
>  	if (pbsetdataratepara == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -282,11 +282,11 @@ u8 r8712_set_chplan_cmd(struct _adapter *padapter, int chplan)
>  	struct SetChannelPlan_param *psetchplanpara;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetchplanpara = (struct SetChannelPlan_param *)
> -		_malloc(sizeof(struct SetChannelPlan_param));
> +	psetchplanpara = kmalloc(sizeof(struct SetChannelPlan_param),
> +				 GFP_ATOMIC);
>  	if (psetchplanpara == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -304,11 +304,11 @@ u8 r8712_setbasicrate_cmd(struct _adapter *padapter, u8 *rateset)
>  	struct setbasicrate_parm *pssetbasicratepara;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pssetbasicratepara = (struct setbasicrate_parm *)_malloc(
> -			      sizeof(struct setbasicrate_parm));
> +	pssetbasicratepara = kmalloc(sizeof(struct setbasicrate_parm),
> +				     GFP_ATOMIC);
>  	if (pssetbasicratepara == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -327,11 +327,10 @@ u8 r8712_setptm_cmd(struct _adapter *padapter, u8 type)
>  	struct writePTM_parm	*pwriteptmparm;
>  	struct cmd_priv		*pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pwriteptmparm = (struct writePTM_parm *)
> -		_malloc(sizeof(struct writePTM_parm));
> +	pwriteptmparm = kmalloc(sizeof(struct writePTM_parm), GFP_ATOMIC);
>  	if (pwriteptmparm == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -348,11 +347,10 @@ u8 r8712_setfwdig_cmd(struct _adapter *padapter, u8 type)
>  	struct writePTM_parm *pwriteptmparm;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pwriteptmparm = (struct writePTM_parm *)
> -		_malloc(sizeof(struct setdig_parm));
> +	pwriteptmparm = kmalloc(sizeof(struct setdig_parm), GFP_ATOMIC);
>  	if (pwriteptmparm == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -369,11 +367,10 @@ u8 r8712_setfwra_cmd(struct _adapter *padapter, u8 type)
>  	struct writePTM_parm *pwriteptmparm;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pwriteptmparm = (struct writePTM_parm *)
> -		_malloc(sizeof(struct setra_parm));
> +	pwriteptmparm = kmalloc(sizeof(struct setra_parm), GFP_ATOMIC);
>  	if (pwriteptmparm == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -390,11 +387,10 @@ u8 r8712_setrfreg_cmd(struct _adapter  *padapter, u8 offset, u32 val)
>  	struct writeRF_parm *pwriterfparm;
>  	struct cmd_priv	*pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pwriterfparm = (struct writeRF_parm *)_malloc(
> -			sizeof(struct writeRF_parm));
> +	pwriterfparm = kmalloc(sizeof(struct writeRF_parm), GFP_ATOMIC);
>  	if (pwriterfparm == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -412,10 +408,10 @@ u8 r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval)
>  	struct readRF_parm *prdrfparm;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	prdrfparm = (struct readRF_parm *)_malloc(sizeof(struct readRF_parm));
> +	prdrfparm = kmalloc(sizeof(struct readRF_parm), GFP_ATOMIC);
>  	if (prdrfparm == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -456,7 +452,7 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)
>  				 &padapter->registrypriv.dev_network;
>  
>  	padapter->ledpriv.LedControlHandler(padapter, LED_CTL_START_TO_LINK);
> -	pcmd = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	pcmd = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (pcmd == NULL)
>  		return _FAIL;
>  	_init_listhead(&pcmd->list);
> @@ -490,7 +486,7 @@ u8 r8712_joinbss_cmd(struct _adapter  *padapter, struct wlan_network *pnetwork)
>  						network.InfrastructureMode;
>  
>  	padapter->ledpriv.LedControlHandler(padapter, LED_CTL_START_TO_LINK);
> -	pcmd = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	pcmd = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (pcmd == NULL)
>  		return _FAIL;
>  	t_len = sizeof(u32) + 6 * sizeof(unsigned char) + 2 +
> @@ -628,11 +624,10 @@ u8 r8712_disassoc_cmd(struct _adapter *padapter) /* for sta_mode */
>  	struct disconnect_parm *pdisconnect;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	pdisconnect_cmd = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	pdisconnect_cmd = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (pdisconnect_cmd == NULL)
>  		return _FAIL;
> -	pdisconnect = (struct disconnect_parm *)_malloc(
> -		      sizeof(struct disconnect_parm));
> +	pdisconnect = kmalloc(sizeof(struct disconnect_parm), GFP_ATOMIC);
>  	if (pdisconnect == NULL) {
>  		kfree((u8 *)pdisconnect_cmd);
>  		return _FAIL;
> @@ -651,11 +646,10 @@ u8 r8712_setopmode_cmd(struct _adapter *padapter,
>  
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetop = (struct setopmode_parm *)_malloc(
> -		  sizeof(struct setopmode_parm));
> +	psetop = kmalloc(sizeof(struct setopmode_parm), GFP_ATOMIC);
>  	if (psetop == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -676,17 +670,15 @@ u8 r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key)
>  	struct security_priv *psecuritypriv = &padapter->securitypriv;
>  	struct sta_info *sta = (struct sta_info *)psta;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetstakey_para = (struct set_stakey_parm *)_malloc(
> -			  sizeof(struct set_stakey_parm));
> +	psetstakey_para = kmalloc(sizeof(struct set_stakey_parm), GFP_ATOMIC);
>  	if (psetstakey_para == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
>  	}
> -	psetstakey_rsp = (struct set_stakey_rsp *)_malloc(
> -			  sizeof(struct set_stakey_rsp));
> +	psetstakey_rsp = kmalloc(sizeof(struct set_stakey_rsp), GFP_ATOMIC);
>  	if (psetstakey_rsp == NULL) {
>  		kfree((u8 *) ph2c);
>  		kfree((u8 *) psetstakey_para);
> @@ -718,11 +710,10 @@ u8 r8712_setrfintfs_cmd(struct _adapter *padapter, u8 mode)
>  	struct setrfintfs_parm *psetrfintfsparm;
>  	struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetrfintfsparm = (struct setrfintfs_parm *)_malloc(
> -			   sizeof(struct setrfintfs_parm));
> +	psetrfintfsparm = kmalloc(sizeof(struct setrfintfs_parm), GFP_ATOMIC);
>  	if (psetrfintfsparm == NULL) {
>  		kfree((unsigned char *) ph2c);
>  		return _FAIL;
> @@ -741,11 +732,10 @@ u8 r8712_setrttbl_cmd(struct _adapter *padapter,
>  	struct setratable_parm *psetrttblparm;
>  	struct cmd_priv	*pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetrttblparm = (struct setratable_parm *)_malloc(
> -			sizeof(struct setratable_parm));
> +	psetrttblparm = kmalloc(sizeof(struct setratable_parm), GFP_ATOMIC);
>  	if (psetrttblparm == NULL) {
>  		kfree((unsigned char *)ph2c);
>  		return _FAIL;
> @@ -763,11 +753,10 @@ u8 r8712_gettssi_cmd(struct _adapter *padapter, u8 offset, u8 *pval)
>  	struct cmd_obj *ph2c;
>  	struct readTSSI_parm *prdtssiparm;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	prdtssiparm = (struct readTSSI_parm *)
> -		_malloc(sizeof(struct readTSSI_parm));
> +	prdtssiparm = kmalloc(sizeof(struct readTSSI_parm), GFP_ATOMIC);
>  	if (prdtssiparm == NULL) {
>  		kfree((unsigned char *) ph2c);
>  		return _FAIL;
> @@ -790,11 +779,11 @@ u8 r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr)
>  	struct cmd_obj *ph2c;
>  	struct SetMacAddr_param	*psetMacAddr_para;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetMacAddr_para = (struct SetMacAddr_param *)_malloc(
> -			   sizeof(struct SetMacAddr_param));
> +	psetMacAddr_para = kmalloc(sizeof(struct SetMacAddr_param),
> +				   GFP_ATOMIC);
>  	if (psetMacAddr_para == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
> @@ -813,17 +802,17 @@ u8 r8712_setassocsta_cmd(struct _adapter *padapter, u8 *mac_addr)
>  	struct set_assocsta_parm	*psetassocsta_para;
>  	struct set_assocsta_rsp		*psetassocsta_rsp = NULL;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	psetassocsta_para = (struct set_assocsta_parm *)
> -			    _malloc(sizeof(struct set_assocsta_parm));
> +	psetassocsta_para = kmalloc(sizeof(struct set_assocsta_parm),
> +				    GFP_ATOMIC);
>  	if (psetassocsta_para == NULL) {
>  		kfree((u8 *) ph2c);
>  		return _FAIL;
>  	}
> -	psetassocsta_rsp = (struct set_assocsta_rsp *)_malloc(
> -			    sizeof(struct set_assocsta_rsp));
> +	psetassocsta_rsp = kmalloc(sizeof(struct set_assocsta_rsp),
> +				   GFP_ATOMIC);
>  	if (psetassocsta_rsp == NULL) {
>  		kfree((u8 *)ph2c);
>  		kfree((u8 *)psetassocsta_para);
> @@ -843,11 +832,10 @@ u8 r8712_addbareq_cmd(struct _adapter *padapter, u8 tid)
>  	struct cmd_obj		*ph2c;
>  	struct addBaReq_parm	*paddbareq_parm;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	paddbareq_parm = (struct addBaReq_parm *)_malloc(
> -			  sizeof(struct addBaReq_parm));
> +	paddbareq_parm = kmalloc(sizeof(struct addBaReq_parm), GFP_ATOMIC);
>  	if (paddbareq_parm == NULL) {
>  		kfree((unsigned char *)ph2c);
>  		return _FAIL;
> @@ -865,11 +853,10 @@ u8 r8712_wdg_wk_cmd(struct _adapter *padapter)
>  	struct drvint_cmd_parm  *pdrvintcmd_param;
>  	struct cmd_priv	*pcmdpriv = &padapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	pdrvintcmd_param = (struct drvint_cmd_parm *)_malloc(
> -			   sizeof(struct drvint_cmd_parm));
> +	pdrvintcmd_param = kmalloc(sizeof(struct drvint_cmd_parm), GFP_ATOMIC);
>  	if (pdrvintcmd_param == NULL) {
>  		kfree((unsigned char *)ph2c);
>  		return _FAIL;
> @@ -1040,16 +1027,14 @@ u8 r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl,
>  	struct DisconnectCtrlEx_param *param;
>  	struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
>  
> -	ph2c = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	ph2c = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (ph2c == NULL)
>  		return _FAIL;
> -	param = (struct DisconnectCtrlEx_param *)
> -		_malloc(sizeof(struct DisconnectCtrlEx_param));
> +	param = kzalloc(sizeof(struct DisconnectCtrlEx_param), GFP_ATOMIC);
>  	if (param == NULL) {
>  		kfree((unsigned char *) ph2c);
>  		return _FAIL;
>  	}
> -	memset(param, 0, sizeof(struct DisconnectCtrlEx_param));
>  
>  	param->EnableDrvCtrl = (unsigned char)enableDrvCtrl;
>  	param->TryPktCnt = (unsigned char)tryPktCnt;
> diff --git a/drivers/staging/rtl8712/rtl871x_io.c b/drivers/staging/rtl8712/rtl871x_io.c
> index abc1c97..37a841a 100644
> --- a/drivers/staging/rtl8712/rtl871x_io.c
> +++ b/drivers/staging/rtl8712/rtl871x_io.c
> @@ -60,8 +60,8 @@ static uint _init_intf_hdl(struct _adapter *padapter,
>  	set_intf_funs = &(r8712_usb_set_intf_funs);
>  	set_intf_ops = &r8712_usb_set_intf_ops;
>  	init_intf_priv = &r8712_usb_init_intf_priv;
> -	pintf_priv = pintf_hdl->pintfpriv = (struct intf_priv *)
> -		     _malloc(sizeof(struct intf_priv));
> +	pintf_priv = pintf_hdl->pintfpriv = kmalloc(sizeof(struct intf_priv),
> +						    GFP_ATOMIC);
>  	if (pintf_priv == NULL)
>  		goto _init_intf_hdl_fail;
>  	pintf_hdl->adapter = (u8 *)padapter;
> @@ -112,15 +112,16 @@ uint r8712_alloc_io_queue(struct _adapter *adapter)
>  	struct io_queue *pio_queue;
>  	struct io_req *pio_req;
>  
> -	pio_queue = (struct io_queue *)_malloc(sizeof(struct io_queue));
> +	pio_queue = kmalloc(sizeof(struct io_queue), GFP_ATOMIC);
>  	if (pio_queue == NULL)
>  		goto alloc_io_queue_fail;
>  	_init_listhead(&pio_queue->free_ioreqs);
>  	_init_listhead(&pio_queue->processing);
>  	_init_listhead(&pio_queue->pending);
>  	spin_lock_init(&pio_queue->lock);
> -	pio_queue->pallocated_free_ioreqs_buf = (u8 *)_malloc(NUM_IOREQ *
> -						(sizeof(struct io_req)) + 4);
> +	pio_queue->pallocated_free_ioreqs_buf = kmalloc(NUM_IOREQ *
> +							(sizeof(struct io_req)) + 4,
> +							GFP_ATOMIC);
>  	if ((pio_queue->pallocated_free_ioreqs_buf) == NULL)
>  		goto alloc_io_queue_fail;
>  	memset(pio_queue->pallocated_free_ioreqs_buf, 0,
> diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> index 1eca992..e147c4b 100644
> --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> @@ -424,10 +424,9 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param,
>  			wep_key_idx = 0;
>  		if (wep_key_len > 0) {
>  			wep_key_len = wep_key_len <= 5 ? 5 : 13;
> -			pwep = (struct NDIS_802_11_WEP *)_malloc((u32)
> -			       (wep_key_len +
> -			       FIELD_OFFSET(struct NDIS_802_11_WEP,
> -			       KeyMaterial)));
> +			pwep = kmalloc((u32)(wep_key_len +
> +				       FIELD_OFFSET(struct NDIS_802_11_WEP, KeyMaterial)),
> +				       GFP_ATOMIC);
>  			if (pwep == NULL)
>  				return -ENOMEM;
>  			memset(pwep, 0, sizeof(struct NDIS_802_11_WEP));
> @@ -518,10 +517,9 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie,
>  	if ((ielen > MAX_WPA_IE_LEN) || (pie == NULL))
>  		return -EINVAL;
>  	if (ielen) {
> -		buf = _malloc(ielen);
> +		buf = kmemdup(pie, ielen, GFP_ATOMIC);
>  		if (buf == NULL)
>  			return -ENOMEM;
> -		memcpy(buf, pie , ielen);
>  		pos = buf;
>  		if (ielen < RSN_HEADER_LEN) {
>  			ret  = -EINVAL;
> @@ -959,13 +957,9 @@ static int r871x_wx_set_priv(struct net_device *dev,
>  	struct iw_point *dwrq = (struct iw_point *)awrq;
>  
>  	len = dwrq->length;
> -	ext = _malloc(len);
> -	if (!ext)
> -		return -ENOMEM;
> -	if (copy_from_user(ext, dwrq->pointer, len)) {
> -		kfree(ext);
> -		return -EFAULT;
> -	}
> +	ext = memdup_user(dwrq->pointer, len);
> +	if (IS_ERR(ext))
> +		return PTR_ERR(ext);
>  
>  	if (0 == strcasecmp(ext, "RSSI")) {
>  		/*Return received signal strength indicator in -db for */
> @@ -1819,10 +1813,9 @@ static int r871x_wx_set_enc_ext(struct net_device *dev,
>  	}
>  
>  	param_len = sizeof(struct ieee_param) + pext->key_len;
> -	param = (struct ieee_param *)_malloc(param_len);
> +	param = kzalloc(param_len, GFP_ATOMIC);
>  	if (param == NULL)
>  		return -ENOMEM;
> -	memset(param, 0, param_len);
>  	param->cmd = IEEE_CMD_SET_ENCRYPTION;
>  	memset(param->sta_addr, 0xff, ETH_ALEN);
>  
> @@ -1922,7 +1915,7 @@ static int r871x_mp_ioctl_hdl(struct net_device *dev,
>  	bset = (u8)(p->flags & 0xFFFF);
>  	len = p->length;
>  	pparmbuf = NULL;
> -	pparmbuf = (u8 *)_malloc(len);
> +	pparmbuf = kmalloc(len, GFP_ATOMIC);
>  	if (pparmbuf == NULL) {
>  		ret = -ENOMEM;
>  		goto _r871x_mp_ioctl_hdl_exit;
> @@ -2195,13 +2188,9 @@ static int wpa_supplicant_ioctl(struct net_device *dev, struct iw_point *p)
>  
>  	if (p->length < sizeof(struct ieee_param) || !p->pointer)
>  		return -EINVAL;
> -	param = (struct ieee_param *)_malloc(p->length);
> -	if (param == NULL)
> -		return -ENOMEM;
> -	if (copy_from_user(param, p->pointer, p->length)) {
> -		kfree((u8 *)param);
> -		return -EFAULT;
> -	}
> +	param = memdup_user(p->pointer, p->length);
> +	if (IS_ERR(param))
> +		return PTR_ERR(param);
>  	switch (param->cmd) {
>  	case IEEE_CMD_SET_WPA_PARAM:
>  		ret = wpa_set_param(dev, param->u.wpa_param.name,
> diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c
> index f8f651a..02339e1 100644
> --- a/drivers/staging/rtl8712/rtl871x_mlme.c
> +++ b/drivers/staging/rtl8712/rtl871x_mlme.c
> @@ -62,7 +62,8 @@ static sint _init_mlme_priv(struct _adapter *padapter)
>  	_init_queue(&(pmlmepriv->scanned_queue));
>  	set_scanned_network_val(pmlmepriv, 0);
>  	memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
> -	pbuf = _malloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
> +	pbuf = kmalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)),
> +		       GFP_ATOMIC);
>  	if (pbuf == NULL)
>  		return _FAIL;
>  	pmlmepriv->free_bss_buf = pbuf;
> @@ -725,8 +726,7 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf)
>  	struct wlan_network *pnetwork;
>  
>  	if (sizeof(struct list_head) == 4 * sizeof(u32)) {
> -		pnetwork = (struct wlan_network *)
> -			_malloc(sizeof(struct wlan_network));
> +		pnetwork = kmalloc(sizeof(struct wlan_network), GFP_ATOMIC);
>  		memcpy((u8 *)pnetwork+16, (u8 *)pbuf + 8,
>  			sizeof(struct wlan_network) - 16);
>  	} else
> @@ -1212,17 +1212,15 @@ sint r8712_set_auth(struct _adapter *adapter,
>  	struct cmd_obj *pcmd;
>  	struct setauth_parm *psetauthparm;
>  
> -	pcmd = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	pcmd = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (pcmd == NULL)
>  		return _FAIL;
>  
> -	psetauthparm = (struct setauth_parm *)_malloc(
> -			sizeof(struct setauth_parm));
> +	psetauthparm = kzalloc(sizeof(struct setauth_parm), GFP_ATOMIC);
>  	if (psetauthparm == NULL) {
>  		kfree((unsigned char *)pcmd);
>  		return _FAIL;
>  	}
> -	memset(psetauthparm, 0, sizeof(struct setauth_parm));
>  	psetauthparm->mode = (u8)psecuritypriv->AuthAlgrthm;
>  	pcmd->cmdcode = _SetAuth_CMD_;
>  	pcmd->parmbuf = (unsigned char *)psetauthparm;
> @@ -1244,15 +1242,14 @@ sint r8712_set_key(struct _adapter *adapter,
>  	u8 keylen;
>  	sint ret = _SUCCESS;
>  
> -	pcmd = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	pcmd = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (pcmd == NULL)
>  		return _FAIL;
> -	psetkeyparm = (struct setkey_parm *)_malloc(sizeof(struct setkey_parm));
> +	psetkeyparm = kzalloc(sizeof(struct setkey_parm), GFP_ATOMIC);
>  	if (psetkeyparm == NULL) {
>  		ret = _FAIL;
>  		goto err_free_cmd;
>  	}
> -	memset(psetkeyparm, 0, sizeof(struct setkey_parm));
>  	if (psecuritypriv->AuthAlgrthm == 2) { /* 802.1X */
>  		psetkeyparm->algorithm =
>  			 (u8)psecuritypriv->XGrpPrivacy;
> diff --git a/drivers/staging/rtl8712/rtl871x_mp.c b/drivers/staging/rtl8712/rtl871x_mp.c
> index 5fd60cd..389062f 100644
> --- a/drivers/staging/rtl8712/rtl871x_mp.c
> +++ b/drivers/staging/rtl8712/rtl871x_mp.c
> @@ -53,8 +53,9 @@ static int init_mp_priv(struct mp_priv *pmp_priv)
>  	_init_mp_priv_(pmp_priv);
>  	_init_queue(&pmp_priv->free_mp_xmitqueue);
>  	pmp_priv->pallocated_mp_xmitframe_buf = NULL;
> -	pmp_priv->pallocated_mp_xmitframe_buf = _malloc(NR_MP_XMITFRAME *
> -					 sizeof(struct mp_xmit_frame) + 4);
> +	pmp_priv->pallocated_mp_xmitframe_buf = kmalloc(NR_MP_XMITFRAME *
> +							sizeof(struct mp_xmit_frame) + 4,
> +							GFP_ATOMIC);
>  	if (pmp_priv->pallocated_mp_xmitframe_buf == NULL) {
>  		res = _FAIL;
>  		goto _exit_init_mp_priv;
> @@ -280,11 +281,10 @@ void r8712_SetChannel(struct _adapter *pAdapter)
>  	struct SetChannel_parm *pparm = NULL;
>  	u16 code = GEN_CMD_CODE(_SetChannel);
>  
> -	pcmd = (struct cmd_obj *)_malloc(sizeof(struct cmd_obj));
> +	pcmd = kmalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
>  	if (pcmd == NULL)
>  		return;
> -	pparm = (struct SetChannel_parm *)_malloc(sizeof(struct
> -					 SetChannel_parm));
> +	pparm = kmalloc(sizeof(struct SetChannel_parm), GFP_ATOMIC);
>  	if (pparm == NULL) {
>  		kfree(pcmd);
>  		return;
> diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c
> index 4ac4a1b..eb77587 100644
> --- a/drivers/staging/rtl8712/rtl871x_recv.c
> +++ b/drivers/staging/rtl8712/rtl871x_recv.c
> @@ -72,9 +72,9 @@ sint _r8712_init_recv_priv(struct recv_priv *precvpriv,
>  	_init_queue(&precvpriv->recv_pending_queue);
>  	precvpriv->adapter = padapter;
>  	precvpriv->free_recvframe_cnt = NR_RECVFRAME;
> -	precvpriv->pallocated_frame_buf = _malloc(NR_RECVFRAME *
> -					   sizeof(union recv_frame) +
> -					   RXFRAME_ALIGN_SZ);
> +	precvpriv->pallocated_frame_buf = kmalloc(NR_RECVFRAME *
> +						  sizeof(union recv_frame) + RXFRAME_ALIGN_SZ,
> +						  GFP_ATOMIC);
>  	if (precvpriv->pallocated_frame_buf == NULL)
>  		return _FAIL;
>  	kmemleak_not_leak(precvpriv->pallocated_frame_buf);
> diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
> index 8db6849..6c64984 100644
> --- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c
> +++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
> @@ -51,8 +51,8 @@ u32 _r8712_init_sta_priv(struct	sta_priv *pstapriv)
>  	struct sta_info *psta;
>  	s32 i;
>  
> -	pstapriv->pallocated_stainfo_buf = _malloc(sizeof(struct sta_info) *
> -						   NUM_STA + 4);
> +	pstapriv->pallocated_stainfo_buf = kmalloc(sizeof(struct sta_info) *
> +						   NUM_STA + 4, GFP_ATOMIC);
>  	if (pstapriv->pallocated_stainfo_buf == NULL)
>  		return _FAIL;
>  	pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 -
> diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c
> index 78f570b..230681a 100644
> --- a/drivers/staging/rtl8712/rtl871x_xmit.c
> +++ b/drivers/staging/rtl8712/rtl871x_xmit.c
> @@ -87,8 +87,8 @@ sint _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv,
>  	and initialize free_xmit_frame below.
>  	Please also apply  free_txobj to link_up all the xmit_frames...
>  	*/
> -	pxmitpriv->pallocated_frame_buf = _malloc(NR_XMITFRAME *
> -					  sizeof(struct xmit_frame) + 4);
> +	pxmitpriv->pallocated_frame_buf = kmalloc(NR_XMITFRAME * sizeof(struct xmit_frame) + 4,
> +						  GFP_ATOMIC);
>  	if (pxmitpriv->pallocated_frame_buf == NULL) {
>  		pxmitpriv->pxmit_frame_buf = NULL;
>  		return _FAIL;
> @@ -126,8 +126,8 @@ sint _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv,
>  	/*init xmit_buf*/
>  	_init_queue(&pxmitpriv->free_xmitbuf_queue);
>  	_init_queue(&pxmitpriv->pending_xmitbuf_queue);
> -	pxmitpriv->pallocated_xmitbuf = _malloc(NR_XMITBUFF *
> -					sizeof(struct xmit_buf) + 4);
> +	pxmitpriv->pallocated_xmitbuf = kmalloc(NR_XMITBUFF * sizeof(struct xmit_buf) + 4,
> +						GFP_ATOMIC);
>  	if (pxmitpriv->pallocated_xmitbuf  == NULL)
>  		return _FAIL;
>  	pxmitpriv->pxmitbuf = pxmitpriv->pallocated_xmitbuf + 4 -
> @@ -135,8 +135,8 @@ sint _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv,
>  	pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmitbuf;
>  	for (i = 0; i < NR_XMITBUFF; i++) {
>  		_init_listhead(&pxmitbuf->list);
> -		pxmitbuf->pallocated_buf = _malloc(MAX_XMITBUF_SZ +
> -					   XMITBUF_ALIGN_SZ);
> +		pxmitbuf->pallocated_buf = kmalloc(MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ,
> +						   GFP_ATOMIC);
>  		if (pxmitbuf->pallocated_buf == NULL)
>  			return _FAIL;
>  		pxmitbuf->pbuf = pxmitbuf->pallocated_buf + XMITBUF_ALIGN_SZ -
> @@ -955,8 +955,8 @@ static void alloc_hwxmits(struct _adapter *padapter)
>  	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
>  
>  	pxmitpriv->hwxmit_entry = HWXMIT_ENTRY;
> -	pxmitpriv->hwxmits = (struct hw_xmit *)_malloc(sizeof(struct hw_xmit) *
> -			     pxmitpriv->hwxmit_entry);
> +	pxmitpriv->hwxmits = kmalloc(sizeof(struct hw_xmit) * pxmitpriv->hwxmit_entry,
> +				     GFP_ATOMIC);
>  	if (pxmitpriv->hwxmits == NULL)
>  		return;
>  	hwxmits = pxmitpriv->hwxmits;
> diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c
> index dca398a..064dc10 100644
> --- a/drivers/staging/rtl8712/usb_ops_linux.c
> +++ b/drivers/staging/rtl8712/usb_ops_linux.c
> @@ -495,7 +495,7 @@ int r8712_usbctrl_vendorreq(struct intf_priv *pintfpriv, u8 request, u16 value,
>  	 */
>  	u8 *palloc_buf, *pIo_buf;
>  
> -	palloc_buf = _malloc((u32) len + 16);
> +	palloc_buf = kmalloc((u32)len + 16, GFP_ATOMIC);
>  	if (palloc_buf == NULL) {
>  		dev_err(&udev->dev, "%s: Can't alloc memory for vendor request\n",
>  			__func__);


-- 
Andy Shevchenko <andriy.shevchenko@...el.com>
Intel Finland Oy

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ