diff options
Diffstat (limited to 'drivers/staging/rtl8712')
24 files changed, 224 insertions, 291 deletions
diff --git a/drivers/staging/rtl8712/Kconfig b/drivers/staging/rtl8712/Kconfig index 6a43312380e..f160eee52f0 100644 --- a/drivers/staging/rtl8712/Kconfig +++ b/drivers/staging/rtl8712/Kconfig @@ -4,7 +4,6 @@ config R8712U  	select WIRELESS_EXT  	select WEXT_PRIV  	select FW_LOADER -	default N  	---help---  	This option adds the Realtek RTL8712 USB device such as the D-Link DWA-130.  	If built as a module, it will be called r8712u. @@ -12,7 +11,6 @@ config R8712U  config R8712_TX_AGGR  	bool "Realtek RTL8712U Transmit Aggregation code"  	depends on R8712U && BROKEN -	default N  	---help---  	This option provides transmit aggregation for the Realtek RTL8712 USB device. diff --git a/drivers/staging/rtl8712/drv_types.h b/drivers/staging/rtl8712/drv_types.h index a074fe81016..3362e5e32bc 100644 --- a/drivers/staging/rtl8712/drv_types.h +++ b/drivers/staging/rtl8712/drv_types.h @@ -168,7 +168,7 @@ struct _adapter {  	struct task_struct *xmitThread;  	pid_t recvThread;  	uint(*dvobj_init)(struct _adapter *adapter); -	void  (*dvobj_deinit)(struct _adapter *adapter); +	void (*dvobj_deinit)(struct _adapter *adapter);  	struct net_device *pnetdev;  	int bup;  	struct net_device_stats stats; diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index d801c5af006..36de7e478f3 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/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index cc68d9748ed..fe9459e483c 100644 --- a/drivers/staging/rtl8712/ieee80211.c +++ b/drivers/staging/rtl8712/ieee80211.c @@ -78,9 +78,9 @@ uint r8712_is_cckrates_included(u8 *rate)  		if ((((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) ||  		    (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22))  			return true; -			i++; -		} -		return false; +		i++; +	} +	return false;  }  uint r8712_is_cckratesonly_included(u8 *rate) @@ -289,7 +289,7 @@ static int r8712_get_wpa2_cipher_suite(u8 *s)  int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher,  		 int *pairwise_cipher)  { -	int i, ret = _SUCCESS; +	int i;  	int left, count;  	u8 *pos; @@ -324,13 +324,13 @@ int r8712_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher,  		}  	} else if (left == 1)  		return _FAIL; -	return ret; +	return _SUCCESS;  }  int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher,  		  int *pairwise_cipher)  { -	int i, ret = _SUCCESS; +	int i;  	int left, count;  	u8 *pos; @@ -364,7 +364,7 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher,  		}  	} else if (left == 1)  		return _FAIL; -	return ret; +	return _SUCCESS;  }  int r8712_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, diff --git a/drivers/staging/rtl8712/mlme_linux.c b/drivers/staging/rtl8712/mlme_linux.c index f569a7081be..377efb88676 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/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 6e81ba0eaf1..6bd08213cb7 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -29,7 +29,6 @@  #define _OS_INTFS_C_  #include <linux/module.h> -#include <linux/init.h>  #include <linux/kthread.h>  #include <linux/firmware.h>  #include "osdep_service.h" @@ -141,7 +140,7 @@ static uint loadparam(struct _adapter *padapter, struct  net_device *pnetdev)  	registry_par->ssid.SsidLength = 3;  	registry_par->channel = (u8)channel;  	registry_par->wireless_mode = (u8)wireless_mode; -	registry_par->vrtl_carrier_sense = (u8)vrtl_carrier_sense ; +	registry_par->vrtl_carrier_sense = (u8)vrtl_carrier_sense;  	registry_par->vcs_type = (u8)vcs_type;  	registry_par->frag_thresh = (u16)frag_thresh;  	registry_par->preamble = (u8)preamble; @@ -240,7 +239,7 @@ static u32 start_drv_threads(struct _adapter *padapter)  {  	padapter->cmdThread = kthread_run(r8712_cmd_thread, padapter, "%s",  			      padapter->pnetdev->name); -	if (IS_ERR(padapter->cmdThread) < 0) +	if (IS_ERR(padapter->cmdThread))  		return _FAIL;  	return _SUCCESS;  } diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index f1ccc7ebbda..09e156199e7 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h @@ -147,7 +147,8 @@ static inline u32 _queue_empty(struct  __queue *pqueue)  	return is_list_empty(&(pqueue->queue));  } -static inline u32 end_of_queue_search(struct list_head *head, struct list_head *plist) +static inline u32 end_of_queue_search(struct list_head *head, +		struct list_head *plist)  {  	if (head == plist)  		return true; @@ -164,12 +165,7 @@ static inline void sleep_schedulable(int ms)  		delta = 1;/* 1 ms */  	set_current_state(TASK_INTERRUPTIBLE);  	if (schedule_timeout(delta) != 0) -		return ; -} - -static inline u8 *_malloc(u32 sz) -{ -	return	kmalloc(sz, GFP_ATOMIC); +		return;  }  static inline unsigned char _cancel_timer_ex(struct timer_list *ptimer) diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index 088647cdca9..8ca7d7e68dc 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -31,7 +31,6 @@  #include <linux/compiler.h>  #include <linux/kernel.h>  #include <linux/errno.h> -#include <linux/init.h>  #include <linux/slab.h>  #include <linux/module.h>  #include <linux/kref.h> @@ -62,7 +61,7 @@ static void check_hw_pbc(struct _adapter *padapter)  	r8712_write8(padapter, GPIO_IO_SEL, tmp1byte);  	tmp1byte = r8712_read8(padapter, GPIO_CTRL);  	if (tmp1byte == 0xff) -		return ; +		return;  	if (tmp1byte&HAL_8192S_HW_GPIO_WPS_BIT) {  		/* Here we only set bPbcPressed to true  		 * After trigger PBC, the variable will be set to false */ @@ -291,8 +290,7 @@ static struct cmd_obj *cmd_hdl_filter(struct _adapter *padapter,  static u8 check_cmd_fifo(struct _adapter *padapter, uint sz)  { -	u8 res = _SUCCESS; -	return res; +	return _SUCCESS;  }  u8 r8712_fw_cmd(struct _adapter *pAdapter, u32 cmd) @@ -381,7 +379,7 @@ _next:  			*pcmdbuf = cpu_to_le32((cmdsz & 0x0000ffff) |  					       (pcmd->cmdcode << 16) |  					       (pcmdpriv->cmd_seq << 24)); -			pcmdbuf += 2 ; /* 8 bytes alignment */ +			pcmdbuf += 2; /* 8 bytes alignment */  			memcpy((u8 *)pcmdbuf, pcmd->parmbuf, pcmd->cmdsz);  			while (check_cmd_fifo(padapter, wr_sz) == _FAIL) {  				if ((padapter->bDriverStopped == true) || @@ -471,11 +469,9 @@ void r8712_event_handle(struct _adapter *padapter, uint *peventbuf)  	if (pevt_priv->event_seq > 127)  		pevt_priv->event_seq = 0;  	peventbuf = peventbuf + 2; /* move to event content, 8 bytes alignment */ -	if (peventbuf) { -		event_callback = wlanevents[evt_code].event_callback; -		if (event_callback) -			event_callback(padapter, (u8 *)peventbuf); -	} +	event_callback = wlanevents[evt_code].event_callback; +	if (event_callback) +		event_callback(padapter, (u8 *)peventbuf);  	pevt_priv->evt_done_cnt++;  _abort_event_:  	return; diff --git a/drivers/staging/rtl8712/rtl8712_efuse.c b/drivers/staging/rtl8712/rtl8712_efuse.c index 377fca90580..c9eeb4270ab 100644 --- a/drivers/staging/rtl8712/rtl8712_efuse.c +++ b/drivers/staging/rtl8712/rtl8712_efuse.c @@ -231,7 +231,7 @@ u16 r8712_efuse_get_current_size(struct _adapter *padapter)  			/* read next header */  			efuse_addr = efuse_addr + (word_cnts * 2) + 1;  		} else -			bContinual = false ; +			bContinual = false;  	}  	return efuse_addr;  } diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index d59a74aa304..1f700171af1 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; @@ -90,7 +88,6 @@ int r8712_init_recv_priv(struct recv_priv *precvpriv, struct _adapter *padapter)  		pskb = netdev_alloc_skb(padapter->pnetdev, MAX_RECVBUF_SZ +  		       RECVBUFF_ALIGN_SZ);  		if (pskb) { -			pskb->dev = padapter->pnetdev;  			tmpaddr = (addr_t)pskb->data;  			alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1);  			skb_reserve(pskb, (RECVBUFF_ALIGN_SZ - alignment)); @@ -108,7 +105,7 @@ void r8712_free_recv_priv(struct recv_priv *precvpriv)  	struct _adapter *padapter = precvpriv->adapter;  	precvbuf = (struct recv_buf *)precvpriv->precv_buf; -	for (i = 0; i < NR_RECVBUFF ; i++) { +	for (i = 0; i < NR_RECVBUFF; i++) {  		r8712_os_recvbuf_resource_free(padapter, precvbuf);  		precvbuf++;  	} @@ -124,8 +121,6 @@ void r8712_free_recv_priv(struct recv_priv *precvpriv)  int r8712_init_recvbuf(struct _adapter *padapter, struct recv_buf *precvbuf)  { -	int res = _SUCCESS; -  	precvbuf->transfer_len = 0;  	precvbuf->len = 0;  	precvbuf->ref_cnt = 0; @@ -135,7 +130,7 @@ int r8712_init_recvbuf(struct _adapter *padapter, struct recv_buf *precvbuf)  		precvbuf->ptail = precvbuf->pbuf;  		precvbuf->pend = precvbuf->pdata + MAX_RECVBUF_SZ;  	} -	return res; +	return _SUCCESS;  }  int r8712_free_recvframe(union recv_frame *precvframe, @@ -268,7 +263,7 @@ union recv_frame *r8712_recvframe_chk_defrag(struct _adapter *padapter,  	u8   *psta_addr;  	struct recv_frame_hdr *pfhdr;  	struct sta_info *psta; -	struct	sta_priv *pstapriv ; +	struct	sta_priv *pstapriv;  	struct list_head *phead;  	union recv_frame *prtnframe = NULL;  	struct  __queue *pfree_recv_queue, *pdefrag_q; @@ -348,7 +343,6 @@ static int amsdu_to_msdu(struct _adapter *padapter, union recv_frame *prframe)  	_pkt *sub_skb, *subframes[MAX_SUBFRAME_COUNT];  	struct recv_priv *precvpriv = &padapter->recvpriv;  	struct  __queue *pfree_recv_queue = &(precvpriv->free_recv_queue); -	int	ret = _SUCCESS;  	nr_subframes = 0;  	pattrib = &prframe->u.hdr.attrib; @@ -436,7 +430,7 @@ static int amsdu_to_msdu(struct _adapter *padapter, union recv_frame *prframe)  exit:  	prframe->u.hdr.len = 0;  	r8712_free_recvframe(prframe, pfree_recv_queue); -	return ret; +	return _SUCCESS;  }  void r8712_rxcmd_event_hdl(struct _adapter *padapter, void *prxcmdbuf) @@ -849,7 +843,7 @@ static void query_rx_phy_status(struct _adapter *padapter,  	} else {  		/* (1)Get RSSI for HT rate */  		for (i = 0; i < ((padapter->registrypriv.rf_config) & -			    0x0f) ; i++) { +			    0x0f); i++) {  			rf_rx_num++;  			rx_pwr[i] = ((pphy_head[PHY_STAT_GAIN_TRSW_SHT + i]  				    & 0x3F) * 2) - 110; @@ -1083,7 +1077,6 @@ static int recvbuf2recvframe(struct _adapter *padapter, struct sk_buff *pskb)  		alloc_sz += 6;  		pkt_copy = netdev_alloc_skb(padapter->pnetdev, alloc_sz);  		if (pkt_copy) { -			pkt_copy->dev = padapter->pnetdev;  			precvframe->u.hdr.pkt = pkt_copy;  			skb_reserve(pkt_copy, 4 - ((addr_t)(pkt_copy->data)  				    % 4)); diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c index f16307f5d82..7a252200e90 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.c +++ b/drivers/staging/rtl8712/rtl871x_cmd.c @@ -31,7 +31,6 @@  #include <linux/compiler.h>  #include <linux/kernel.h>  #include <linux/errno.h> -#include <linux/init.h>  #include <linux/slab.h>  #include <linux/module.h>  #include <linux/kref.h> @@ -65,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 - @@ -86,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; @@ -227,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; @@ -260,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; @@ -283,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; @@ -305,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; @@ -328,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; @@ -349,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 writePTM_parm), GFP_ATOMIC);  	if (pwriteptmparm == NULL) {  		kfree((u8 *) ph2c);  		return _FAIL; @@ -370,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 writePTM_parm), GFP_ATOMIC);  	if (pwriteptmparm == NULL) {  		kfree((u8 *) ph2c);  		return _FAIL; @@ -391,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; @@ -413,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; @@ -457,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); @@ -469,10 +464,9 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)  	pcmd->rsp = NULL;  	pcmd->rspsz = 0;  	/* notes: translate IELength & Length after assign to cmdsz; */ -	pdev_network->Length = cpu_to_le32(pcmd->cmdsz); -	pdev_network->IELength = cpu_to_le32(pdev_network->IELength); -	pdev_network->Ssid.SsidLength = cpu_to_le32( -					pdev_network->Ssid.SsidLength); +	pdev_network->Length = pcmd->cmdsz; +	pdev_network->IELength = pdev_network->IELength; +	pdev_network->Ssid.SsidLength =	pdev_network->Ssid.SsidLength;  	r8712_enqueue_cmd(pcmdpriv, pcmd);  	return _SUCCESS;  } @@ -492,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 + @@ -630,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; @@ -653,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; @@ -678,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); @@ -720,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; @@ -743,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; @@ -765,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; @@ -792,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; @@ -815,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); @@ -845,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; @@ -867,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; @@ -912,7 +897,7 @@ void r8712_joinbss_cmd_callback(struct _adapter *padapter, struct cmd_obj *pcmd)  {  	struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -	if ((pcmd->res != H2C_SUCCESS)) +	if (pcmd->res != H2C_SUCCESS)  		_set_timer(&pmlmepriv->assoc_timer, 1);  	r8712_free_cmd_obj(pcmd);  } @@ -929,7 +914,7 @@ void r8712_createbss_cmd_callback(struct _adapter *padapter,  					      pcmd->parmbuf;  	struct wlan_network *tgt_network = &(pmlmepriv->cur_network); -	if ((pcmd->res != H2C_SUCCESS)) +	if (pcmd->res != H2C_SUCCESS)  		_set_timer(&pmlmepriv->assoc_timer, 1);  	_cancel_timer(&pmlmepriv->assoc_timer, &timer_cancelled);  #ifdef __BIG_ENDIAN @@ -965,7 +950,7 @@ void r8712_createbss_cmd_callback(struct _adapter *padapter,  			psta = r8712_alloc_stainfo(&padapter->stapriv,  						   pnetwork->MacAddress);  			if (psta == NULL) -				goto createbss_cmd_fail ; +				goto createbss_cmd_fail;  		}  		r8712_indicate_connect(padapter);  	} else { @@ -1042,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 abc1c97378f..37a841a1488 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 d58aa7e3b15..e147c4bfe12 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -42,7 +42,6 @@  #include <linux/wireless.h>  #include <linux/module.h>  #include <linux/kernel.h> -#include <linux/init.h>  #include <linux/io.h>  #include <linux/semaphore.h>  #include <net/iw_handler.h> @@ -425,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)); @@ -519,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; @@ -820,7 +817,7 @@ static int r871x_wx_set_pmkid(struct net_device *dev,  			intReturn = true;  		blInserted = false;  		/* overwrite PMKID */ -		for (j = 0 ; j < NUM_PMKID_CACHE; j++) { +		for (j = 0; j < NUM_PMKID_CACHE; j++) {  			if (!memcmp(psecuritypriv->PMKIDList[j].Bssid,  			    strIssueBssid, ETH_ALEN)) {  				/* BSSID is matched, the same AP => rewrite @@ -845,7 +842,7 @@ static int r871x_wx_set_pmkid(struct net_device *dev,  				PMKIDIndex].PMKID, pPMK->pmkid, IW_PMKID_LEN);  			psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].  				bUsed = true; -			psecuritypriv->PMKIDIndex++ ; +			psecuritypriv->PMKIDIndex++;  			if (psecuritypriv->PMKIDIndex == NUM_PMKID_CACHE)  				psecuritypriv->PMKIDIndex = 0;  		} @@ -960,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 */ @@ -1598,7 +1591,7 @@ static int r8711_wx_set_enc(struct net_device *dev,  		wep.Length = wep.KeyLength +  			     FIELD_OFFSET(struct NDIS_802_11_WEP, KeyMaterial);  	} else { -		wep.KeyLength = 0 ; +		wep.KeyLength = 0;  		if (keyindex_provided == 1) { /* set key_id only, no given  					       * KeyMaterial(erq->length==0).*/  			padapter->securitypriv.PrivacyKeyIndex = key; @@ -1802,13 +1795,6 @@ static int r871x_wx_set_enc_ext(struct net_device *dev,  	u32 param_len;  	int ret = 0; -	param_len = sizeof(struct ieee_param) + pext->key_len; -	param = (struct ieee_param *)_malloc(param_len); -	if (param == NULL) -		return -ENOMEM; -	memset(param, 0, param_len); -	param->cmd = IEEE_CMD_SET_ENCRYPTION; -	memset(param->sta_addr, 0xff, ETH_ALEN);  	switch (pext->alg) {  	case IW_ENCODE_ALG_NONE:  		alg_name = "none"; @@ -1825,6 +1811,14 @@ static int r871x_wx_set_enc_ext(struct net_device *dev,  	default:  		return -EINVAL;  	} + +	param_len = sizeof(struct ieee_param) + pext->key_len; +	param = kzalloc(param_len, GFP_ATOMIC); +	if (param == NULL) +		return -ENOMEM; +	param->cmd = IEEE_CMD_SET_ENCRYPTION; +	memset(param->sta_addr, 0xff, ETH_ALEN); +  	strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);  	if (pext->ext_flags & IW_ENCODE_EXT_GROUP_KEY)  		param->u.crypt.set_tx = 0; @@ -1880,7 +1874,7 @@ static int r8711_wx_write32(struct net_device *dev,  	u32 data32;  	get_user(addr, (u32 __user *)wrqu->data.pointer); -	data32 = ((u32)wrqu->data.length<<16) | (u32)wrqu->data.flags ; +	data32 = ((u32)wrqu->data.length<<16) | (u32)wrqu->data.flags;  	r8712_write32(padapter, addr, data32);  	return 0;  } @@ -1921,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; @@ -2194,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_ioctl_rtl.c b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c index 5d6d55e7b38..ac0baff7f09 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_rtl.c @@ -153,7 +153,7 @@ uint oid_rt_get_rx_icv_err_hdl(struct oid_par_priv *poid_par_priv)  					 padapter->recvpriv.rx_icv_err;  		*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len;  	} else -		return RNDIS_STATUS_INVALID_LENGTH ; +		return RNDIS_STATUS_INVALID_LENGTH;  	return RNDIS_STATUS_SUCCESS;  } @@ -169,7 +169,7 @@ uint oid_rt_get_preamble_mode_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *padapter = (struct _adapter *)  				    (poid_par_priv->adapter_context); -	u32 preamblemode = 0 ; +	u32 preamblemode = 0;  	if (poid_par_priv->type_of_oid != QUERY_OID)  		return RNDIS_STATUS_NOT_ACCEPTED; @@ -522,7 +522,7 @@ uint oid_rt_get_connect_state_hdl(struct oid_par_priv *poid_par_priv)  	else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)  		ulInfo = ADHOCMODE;  	else -		ulInfo = NOTASSOCIATED ; +		ulInfo = NOTASSOCIATED;  	*(u32 *)poid_par_priv->information_buf = ulInfo;  	*poid_par_priv->bytes_rw =  poid_par_priv->information_buf_len;  	return RNDIS_STATUS_SUCCESS; diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index 659615481f6..02339e10001 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 @@ -1043,9 +1043,6 @@ void r8712_got_addbareq_event_callback(struct _adapter *adapter, u8 *pbuf)  	struct	sta_priv *pstapriv = &adapter->stapriv;  	struct	recv_reorder_ctrl *precvreorder_ctrl = NULL; -	netdev_info(adapter->pnetdev, "%s: mac = %pM, seq = %d, tid = %d\n", -		    __func__, pAddbareq_pram->MacAddress, -	    pAddbareq_pram->StartSeqNum, pAddbareq_pram->tid);  	psta = r8712_get_stainfo(pstapriv, pAddbareq_pram->MacAddress);  	if (psta) {  		precvreorder_ctrl = @@ -1214,19 +1211,16 @@ sint r8712_set_auth(struct _adapter *adapter,  	struct cmd_priv	*pcmdpriv = &adapter->cmdpriv;  	struct cmd_obj *pcmd;  	struct setauth_parm *psetauthparm; -	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; -	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; @@ -1235,7 +1229,7 @@ sint r8712_set_auth(struct _adapter *adapter,  	pcmd->rspsz = 0;  	_init_listhead(&pcmd->list);  	r8712_enqueue_cmd(pcmdpriv, pcmd); -	return ret; +	return _SUCCESS;  }  sint r8712_set_key(struct _adapter *adapter, @@ -1246,16 +1240,16 @@ sint r8712_set_key(struct _adapter *adapter,  	struct cmd_obj *pcmd;  	struct setkey_parm *psetkeyparm;  	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) { -		kfree((unsigned char *)pcmd); -		return _FAIL; +		ret = _FAIL; +		goto err_free_cmd;  	} -	memset(psetkeyparm, 0, sizeof(struct setkey_parm));  	if (psecuritypriv->AuthAlgrthm == 2) { /* 802.1X */  		psetkeyparm->algorithm =  			 (u8)psecuritypriv->XGrpPrivacy; @@ -1277,23 +1271,28 @@ sint r8712_set_key(struct _adapter *adapter,  			psecuritypriv->DefKey[keyid].skey, keylen);  		break;  	case _TKIP_: -		if (keyid < 1 || keyid > 2) -			return _FAIL; +		if (keyid < 1 || keyid > 2) { +			ret = _FAIL; +			goto err_free_parm; +		}  		keylen = 16;  		memcpy(psetkeyparm->key,  			&psecuritypriv->XGrpKey[keyid - 1], keylen);  		psetkeyparm->grpkey = 1;  		break;  	case _AES_: -		if (keyid < 1 || keyid > 2) -			return _FAIL; +		if (keyid < 1 || keyid > 2) { +			ret = _FAIL; +			goto err_free_parm; +		}  		keylen = 16;  		memcpy(psetkeyparm->key,  			&psecuritypriv->XGrpKey[keyid - 1], keylen);  		psetkeyparm->grpkey = 1;  		break;  	default: -		return _FAIL; +		ret = _FAIL; +		goto err_free_parm;  	}  	pcmd->cmdcode = _SetKey_CMD_;  	pcmd->parmbuf = (u8 *)psetkeyparm; @@ -1302,7 +1301,13 @@ sint r8712_set_key(struct _adapter *adapter,  	pcmd->rspsz = 0;  	_init_listhead(&pcmd->list);  	r8712_enqueue_cmd(pcmdpriv, pcmd); -	return _SUCCESS; +	return ret; + +err_free_parm: +	kfree(psetkeyparm); +err_free_cmd: +	kfree(pcmd); +	return ret;  }  /* adjust IEs for r8712_joinbss_cmd in WMM */ @@ -1641,7 +1646,7 @@ void r8712_update_registrypriv_dev_network(struct _adapter *adapter)  	struct wlan_network	*cur_network = &adapter->mlmepriv.cur_network;  	pdev_network->Privacy = cpu_to_le32(psecuritypriv->PrivacyAlgrthm -					    > 0 ? 1 : 0) ; /* adhoc no 802.1x */ +					    > 0 ? 1 : 0); /* adhoc no 802.1x */  	pdev_network->Rssi = 0;  	switch (pregistrypriv->wireless_mode) {  	case WIRELESS_11B: @@ -1786,7 +1791,7 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len)  	psta = r8712_get_stainfo(&padapter->stapriv,  				 pcur_network->network.MacAddress);  	if (psta) { -		for (i = 0; i < 16 ; i++) { +		for (i = 0; i < 16; i++) {  			preorder_ctrl = &psta->recvreorder_ctrl[i];  			preorder_ctrl->indicate_seq = 0xffff;  			preorder_ctrl->wend_b = 0xffff; diff --git a/drivers/staging/rtl8712/rtl871x_mp.c b/drivers/staging/rtl8712/rtl871x_mp.c index 5638d5e065f..389062fe8ea 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; @@ -80,9 +81,8 @@ _exit_init_mp_priv:  static int free_mp_priv(struct mp_priv *pmp_priv)  { -	int res = 0;  	kfree(pmp_priv->pallocated_mp_xmitframe_buf); -	return res; +	return 0;  }  void mp871xinit(struct _adapter *padapter) @@ -110,7 +110,7 @@ static u32 fw_iocmd_read(struct _adapter *pAdapter, struct IOCMD_STRUCT iocmd)  	u16 iocmd_value	= iocmd.value;  	u8 iocmd_idx	= iocmd.index; -	cmd32 = (iocmd_class << 24) | (iocmd_value << 8) | iocmd_idx ; +	cmd32 = (iocmd_class << 24) | (iocmd_value << 8) | iocmd_idx;  	if (r8712_fw_cmd(pAdapter, cmd32))  		r8712_fw_cmd_data(pAdapter, &val32, 1);  	else @@ -128,7 +128,7 @@ static u8 fw_iocmd_write(struct _adapter *pAdapter,  	r8712_fw_cmd_data(pAdapter, &value, 0);  	msleep(100); -	cmd32 = (iocmd_class << 24) | (iocmd_value << 8) | iocmd_idx ; +	cmd32 = (iocmd_class << 24) | (iocmd_value << 8) | iocmd_idx;  	return r8712_fw_cmd(pAdapter, cmd32);  } @@ -189,8 +189,8 @@ u32 r8712_rf_reg_read(struct _adapter *pAdapter, u8 path, u8 offset)  	u32 rf_data;  	struct IOCMD_STRUCT iocmd; -	iocmd.cmdclass	= IOCMD_CLASS_BB_RF ; -	iocmd.value	= rf_addr ; +	iocmd.cmdclass	= IOCMD_CLASS_BB_RF; +	iocmd.value	= rf_addr;  	iocmd.index	= IOCMD_RF_READ_IDX;  	rf_data = fw_iocmd_read(pAdapter, iocmd);  	return rf_data; @@ -281,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_mp_ioctl.c b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c index 5bd42966fd5..9827ff8143b 100644 --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c @@ -66,7 +66,6 @@ uint oid_rt_wireless_mode_hdl(struct oid_par_priv *poid_par_priv)  uint oid_rt_pro_write_bb_reg_hdl(struct oid_par_priv *poid_par_priv)  { -	uint status = RNDIS_STATUS_SUCCESS;  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context);  	struct bb_reg_param *pbbreg; @@ -83,12 +82,11 @@ uint oid_rt_pro_write_bb_reg_hdl(struct oid_par_priv *poid_par_priv)  		offset |= BB_REG_BASE_ADDR;  	value = pbbreg->value;  	r8712_bb_reg_write(Adapter, offset, value); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_read_bb_reg_hdl(struct oid_par_priv *poid_par_priv)  { -	uint status = RNDIS_STATUS_SUCCESS;  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context);  	struct bb_reg_param *pbbreg; @@ -106,12 +104,11 @@ uint oid_rt_pro_read_bb_reg_hdl(struct oid_par_priv *poid_par_priv)  	value = r8712_bb_reg_read(Adapter, offset);  	pbbreg->value = value;  	*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_write_rf_reg_hdl(struct oid_par_priv *poid_par_priv)  { -	uint status = RNDIS_STATUS_SUCCESS;  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context);  	struct rf_reg_param *pbbreg; @@ -130,14 +127,13 @@ uint oid_rt_pro_write_rf_reg_hdl(struct oid_par_priv *poid_par_priv)  	offset = (u8)pbbreg->offset;  	value = pbbreg->value;  	r8712_rf_reg_write(Adapter, path, offset, value); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_read_rf_reg_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	struct rf_reg_param *pbbreg;  	u8 path;  	u8 offset; @@ -155,7 +151,7 @@ uint oid_rt_pro_read_rf_reg_hdl(struct oid_par_priv *poid_par_priv)  	value = r8712_rf_reg_read(Adapter, path, offset);  	pbbreg->value = value;  	*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; -	return status; +	return RNDIS_STATUS_SUCCESS;  }  /*This function initializes the DUT to the MP test mode*/ @@ -266,7 +262,6 @@ uint oid_rt_pro_set_data_rate_hdl(struct oid_par_priv  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	u32 ratevalue;  	if (poid_par_priv->type_of_oid != SET_OID) @@ -278,7 +273,7 @@ uint oid_rt_pro_set_data_rate_hdl(struct oid_par_priv  		return RNDIS_STATUS_INVALID_DATA;  	Adapter->mppriv.curr_rateidx = ratevalue;  	r8712_SetDataRate(Adapter); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_start_test_hdl(struct oid_par_priv *poid_par_priv) @@ -328,7 +323,6 @@ uint oid_rt_pro_set_channel_direct_call_hdl(struct oid_par_priv  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	u32		Channel;  	if (poid_par_priv->type_of_oid != SET_OID) @@ -340,14 +334,13 @@ uint oid_rt_pro_set_channel_direct_call_hdl(struct oid_par_priv  		return RNDIS_STATUS_NOT_ACCEPTED;  	Adapter->mppriv.curr_ch = Channel;  	r8712_SetChannel(Adapter); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_set_antenna_bb_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	u32 antenna;  	if (poid_par_priv->type_of_oid != SET_OID) @@ -358,7 +351,7 @@ uint oid_rt_pro_set_antenna_bb_hdl(struct oid_par_priv *poid_par_priv)  	Adapter->mppriv.antenna_tx = (u16)((antenna & 0xFFFF0000) >> 16);  	Adapter->mppriv.antenna_rx = (u16)(antenna & 0x0000FFFF);  	r8712_SwitchAntenna(Adapter); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_set_tx_power_control_hdl( @@ -366,7 +359,6 @@ uint oid_rt_pro_set_tx_power_control_hdl(  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	u32 tx_pwr_idx;  	if (poid_par_priv->type_of_oid != SET_OID) @@ -378,7 +370,7 @@ uint oid_rt_pro_set_tx_power_control_hdl(  		return RNDIS_STATUS_NOT_ACCEPTED;  	Adapter->mppriv.curr_txpoweridx = (u8)tx_pwr_idx;  	r8712_SetTxPower(Adapter); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_query_tx_packet_sent_hdl( @@ -839,7 +831,6 @@ uint oid_rt_poll_rx_status_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	if (poid_par_priv->type_of_oid != QUERY_OID)  		return RNDIS_STATUS_NOT_ACCEPTED; @@ -847,7 +838,7 @@ uint oid_rt_poll_rx_status_hdl(struct oid_par_priv *poid_par_priv)  		(unsigned char *)&Adapter->mppriv.rxstat,  		sizeof(struct recv_stat));  	*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_cfg_debug_message_hdl(struct oid_par_priv @@ -875,7 +866,6 @@ uint oid_rt_get_thermal_meter_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	if (poid_par_priv->type_of_oid != QUERY_OID)  		return RNDIS_STATUS_NOT_ACCEPTED; @@ -897,7 +887,7 @@ uint oid_rt_get_thermal_meter_hdl(struct oid_par_priv *poid_par_priv)  	*(u32 *)poid_par_priv->information_buf =  				 Adapter->mppriv.workparam.io_value;  	*poid_par_priv->bytes_rw = sizeof(u32); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_set_power_tracking_hdl(struct oid_par_priv @@ -1091,7 +1081,6 @@ uint oid_rt_pro_dele_sta_info_hdl(struct oid_par_priv *poid_par_priv)  				   (poid_par_priv->adapter_context);  	unsigned long			irqL; -	uint status = RNDIS_STATUS_SUCCESS;  	struct sta_info		*psta = NULL;  	u8			*macaddr; @@ -1113,7 +1102,7 @@ uint oid_rt_pro_dele_sta_info_hdl(struct oid_par_priv *poid_par_priv)  		spin_unlock_irqrestore(&(Adapter->stapriv.sta_hash_lock), irqL);  	} -	return status; +	return RNDIS_STATUS_SUCCESS;  }  /*--------------------------------------------------------------------------*/  static u32 mp_query_drv_var(struct _adapter *padapter, u8 offset, u32 var) @@ -1126,8 +1115,6 @@ uint oid_rt_pro_query_dr_variable_hdl(struct oid_par_priv *poid_par_priv)  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS; -  	struct DR_VARIABLE_STRUCT *pdrv_var;  	if (poid_par_priv->type_of_oid != QUERY_OID) @@ -1139,7 +1126,7 @@ uint oid_rt_pro_query_dr_variable_hdl(struct oid_par_priv *poid_par_priv)  	pdrv_var->variable = mp_query_drv_var(Adapter, pdrv_var->offset,  					      pdrv_var->variable);  	*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; -	return status; +	return RNDIS_STATUS_SUCCESS;  }  /*--------------------------------------------------------------------------*/ @@ -1243,7 +1230,6 @@ uint oid_rt_get_efuse_current_size_hdl(struct oid_par_priv  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	if (poid_par_priv->type_of_oid != QUERY_OID)  		return RNDIS_STATUS_NOT_ACCEPTED; @@ -1254,14 +1240,13 @@ uint oid_rt_get_efuse_current_size_hdl(struct oid_par_priv  				 r8712_efuse_get_current_size(Adapter);  	r8712_efuse_reg_uninit(Adapter);  	*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_get_efuse_max_size_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	if (poid_par_priv->type_of_oid != QUERY_OID)  		return RNDIS_STATUS_NOT_ACCEPTED; @@ -1270,7 +1255,7 @@ uint oid_rt_get_efuse_max_size_hdl(struct oid_par_priv *poid_par_priv)  	*(int *)poid_par_priv->information_buf =  					 r8712_efuse_get_max_size(Adapter);  	*poid_par_priv->bytes_rw = poid_par_priv->information_buf_len; -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_pro_efuse_hdl(struct oid_par_priv *poid_par_priv) @@ -1320,7 +1305,6 @@ uint oid_rt_set_bandwidth_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	u32		bandwidth;  	if (poid_par_priv->type_of_oid != SET_OID) @@ -1332,14 +1316,13 @@ uint oid_rt_set_bandwidth_hdl(struct oid_par_priv *poid_par_priv)  		bandwidth = HT_CHANNEL_WIDTH_40;  	Adapter->mppriv.curr_bandwidth = (u8)bandwidth;  	r8712_SwitchBandwidth(Adapter); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_set_crystal_cap_hdl(struct oid_par_priv *poid_par_priv)  {  	struct _adapter *Adapter = (struct _adapter *)  				   (poid_par_priv->adapter_context); -	uint status = RNDIS_STATUS_SUCCESS;  	u32		crystal_cap = 0;  	if (poid_par_priv->type_of_oid != SET_OID) @@ -1351,7 +1334,7 @@ uint oid_rt_set_crystal_cap_hdl(struct oid_par_priv *poid_par_priv)  		return RNDIS_STATUS_NOT_ACCEPTED;  	Adapter->mppriv.curr_crystalcap = crystal_cap;  	r8712_SetCrystalCap(Adapter); -	return status; +	return RNDIS_STATUS_SUCCESS;  }  uint oid_rt_set_rx_packet_type_hdl(struct oid_par_priv diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index 23ec684b60e..eb775872c93 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); @@ -254,7 +254,7 @@ union recv_frame *r8712_portctrl(struct _adapter *adapter,  	struct sta_info *psta;  	struct	sta_priv *pstapriv;  	union recv_frame *prtnframe; -	u16 ether_type = 0; +	u16 ether_type;  	pstapriv = &adapter->stapriv;  	ptr = get_recvframe_data(precv_frame); @@ -263,15 +263,14 @@ union recv_frame *r8712_portctrl(struct _adapter *adapter,  	psta = r8712_get_stainfo(pstapriv, psta_addr);  	auth_alg = adapter->securitypriv.AuthAlgrthm;  	if (auth_alg == 2) { +		/* get ether_type */ +		ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE; +		memcpy(ðer_type, ptr, 2); +		ether_type = ntohs((unsigned short)ether_type); +  		if ((psta != NULL) && (psta->ieee8021x_blocked)) {  			/* blocked  			 * only accept EAPOL frame */ -			prtnframe = precv_frame; -			/*get ether_type */ -			ptr = ptr + pfhdr->attrib.hdrlen + -			      pfhdr->attrib.iv_len + LLC_HEADER_SIZE; -			memcpy(ðer_type, ptr, 2); -			ether_type = ntohs((unsigned short)ether_type);  			if (ether_type == 0x888e)  				prtnframe = precv_frame;  			else { @@ -606,8 +605,6 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe)  	u8	bsnaphdr;  	u8	*psnap_type;  	struct ieee80211_snap_hdr *psnap; - -	sint ret = _SUCCESS;  	struct _adapter	*adapter = precvframe->u.hdr.adapter;  	struct mlme_priv *pmlmepriv = &adapter->mlmepriv; @@ -654,7 +651,7 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe)  		len = htons(len);  		memcpy(ptr + 12, &len, 2);  	} -	return ret; +	return _SUCCESS;  }  s32 r8712_recv_entry(union recv_frame *precvframe) diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index e33fd6db246..0912f52def9 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -31,7 +31,6 @@  #include <linux/compiler.h>  #include <linux/kernel.h>  #include <linux/errno.h> -#include <linux/init.h>  #include <linux/slab.h>  #include <linux/module.h>  #include <linux/kref.h> @@ -273,6 +272,7 @@ static void secmicputuint32(u8 *p, u32 val)  /* Convert from Us4Byte32 to Byte[] in a portable way */  {  	long i; +  	for (i = 0; i < 4; i++) {  		*p++ = (u8) (val & 0xff);  		val >>= 8; @@ -766,6 +766,7 @@ static void xor_128(u8 *a, u8 *b, u8 *out)  static void xor_32(u8 *a, u8 *b, u8 *out)  {  	sint i; +  	for (i = 0; i < 4; i++)  		out[i] = a[i] ^ b[i];  } @@ -799,6 +800,7 @@ static void next_key(u8 *key, sint round)  static void byte_sub(u8 *in, u8 *out)  {  	sint i; +  	for (i = 0; i < 16; i++)  		out[i] = sbox(in[i]);  } @@ -835,7 +837,7 @@ static void mix_column(u8 *in, u8 *out)  	u8 temp[4];  	u8 tempb[4]; -	for (i = 0 ; i < 4; i++) { +	for (i = 0; i < 4; i++) {  		if ((in[i] & 0x80) == 0x80)  			add1b[i] = 0x1b;  		else @@ -1165,7 +1167,7 @@ u32 r8712_aes_encrypt(struct _adapter *padapter, u8 *pxmitframe)  		return _FAIL;  	pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + TXDESC_OFFSET;  	/* 4 start to encrypt each fragment */ -	if ((pattrib->encrypt == _AES_)) { +	if (pattrib->encrypt == _AES_) {  		if (pattrib->psta)  			stainfo = pattrib->psta;  		else @@ -1176,7 +1178,7 @@ u32 r8712_aes_encrypt(struct _adapter *padapter, u8 *pxmitframe)  			prwskeylen = 16;  			for (curfragnum = 0; curfragnum < pattrib->nr_frags;  			     curfragnum++) { -				if ((curfragnum + 1) == pattrib->nr_frags) {\ +				if ((curfragnum + 1) == pattrib->nr_frags) {  					length = pattrib->last_txcmdsz -  						 pattrib->hdrlen -  						 pattrib->iv_len - @@ -1187,7 +1189,7 @@ u32 r8712_aes_encrypt(struct _adapter *padapter, u8 *pxmitframe)  					length = pxmitpriv->frag_len -  						 pattrib->hdrlen -  						 pattrib->iv_len - -						 pattrib->icv_len ; +						 pattrib->icv_len;  					aes_cipher(prwskey, pattrib->  						   hdrlen, pframe, length);  					pframe += pxmitpriv->frag_len; @@ -1245,17 +1247,18 @@ static sint aes_decipher(u8 *key, uint	hdrlen,  	    (frtype == WIFI_DATA_CFPOLL) ||  	    (frtype == WIFI_DATA_CFACKPOLL)) {  		qc_exists = 1; -		if (hdrlen !=  WLAN_HDR_A3_QOS_LEN) +		if (hdrlen != WLAN_HDR_A3_QOS_LEN)  			hdrlen += 2; -		}  else if ((frsubtype == 0x08) || +	} else if ((frsubtype == 0x08) ||  		   (frsubtype == 0x09) ||  		   (frsubtype == 0x0a) ||  		   (frsubtype == 0x0b)) { -			if (hdrlen !=  WLAN_HDR_A3_QOS_LEN) -				hdrlen += 2; -			qc_exists = 1; -	} else +		if (hdrlen != WLAN_HDR_A3_QOS_LEN) +			hdrlen += 2; +		qc_exists = 1; +	} else {  		qc_exists = 0; +	}  	/* now, decrypt pframe with hdrlen offset and plen long */  	payload_index = hdrlen + 8; /* 8 is for extiv */  	for (i = 0; i < num_blocks; i++) { @@ -1315,7 +1318,7 @@ static sint aes_decipher(u8 *key, uint	hdrlen,  		bitwise_xor(aes_out, padded_buffer, chain_buffer);  		aes128k128d(key, chain_buffer, aes_out);  	} -	for (j = 0 ; j < 8; j++) +	for (j = 0; j < 8; j++)  		mic[j] = aes_out[j];  	/* Insert MIC into payload */  	for (j = 0; j < 8; j++) @@ -1371,7 +1374,7 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe)  	pframe = (unsigned char *)((union recv_frame *)precvframe)->  		 u.hdr.rx_data;  	/* 4 start to encrypt each fragment */ -	if ((prxattrib->encrypt == _AES_)) { +	if (prxattrib->encrypt == _AES_) {  		stainfo = r8712_get_stainfo(&padapter->stapriv,  					    &prxattrib->ta[0]);  		if (stainfo != NULL) { diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c index 1247b3d9719..6c649842abd 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 - @@ -138,7 +138,7 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)  		}  		phash_list = &(pstapriv->sta_hash[index]);  		list_insert_tail(&psta->hash_list, phash_list); -		pstapriv->asoc_sta_count++ ; +		pstapriv->asoc_sta_count++;  /* For the SMC router, the sequence number of first packet of WPS handshake   * will be 0. In this case, this packet will be dropped by recv_decache function @@ -149,7 +149,7 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)  			memcpy(&psta->sta_recvpriv.rxcache.tid_rxseq[i],  				&wRxSeqInitialValue, 2);  		/* for A-MPDU Rx reordering buffer control */ -		for (i = 0; i < 16 ; i++) { +		for (i = 0; i < 16; i++) {  			preorder_ctrl = &psta->recvreorder_ctrl[i];  			preorder_ctrl->padapter = pstapriv->padapter;  			preorder_ctrl->indicate_seq = 0xffff; diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index 78f570b571a..230681a8042 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_intf.c b/drivers/staging/rtl8712/usb_intf.c index c812d6c7dc3..ba743542bab 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -353,10 +353,9 @@ static void disable_ht_for_spec_devid(const struct usb_device_id *pdid,  	}  } -static u8 key_2char2num(u8 hch, u8 lch) -{ -	return (hex_to_bin(hch) << 4) | hex_to_bin(lch); -} +static const struct device_type wlan_type = { +	.name = "wlan", +};  /*   * drv_init() - a device potentially for us @@ -393,6 +392,7 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf,  	padapter->pusb_intf = pusb_intf;  	usb_set_intfdata(pusb_intf, pnetdev);  	SET_NETDEV_DEV(pnetdev, &pusb_intf->dev); +	pnetdev->dev.type = &wlan_type;  	/* step 2. */  	padapter->dvobj_init = &r8712_usb_dvobj_init;  	padapter->dvobj_deinit = &r8712_usb_dvobj_deinit; @@ -465,16 +465,7 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf,  				r8712_efuse_pg_packet_read(padapter, offset,  						     &pdata[i]); -			if (r8712_initmac) { -				/* Users specify the mac address */ -				int jj, kk; - -				for (jj = 0, kk = 0; jj < ETH_ALEN; -				     jj++, kk += 3) -					mac[jj] = -					   key_2char2num(r8712_initmac[kk], -					   r8712_initmac[kk + 1]); -			} else { +			if (!r8712_initmac || !mac_pton(r8712_initmac, mac)) {  				/* Use the mac address stored in the Efuse  				 * offset = 0x12 for usb in efuse  				 */ @@ -604,7 +595,7 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf,  error:  	usb_put_dev(udev);  	usb_set_intfdata(pusb_intf, NULL); -	if (padapter->dvobj_deinit != NULL) +	if (padapter && padapter->dvobj_deinit != NULL)  		padapter->dvobj_deinit(padapter);  	if (pnetdev)  		free_netdev(pnetdev); diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index dca398a0656..a6c2aab0a94 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -495,11 +495,11 @@ 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__); -		return -1; +		return -ENOMEM;  	}  	pIo_buf = palloc_buf + 16 - ((addr_t)(palloc_buf) & 0x0f);  	if (requesttype == 0x01) { diff --git a/drivers/staging/rtl8712/xmit_linux.c b/drivers/staging/rtl8712/xmit_linux.c index 4d22bb7008f..0ac9130faf6 100644 --- a/drivers/staging/rtl8712/xmit_linux.c +++ b/drivers/staging/rtl8712/xmit_linux.c @@ -51,7 +51,7 @@ void _r8712_open_pktfile(_pkt *pktptr, struct pkt_file *pfile)  	pfile->pkt = pktptr;  	pfile->cur_addr = pfile->buf_start = pktptr->data;  	pfile->pkt_len = pfile->buf_len = pktptr->len; -	pfile->cur_buffer = pfile->buf_start ; +	pfile->cur_buffer = pfile->buf_start;  }  uint _r8712_pktfile_read(struct pkt_file *pfile, u8 *rmem, uint rlen)  | 
