diff options
Diffstat (limited to 'drivers/staging/rtl8712')
-rw-r--r-- | drivers/staging/rtl8712/hal_init.c | 7 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl8712_cmd.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl8712_io.c | 15 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl8712_recv.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl8712_xmit.c | 3 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_io.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_io.h | 3 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_ioctl.h | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 16 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_mlme.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_mp.c | 16 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_mp.h | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_pwrctrl.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_recv.c | 6 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_security.c | 1 | ||||
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_xmit.c | 10 | ||||
-rw-r--r-- | drivers/staging/rtl8712/usb_intf.c | 7 | ||||
-rw-r--r-- | drivers/staging/rtl8712/usb_ops_linux.c | 9 |
18 files changed, 60 insertions, 51 deletions
diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 0556de3b8904..1d6ade05fa18 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c @@ -49,6 +49,7 @@ static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context) if (!firmware) { struct usb_device *udev = padapter->dvobjpriv.pusbdev; struct usb_interface *pusb_intf = padapter->pusb_intf; + dev_err(&udev->dev, "r8712u: Firmware request failed\n"); usb_put_dev(udev); usb_set_intfdata(pusb_intf, NULL); @@ -388,10 +389,8 @@ uint rtl871x_hal_init(struct _adapter *padapter) padapter->hw_init_completed = false; if (padapter->halpriv.hal_bus_init == NULL) return _FAIL; - else { - if (padapter->halpriv.hal_bus_init(padapter) != _SUCCESS) - return _FAIL; - } + if (padapter->halpriv.hal_bus_init(padapter) != _SUCCESS) + return _FAIL; if (rtl8712_hal_init(padapter) == _SUCCESS) padapter->hw_init_completed = true; else { diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index ab0c7eb248d3..720e8a15db96 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -350,6 +350,7 @@ _next: struct dvobj_priv *pdvobj = (struct dvobj_priv *) &padapter->dvobjpriv; u8 blnPending = 0; + pcmdpriv->cmd_issued_cnt++; cmdsz = round_up(pcmd->cmdsz, 8); wr_sz = TXDESC_SIZE + 8 + cmdsz; @@ -468,7 +469,8 @@ void r8712_event_handle(struct _adapter *padapter, uint *peventbuf) pevt_priv->event_seq++; /* update evt_seq */ if (pevt_priv->event_seq > 127) pevt_priv->event_seq = 0; - peventbuf = peventbuf + 2; /* move to event content, 8 bytes alignment */ + /* move to event content, 8 bytes alignment */ + peventbuf = peventbuf + 2; event_callback = wlanevents[evt_code].event_callback; if (event_callback) event_callback(padapter, (u8 *)peventbuf); diff --git a/drivers/staging/rtl8712/rtl8712_io.c b/drivers/staging/rtl8712/rtl8712_io.c index c7346008def0..921fcffb3065 100644 --- a/drivers/staging/rtl8712/rtl8712_io.c +++ b/drivers/staging/rtl8712/rtl8712_io.c @@ -39,11 +39,9 @@ u8 r8712_read8(struct _adapter *adapter, u32 addr) struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u8 (*_read8)(struct intf_hdl *pintfhdl, u32 addr); - u8 r_val; _read8 = pintfhdl->io_ops._read8; - r_val = _read8(pintfhdl, addr); - return r_val; + return _read8(pintfhdl, addr); } u16 r8712_read16(struct _adapter *adapter, u32 addr) @@ -51,11 +49,9 @@ u16 r8712_read16(struct _adapter *adapter, u32 addr) struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u16 (*_read16)(struct intf_hdl *pintfhdl, u32 addr); - u16 r_val; _read16 = pintfhdl->io_ops._read16; - r_val = _read16(pintfhdl, addr); - return r_val; + return _read16(pintfhdl, addr); } u32 r8712_read32(struct _adapter *adapter, u32 addr) @@ -63,11 +59,9 @@ u32 r8712_read32(struct _adapter *adapter, u32 addr) struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); u32 (*_read32)(struct intf_hdl *pintfhdl, u32 addr); - u32 r_val; _read32 = pintfhdl->io_ops._read32; - r_val = _read32(pintfhdl, addr); - return r_val; + return _read32(pintfhdl, addr); } void r8712_write8(struct _adapter *adapter, u32 addr, u8 val) @@ -84,8 +78,8 @@ void r8712_write16(struct _adapter *adapter, u32 addr, u16 val) { struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; struct intf_hdl *pintfhdl = &(pio_queue->intf); - void (*_write16)(struct intf_hdl *pintfhdl, u32 addr, u16 val); + _write16 = pintfhdl->io_ops._write16; _write16(pintfhdl, addr, val); } @@ -96,6 +90,7 @@ void r8712_write32(struct _adapter *adapter, u32 addr, u32 val) struct intf_hdl *pintfhdl = (struct intf_hdl *)(&(pio_queue->intf)); void (*_write32)(struct intf_hdl *pintfhdl, u32 addr, u32 val); + _write32 = pintfhdl->io_ops._write32; _write32(pintfhdl, addr, val); } diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index df1e498e98b6..b27806209268 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c @@ -974,7 +974,7 @@ int recv_func(struct _adapter *padapter, void *pcontext) prframe = (union recv_frame *)pcontext; orig_prframe = prframe; pattrib = &prframe->u.hdr.attrib; - if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { if (pattrib->crc_err == 1) padapter->mppriv.rx_crcerrpktcount++; else diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 4ebedb4005cf..a3093ac1204b 100644 --- a/drivers/staging/rtl8712/rtl8712_xmit.c +++ b/drivers/staging/rtl8712/rtl8712_xmit.c @@ -324,6 +324,7 @@ u8 r8712_append_mpdu_unit(struct xmit_buf *pxmitbuf, padding_sz = (8 - (last_txcmdsz % 8)); if ((last_txcmdsz % 8) != 0) { int i; + for (i = 0; i < padding_sz; i++) *(pxmitframe->buf_addr+TXDESC_SIZE+last_txcmdsz+i) = 0; } @@ -554,6 +555,7 @@ static void update_txdesc(struct xmit_frame *pxmitframe, uint *pmem, int sz) } if (pattrib->pctrl == 1) { /* mp tx packets */ struct tx_desc *ptxdesc_mp; + ptxdesc_mp = &txdesc_mp; /* offset 8 */ ptxdesc->txdw2 = cpu_to_le32(ptxdesc_mp->txdw2); @@ -655,6 +657,7 @@ int r8712_xmitframe_complete(struct _adapter *padapter, r8712_xmitframe_aggr_1st(pxmitbuf, pxmitframe); if (p2ndxmitframe != NULL) { u16 total_length; + total_length = r8712_xmitframe_aggr_next( pxmitbuf, p2ndxmitframe); do { diff --git a/drivers/staging/rtl8712/rtl871x_io.c b/drivers/staging/rtl8712/rtl871x_io.c index 8858687e87fe..d7b63aedead7 100644 --- a/drivers/staging/rtl8712/rtl871x_io.c +++ b/drivers/staging/rtl8712/rtl871x_io.c @@ -120,8 +120,8 @@ uint r8712_alloc_io_queue(struct _adapter *adapter) INIT_LIST_HEAD(&pio_queue->pending); spin_lock_init(&pio_queue->lock); pio_queue->pallocated_free_ioreqs_buf = kmalloc(NUM_IOREQ * - (sizeof(struct io_req)) + 4, - GFP_ATOMIC); + (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_io.h b/drivers/staging/rtl8712/rtl871x_io.h index dc23395fec3b..070cc03ce374 100644 --- a/drivers/staging/rtl8712/rtl871x_io.h +++ b/drivers/staging/rtl8712/rtl871x_io.h @@ -166,7 +166,7 @@ struct reg_protocol_rd { u32 Byte4Access:1; u32 Byte2Access:1; u32 Byte1Access:1; - u32 BurstMode:1 ; + u32 BurstMode:1; u32 FixOrContinuous:1; u32 Reserved4:16; /*DW3*/ @@ -235,6 +235,7 @@ struct io_queue { static inline u32 _RND4(u32 sz) { u32 val; + val = ((sz >> 2) + ((sz & 3) ? 1 : 0)) << 2; return val; } diff --git a/drivers/staging/rtl8712/rtl871x_ioctl.h b/drivers/staging/rtl8712/rtl871x_ioctl.h index 20168028d39d..8e6ef5d49fbf 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl.h +++ b/drivers/staging/rtl8712/rtl871x_ioctl.h @@ -69,7 +69,7 @@ struct oid_par_priv { struct oid_obj_priv { unsigned char dbg; /* 0: without OID debug message * 1: with OID debug message */ - uint(*oidfuns)(struct oid_par_priv *poid_par_priv); + uint (*oidfuns)(struct oid_par_priv *poid_par_priv); }; uint oid_null_function(struct oid_par_priv *poid_par_priv); diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index e1e95cf48302..8e42ce06e5d7 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -241,6 +241,7 @@ static inline char *translate_scan(struct _adapter *padapter, { /* check legal index */ u8 dsconfig = pnetwork->network.Configuration.DSConfig; + if (dsconfig >= 1 && dsconfig <= sizeof( ieee80211_wlan_frequencies) / sizeof(long)) iwe.u.freq.m = (s32)(ieee80211_wlan_frequencies[ @@ -287,6 +288,7 @@ static inline char *translate_scan(struct _adapter *padapter, u16 wpa_len = 0, rsn_len = 0; int n; sint out_len = 0; + out_len = r8712_get_sec_ie(pnetwork->network.IEs, pnetwork->network. IELength, rsn_ie, &rsn_len, @@ -425,8 +427,8 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, if (wep_key_len > 0) { wep_key_len = wep_key_len <= 5 ? 5 : 13; pwep = kmalloc((u32)(wep_key_len + - FIELD_OFFSET(struct NDIS_802_11_WEP, KeyMaterial)), - GFP_ATOMIC); + FIELD_OFFSET(struct NDIS_802_11_WEP, + KeyMaterial)), GFP_ATOMIC); if (pwep == NULL) return -ENOMEM; memset(pwep, 0, sizeof(struct NDIS_802_11_WEP)); @@ -697,6 +699,7 @@ static int r8711_wx_set_freq(struct net_device *dev, (fwrq->m <= (int) 2.487e8)) { int f = fwrq->m / 100000; int c = 0; + while ((c < 14) && (f != frequency_list[c])) c++; fwrq->e = 0; @@ -707,6 +710,7 @@ static int r8711_wx_set_freq(struct net_device *dev, rc = -EOPNOTSUPP; else { int channel = fwrq->m; + if ((channel < 1) || (channel > 14)) rc = -EINVAL; else { @@ -999,12 +1003,14 @@ static int r871x_wx_set_priv(struct net_device *dev, /*Set scan type to active */ /*OK if successful */ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + pmlmepriv->passive_mode = 1; sprintf(ext, "OK"); } else if (0 == strcasecmp(ext, "SCAN-PASSIVE")) { /*Set scan type to passive */ /*OK if successful */ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + pmlmepriv->passive_mode = 0; sprintf(ext, "OK"); } else if (0 == strncmp(ext, "DCE-E", 5)) { @@ -1179,10 +1185,12 @@ static int r8711_wx_set_scan(struct net_device *dev, return 0; if (wrqu->data.length == sizeof(struct iw_scan_req)) { struct iw_scan_req *req = (struct iw_scan_req *)extra; + if (wrqu->data.flags & IW_SCAN_THIS_ESSID) { struct ndis_802_11_ssid ssid; unsigned long irqL; u32 len = min_t(u8, req->essid_len, IW_ESSID_MAX_SIZE); + memset((unsigned char *)&ssid, 0, sizeof(struct ndis_802_11_ssid)); memcpy(ssid.Ssid, req->essid, len); @@ -1563,7 +1571,8 @@ static int r8711_wx_set_enc(struct net_device *dev, authmode = Ndis802_11AuthModeOpen; padapter->securitypriv.ndisauthtype = authmode; } else if (erq->flags & IW_ENCODE_RESTRICTED) { - netdev_info(dev, "r8712u: %s: IW_ENCODE_RESTRICTED\n", __func__); + netdev_info(dev, + "r8712u: %s: IW_ENCODE_RESTRICTED\n", __func__); padapter->securitypriv.ndisencryptstatus = Ndis802_11Encryption1Enabled; padapter->securitypriv.AuthAlgrthm = 1; /* shared system */ @@ -2144,7 +2153,6 @@ static int wpa_set_param(struct net_device *dev, u8 name, u32 value) break; case IEEE_PARAM_AUTH_ALGS: return wpa_set_auth_algs(dev, value); - break; case IEEE_PARAM_IEEE_802_1X: break; case IEEE_PARAM_WPAX_SELECT: diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index 7b7fdec58b38..00f2e0fc4ac5 100644 --- a/drivers/staging/rtl8712/rtl871x_mlme.c +++ b/drivers/staging/rtl8712/rtl871x_mlme.c @@ -590,7 +590,7 @@ void r8712_surveydone_event_callback(struct _adapter *adapter, u8 *pbuf) } if (pmlmepriv->to_join == true) { - if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) { if (check_fwstate(pmlmepriv, _FW_LINKED) == false) { set_fwstate(pmlmepriv, _FW_UNDER_LINKING); diff --git a/drivers/staging/rtl8712/rtl871x_mp.c b/drivers/staging/rtl8712/rtl871x_mp.c index aae77f0ea98f..2ec660ad78af 100644 --- a/drivers/staging/rtl8712/rtl871x_mp.c +++ b/drivers/staging/rtl8712/rtl871x_mp.c @@ -54,8 +54,8 @@ static int init_mp_priv(struct mp_priv *pmp_priv) _init_queue(&pmp_priv->free_mp_xmitqueue); pmp_priv->pallocated_mp_xmitframe_buf = NULL; pmp_priv->pallocated_mp_xmitframe_buf = kmalloc(NR_MP_XMITFRAME * - sizeof(struct mp_xmit_frame) + 4, - GFP_ATOMIC); + sizeof(struct mp_xmit_frame) + 4, + GFP_ATOMIC); if (pmp_priv->pallocated_mp_xmitframe_buf == NULL) { res = _FAIL; goto _exit_init_mp_priv; @@ -146,6 +146,7 @@ u32 r8712_bb_reg_read(struct _adapter *pAdapter, u16 offset) bb_val = fw_iocmd_read(pAdapter, iocmd); if (shift != 0) { u32 bb_val2 = 0; + bb_val >>= (shift * 8); iocmd.value += 4; bb_val2 = fw_iocmd_read(pAdapter, iocmd); @@ -186,14 +187,12 @@ u8 r8712_bb_reg_write(struct _adapter *pAdapter, u16 offset, u32 value) u32 r8712_rf_reg_read(struct _adapter *pAdapter, u8 path, u8 offset) { u16 rf_addr = (path << 8) | offset; - u32 rf_data; struct IOCMD_STRUCT iocmd; 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; + return fw_iocmd_read(pAdapter, iocmd); } u8 r8712_rf_reg_write(struct _adapter *pAdapter, u8 path, u8 offset, u32 value) @@ -318,6 +317,7 @@ static void SetOFDMTxPower(struct _adapter *pAdapter, u8 TxPower) void r8712_SetTxPower(struct _adapter *pAdapter) { u8 TxPower = pAdapter->mppriv.curr_txpoweridx; + SetCCKTxPower(pAdapter, TxPower); SetOFDMTxPower(pAdapter, TxPower); } @@ -504,11 +504,8 @@ static void TriggerRFThermalMeter(struct _adapter *pAdapter) static u32 ReadRFThermalMeter(struct _adapter *pAdapter) { - u32 ThermalValue = 0; - /* 0x24: RF Reg[4:0] */ - ThermalValue = get_rf_reg(pAdapter, RF_PATH_A, RF_T_METER, 0x1F); - return ThermalValue; + return get_rf_reg(pAdapter, RF_PATH_A, RF_T_METER, 0x1F); } void r8712_GetThermalMeter(struct _adapter *pAdapter, u32 *value) @@ -549,6 +546,7 @@ void r8712_SetSingleCarrierTx(struct _adapter *pAdapter, u8 bStart) void r8712_SetSingleToneTx(struct _adapter *pAdapter, u8 bStart) { u8 rfPath = pAdapter->mppriv.curr_rfpath; + switch (pAdapter->mppriv.antenna_tx) { case ANTENNA_B: rfPath = RF_PATH_B; diff --git a/drivers/staging/rtl8712/rtl871x_mp.h b/drivers/staging/rtl8712/rtl871x_mp.h index 51395d1a3c7e..75893f225dc0 100644 --- a/drivers/staging/rtl8712/rtl871x_mp.h +++ b/drivers/staging/rtl8712/rtl871x_mp.h @@ -208,7 +208,7 @@ enum POWER_MODE { #define RX_PKT_DEST_ADDR 2 #define RX_PKT_PHY_MATCH 3 -#define RPTMaxCount 0x000FFFFF; +#define RPTMaxCount 0x000FFFFF /* parameter 1 : BitMask * bit 0 : OFDM PPDU diff --git a/drivers/staging/rtl8712/rtl871x_pwrctrl.c b/drivers/staging/rtl8712/rtl871x_pwrctrl.c index 89ce527940fe..51dcf5555b62 100644 --- a/drivers/staging/rtl8712/rtl871x_pwrctrl.c +++ b/drivers/staging/rtl8712/rtl871x_pwrctrl.c @@ -157,6 +157,7 @@ static void rpwm_workitem_callback(struct work_struct *work) struct _adapter *padapter = container_of(pwrpriv, struct _adapter, pwrctrlpriv); u8 cpwm = pwrpriv->cpwm; + if (pwrpriv->cpwm != pwrpriv->rpwm) { _enter_pwrlock(&pwrpriv->lock); cpwm = r8712_read8(padapter, SDIO_HCPWM); @@ -169,6 +170,7 @@ static void rpwm_workitem_callback(struct work_struct *work) static void rpwm_check_handler (void *FunctionContext) { struct _adapter *adapter = (struct _adapter *)FunctionContext; + _rpwm_check_handler(adapter); } diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c index a3889d18d089..9b99a71670f3 100644 --- a/drivers/staging/rtl8712/rtl871x_recv.c +++ b/drivers/staging/rtl8712/rtl871x_recv.c @@ -73,8 +73,8 @@ sint _r8712_init_recv_priv(struct recv_priv *precvpriv, precvpriv->adapter = padapter; precvpriv->free_recvframe_cnt = NR_RECVFRAME; precvpriv->pallocated_frame_buf = kmalloc(NR_RECVFRAME * - sizeof(union recv_frame) + RXFRAME_ALIGN_SZ, - GFP_ATOMIC); + sizeof(union recv_frame) + RXFRAME_ALIGN_SZ, + GFP_ATOMIC); if (precvpriv->pallocated_frame_buf == NULL) return _FAIL; kmemleak_not_leak(precvpriv->pallocated_frame_buf); @@ -631,7 +631,7 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe) rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 0); len = precvframe->u.hdr.len - rmv_len; - if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) { ptr += rmv_len; *ptr = 0x87; *(ptr+1) = 0x12; diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index 0912f52def99..8faf22bb7c90 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -252,7 +252,6 @@ void r8712_wep_decrypt(struct _adapter *padapter, u8 *precvframe) /* calculate icv and compare the icv */ *((u32 *)crc) = cpu_to_le32(getcrc32(payload, length - 4)); } - return; } /* 3 =====TKIP related===== */ diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index b985edc158b9..f49acaf04076 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.c +++ b/drivers/staging/rtl8712/rtl871x_xmit.c @@ -248,6 +248,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt, * tx these packets and let LPS awake some time * to prevent DHCP protocol fail */ u8 tmp[24]; + _r8712_pktfile_read(&pktfile, &tmp[0], 24); pattrib->dhcp_pkt = 0; if (pktfile.pkt_len > 282) {/*MINIMUM_DHCP_PACKET_SIZE)*/ @@ -481,6 +482,7 @@ static sint make_wlanhdr(struct _adapter *padapter , u8 *hdr, struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct qos_priv *pqospriv = &pmlmepriv->qospriv; u16 *fctrl = &pwlanhdr->frame_ctl; + memset(hdr, 0, WLANHDR_OFFSET); SetFrameSubType(fctrl, pattrib->subtype); if (pattrib->subtype & WIFI_DATA_TYPE) { @@ -491,7 +493,7 @@ static sint make_wlanhdr(struct _adapter *padapter , u8 *hdr, ETH_ALEN); memcpy(pwlanhdr->addr2, pattrib->src, ETH_ALEN); memcpy(pwlanhdr->addr3, pattrib->dst, ETH_ALEN); - } else if ((check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)) { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) { /* to_ds = 0, fr_ds = 1; */ SetFrDs(fctrl); memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); @@ -525,8 +527,8 @@ static sint make_wlanhdr(struct _adapter *padapter , u8 *hdr, /* Update Seq Num will be handled by f/w */ { struct sta_info *psta; - sint bmcst = IS_MCAST(pattrib->ra); + if (pattrib->psta) psta = pattrib->psta; else { @@ -953,8 +955,8 @@ static void alloc_hwxmits(struct _adapter *padapter) struct xmit_priv *pxmitpriv = &padapter->xmitpriv; pxmitpriv->hwxmit_entry = HWXMIT_ENTRY; - pxmitpriv->hwxmits = kmalloc(sizeof(struct hw_xmit) * pxmitpriv->hwxmit_entry, - GFP_ATOMIC); + pxmitpriv->hwxmits = kmalloc_array(pxmitpriv->hwxmit_entry, + sizeof(struct hw_xmit), 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 beff69b3ff0c..a3d733b145eb 100644 --- a/drivers/staging/rtl8712/usb_intf.c +++ b/drivers/staging/rtl8712/usb_intf.c @@ -581,9 +581,11 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf, * address by setting bit 1 of first octet. */ mac[0] &= 0xFE; - dev_info(&udev->dev, "r8712u: MAC Address from user = %pM\n", mac); + dev_info(&udev->dev, + "r8712u: MAC Address from user = %pM\n", mac); } else - dev_info(&udev->dev, "r8712u: MAC Address from efuse = %pM\n", mac); + dev_info(&udev->dev, + "r8712u: MAC Address from efuse = %pM\n", mac); memcpy(pnetdev->dev_addr, mac, ETH_ALEN); } /* step 6. Load the firmware asynchronously */ @@ -635,7 +637,6 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf) * Reset usb port for sitesurvey fail issue. */ if (udev->state != USB_STATE_NOTATTACHED) usb_reset_device(udev); - return; } static int __init r8712u_drv_entry(void) diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index a6c2aab0a946..e89d2b07fcb9 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -216,6 +216,7 @@ static void r8712_usb_read_port_complete(struct urb *purb) 0, (unsigned char *)precvbuf); } else { _pkt *pskb = precvbuf->pskb; + skb_put(pskb, purb->actual_length); skb_queue_tail(&precvpriv->rx_skb_queue, pskb); tasklet_hi_schedule(&precvpriv->recv_tasklet); @@ -382,7 +383,8 @@ static void usb_write_port_complete(struct urb *purb) case 0: break; default: - netdev_warn(padapter->pnetdev, "r8712u: pipe error: (%d)\n", purb->status); + netdev_warn(padapter->pnetdev, + "r8712u: pipe error: (%d)\n", purb->status); break; } /* not to consider tx fragment */ @@ -496,11 +498,8 @@ int r8712_usbctrl_vendorreq(struct intf_priv *pintfpriv, u8 request, u16 value, u8 *palloc_buf, *pIo_buf; 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__); + if (palloc_buf == NULL) return -ENOMEM; - } pIo_buf = palloc_buf + 16 - ((addr_t)(palloc_buf) & 0x0f); if (requesttype == 0x01) { pipe = usb_rcvctrlpipe(udev, 0); /* read_in */ |