staging: rtl8712: remove unused variables
unused variables are removed. These variables were only assigned some values and after that they were never being used. So they are safe to be removed , and it has been build tested. I left a call to r8712_read32(padapter, TCR) and r8712_read8(padapter, SDIO_HCPWM) . r8712_read32() and r8712_read8() is ultimately calling usb_read32() and usb_read8() respectively. and they are again calling r8712_usbctrl_vendorreq(). this r8712_usbctrl_vendorreq() is communicating through the usb bus and is sending and receiving the control msg. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
eecc515a1b
Коммит
e29d3ebcda
|
@ -136,15 +136,10 @@ static void update_fwhdr(struct fw_hdr *pfwhdr, const u8 *pmappedfw)
|
||||||
static u8 chk_fwhdr(struct fw_hdr *pfwhdr, u32 ulfilelength)
|
static u8 chk_fwhdr(struct fw_hdr *pfwhdr, u32 ulfilelength)
|
||||||
{
|
{
|
||||||
u32 fwhdrsz, fw_sz;
|
u32 fwhdrsz, fw_sz;
|
||||||
u8 intf, rfconf;
|
|
||||||
|
|
||||||
/* check signature */
|
/* check signature */
|
||||||
if ((pfwhdr->signature != 0x8712) && (pfwhdr->signature != 0x8192))
|
if ((pfwhdr->signature != 0x8712) && (pfwhdr->signature != 0x8192))
|
||||||
return _FAIL;
|
return _FAIL;
|
||||||
/* check interface */
|
|
||||||
intf = (u8)((pfwhdr->version&0x3000) >> 12);
|
|
||||||
/* check rf_conf */
|
|
||||||
rfconf = (u8)((pfwhdr->version&0xC000) >> 14);
|
|
||||||
/* check fw_priv_sze & sizeof(struct fw_priv) */
|
/* check fw_priv_sze & sizeof(struct fw_priv) */
|
||||||
if (pfwhdr->fw_priv_sz != sizeof(struct fw_priv))
|
if (pfwhdr->fw_priv_sz != sizeof(struct fw_priv))
|
||||||
return _FAIL;
|
return _FAIL;
|
||||||
|
@ -162,7 +157,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
|
||||||
sint i;
|
sint i;
|
||||||
u8 tmp8, tmp8_a;
|
u8 tmp8, tmp8_a;
|
||||||
u16 tmp16;
|
u16 tmp16;
|
||||||
u32 maxlen = 0, tmp32; /* for compare usage */
|
u32 maxlen = 0; /* for compare usage */
|
||||||
uint dump_imem_sz, imem_sz, dump_emem_sz, emem_sz; /* max = 49152; */
|
uint dump_imem_sz, imem_sz, dump_emem_sz, emem_sz; /* max = 49152; */
|
||||||
struct fw_hdr fwhdr;
|
struct fw_hdr fwhdr;
|
||||||
u32 ulfilelength; /* FW file size */
|
u32 ulfilelength; /* FW file size */
|
||||||
|
@ -262,7 +257,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
|
||||||
if (tmp8_a != (tmp8|BIT(2)))
|
if (tmp8_a != (tmp8|BIT(2)))
|
||||||
goto exit_fail;
|
goto exit_fail;
|
||||||
|
|
||||||
tmp32 = r8712_read32(padapter, TCR);
|
r8712_read32(padapter, TCR);
|
||||||
|
|
||||||
/* 4.polling IMEM Ready */
|
/* 4.polling IMEM Ready */
|
||||||
i = 100;
|
i = 100;
|
||||||
|
|
|
@ -368,13 +368,12 @@ int r8712_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher,
|
||||||
int r8712_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len,
|
int r8712_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len,
|
||||||
u8 *wpa_ie, u16 *wpa_len)
|
u8 *wpa_ie, u16 *wpa_len)
|
||||||
{
|
{
|
||||||
u8 authmode, sec_idx;
|
u8 authmode;
|
||||||
u8 wpa_oui[4] = {0x0, 0x50, 0xf2, 0x01};
|
u8 wpa_oui[4] = {0x0, 0x50, 0xf2, 0x01};
|
||||||
uint cnt;
|
uint cnt;
|
||||||
|
|
||||||
/*Search required WPA or WPA2 IE and copy to sec_ie[ ]*/
|
/*Search required WPA or WPA2 IE and copy to sec_ie[ ]*/
|
||||||
cnt = (_TIMESTAMP_ + _BEACON_ITERVAL_ + _CAPABILITY_);
|
cnt = (_TIMESTAMP_ + _BEACON_ITERVAL_ + _CAPABILITY_);
|
||||||
sec_idx = 0;
|
|
||||||
while (cnt < in_len) {
|
while (cnt < in_len) {
|
||||||
authmode = in_ie[cnt];
|
authmode = in_ie[cnt];
|
||||||
if ((authmode == _WPA_IE_ID_) &&
|
if ((authmode == _WPA_IE_ID_) &&
|
||||||
|
|
|
@ -157,10 +157,8 @@ static u8 read_bbreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
||||||
struct readBB_parm *prdbbparm;
|
|
||||||
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
||||||
|
|
||||||
prdbbparm = (struct readBB_parm *)pcmd->parmbuf;
|
|
||||||
if (pcmd->rsp && pcmd->rspsz > 0)
|
if (pcmd->rsp && pcmd->rspsz > 0)
|
||||||
memcpy(pcmd->rsp, (u8 *)&val, pcmd->rspsz);
|
memcpy(pcmd->rsp, (u8 *)&val, pcmd->rspsz);
|
||||||
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
||||||
|
@ -174,10 +172,8 @@ static u8 read_bbreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
static u8 write_bbreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
static u8 write_bbreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
{
|
{
|
||||||
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
||||||
struct writeBB_parm *pwritebbparm;
|
|
||||||
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
||||||
|
|
||||||
pwritebbparm = (struct writeBB_parm *)pcmd->parmbuf;
|
|
||||||
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
||||||
if (pcmd_callback == NULL)
|
if (pcmd_callback == NULL)
|
||||||
r8712_free_cmd_obj(pcmd);
|
r8712_free_cmd_obj(pcmd);
|
||||||
|
@ -190,10 +186,8 @@ static u8 read_rfreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
||||||
struct readRF_parm *prdrfparm;
|
|
||||||
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
||||||
|
|
||||||
prdrfparm = (struct readRF_parm *)pcmd->parmbuf;
|
|
||||||
if (pcmd->rsp && pcmd->rspsz > 0)
|
if (pcmd->rsp && pcmd->rspsz > 0)
|
||||||
memcpy(pcmd->rsp, (u8 *)&val, pcmd->rspsz);
|
memcpy(pcmd->rsp, (u8 *)&val, pcmd->rspsz);
|
||||||
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
||||||
|
@ -207,10 +201,8 @@ static u8 read_rfreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
static u8 write_rfreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
static u8 write_rfreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
{
|
{
|
||||||
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
||||||
struct writeRF_parm *pwriterfparm;
|
|
||||||
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
||||||
|
|
||||||
pwriterfparm = (struct writeRF_parm *)pcmd->parmbuf;
|
|
||||||
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
pcmd_callback = cmd_callback[pcmd->cmdcode].callback;
|
||||||
if (pcmd_callback == NULL)
|
if (pcmd_callback == NULL)
|
||||||
r8712_free_cmd_obj(pcmd);
|
r8712_free_cmd_obj(pcmd);
|
||||||
|
@ -222,9 +214,7 @@ static u8 write_rfreg_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
static u8 sys_suspend_hdl(struct _adapter *padapter, u8 *pbuf)
|
static u8 sys_suspend_hdl(struct _adapter *padapter, u8 *pbuf)
|
||||||
{
|
{
|
||||||
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
struct cmd_obj *pcmd = (struct cmd_obj *)pbuf;
|
||||||
struct usb_suspend_parm *psetusbsuspend;
|
|
||||||
|
|
||||||
psetusbsuspend = (struct usb_suspend_parm *)pcmd->parmbuf;
|
|
||||||
r8712_free_cmd_obj(pcmd);
|
r8712_free_cmd_obj(pcmd);
|
||||||
return H2C_SUCCESS;
|
return H2C_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -320,7 +310,7 @@ void r8712_fw_cmd_data(struct _adapter *pAdapter, u32 *value, u8 flag)
|
||||||
int r8712_cmd_thread(void *context)
|
int r8712_cmd_thread(void *context)
|
||||||
{
|
{
|
||||||
struct cmd_obj *pcmd;
|
struct cmd_obj *pcmd;
|
||||||
unsigned int cmdsz, wr_sz, *pcmdbuf, *prspbuf;
|
unsigned int cmdsz, wr_sz, *pcmdbuf;
|
||||||
struct tx_desc *pdesc;
|
struct tx_desc *pdesc;
|
||||||
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
|
||||||
struct _adapter *padapter = (struct _adapter *)context;
|
struct _adapter *padapter = (struct _adapter *)context;
|
||||||
|
@ -342,7 +332,6 @@ _next:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pcmdbuf = (unsigned int *)pcmdpriv->cmd_buf;
|
pcmdbuf = (unsigned int *)pcmdpriv->cmd_buf;
|
||||||
prspbuf = (unsigned int *)pcmdpriv->rsp_buf;
|
|
||||||
pdesc = (struct tx_desc *)pcmdbuf;
|
pdesc = (struct tx_desc *)pcmdbuf;
|
||||||
memset(pdesc, 0, TXDESC_SIZE);
|
memset(pdesc, 0, TXDESC_SIZE);
|
||||||
pcmd = cmd_hdl_filter(padapter, pcmd);
|
pcmd = cmd_hdl_filter(padapter, pcmd);
|
||||||
|
|
|
@ -219,13 +219,12 @@ u16 r8712_efuse_get_current_size(struct _adapter *padapter)
|
||||||
{
|
{
|
||||||
int bContinual = true;
|
int bContinual = true;
|
||||||
u16 efuse_addr = 0;
|
u16 efuse_addr = 0;
|
||||||
u8 hoffset = 0, hworden = 0;
|
u8 hworden = 0;
|
||||||
u8 efuse_data, word_cnts = 0;
|
u8 efuse_data, word_cnts = 0;
|
||||||
|
|
||||||
while (bContinual && efuse_one_byte_read(padapter, efuse_addr,
|
while (bContinual && efuse_one_byte_read(padapter, efuse_addr,
|
||||||
&efuse_data) && (efuse_addr < efuse_available_max_size)) {
|
&efuse_data) && (efuse_addr < efuse_available_max_size)) {
|
||||||
if (efuse_data != 0xFF) {
|
if (efuse_data != 0xFF) {
|
||||||
hoffset = (efuse_data >> 4) & 0x0F;
|
|
||||||
hworden = efuse_data & 0x0F;
|
hworden = efuse_data & 0x0F;
|
||||||
word_cnts = calculate_word_cnts(hworden);
|
word_cnts = calculate_word_cnts(hworden);
|
||||||
/* read next header */
|
/* read next header */
|
||||||
|
|
|
@ -158,8 +158,6 @@ int r8712_free_recvframe(union recv_frame *precvframe,
|
||||||
static void update_recvframe_attrib_from_recvstat(struct rx_pkt_attrib *pattrib,
|
static void update_recvframe_attrib_from_recvstat(struct rx_pkt_attrib *pattrib,
|
||||||
struct recv_stat *prxstat)
|
struct recv_stat *prxstat)
|
||||||
{
|
{
|
||||||
u32 *pphy_info;
|
|
||||||
struct phy_stat *pphy_stat;
|
|
||||||
u16 drvinfo_sz = 0;
|
u16 drvinfo_sz = 0;
|
||||||
|
|
||||||
drvinfo_sz = (le32_to_cpu(prxstat->rxdw0)&0x000f0000)>>16;
|
drvinfo_sz = (le32_to_cpu(prxstat->rxdw0)&0x000f0000)>>16;
|
||||||
|
@ -189,10 +187,6 @@ static void update_recvframe_attrib_from_recvstat(struct rx_pkt_attrib *pattrib,
|
||||||
/*Offset 16*/
|
/*Offset 16*/
|
||||||
/*Offset 20*/
|
/*Offset 20*/
|
||||||
/*phy_info*/
|
/*phy_info*/
|
||||||
if (drvinfo_sz) {
|
|
||||||
pphy_stat = (struct phy_stat *)(prxstat+1);
|
|
||||||
pphy_info = (u32 *)prxstat+1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*perform defrag*/
|
/*perform defrag*/
|
||||||
|
@ -200,7 +194,7 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter,
|
||||||
struct __queue *defrag_q)
|
struct __queue *defrag_q)
|
||||||
{
|
{
|
||||||
struct list_head *plist, *phead;
|
struct list_head *plist, *phead;
|
||||||
u8 *data, wlanhdr_offset;
|
u8 wlanhdr_offset;
|
||||||
u8 curfragnum;
|
u8 curfragnum;
|
||||||
struct recv_frame_hdr *pfhdr, *pnfhdr;
|
struct recv_frame_hdr *pfhdr, *pnfhdr;
|
||||||
union recv_frame *prframe, *pnextrframe;
|
union recv_frame *prframe, *pnextrframe;
|
||||||
|
@ -223,7 +217,6 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter,
|
||||||
curfragnum++;
|
curfragnum++;
|
||||||
plist = &defrag_q->queue;
|
plist = &defrag_q->queue;
|
||||||
plist = plist->next;
|
plist = plist->next;
|
||||||
data = get_recvframe_data(prframe);
|
|
||||||
while (end_of_queue_search(phead, plist) == false) {
|
while (end_of_queue_search(phead, plist) == false) {
|
||||||
pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u);
|
pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u);
|
||||||
pnfhdr = &pnextrframe->u.hdr;
|
pnfhdr = &pnextrframe->u.hdr;
|
||||||
|
@ -436,13 +429,11 @@ void r8712_rxcmd_event_hdl(struct _adapter *padapter, void *prxcmdbuf)
|
||||||
{
|
{
|
||||||
uint voffset;
|
uint voffset;
|
||||||
u8 *poffset;
|
u8 *poffset;
|
||||||
u16 pkt_len, cmd_len, drvinfo_sz;
|
u16 cmd_len, drvinfo_sz;
|
||||||
u8 eid, cmd_seq;
|
|
||||||
struct recv_stat *prxstat;
|
struct recv_stat *prxstat;
|
||||||
|
|
||||||
poffset = (u8 *)prxcmdbuf;
|
poffset = (u8 *)prxcmdbuf;
|
||||||
voffset = *(uint *)poffset;
|
voffset = *(uint *)poffset;
|
||||||
pkt_len = le32_to_cpu(voffset) & 0x00003fff;
|
|
||||||
prxstat = (struct recv_stat *)prxcmdbuf;
|
prxstat = (struct recv_stat *)prxcmdbuf;
|
||||||
drvinfo_sz = ((le32_to_cpu(prxstat->rxdw0) & 0x000f0000) >> 16);
|
drvinfo_sz = ((le32_to_cpu(prxstat->rxdw0) & 0x000f0000) >> 16);
|
||||||
drvinfo_sz = drvinfo_sz << 3;
|
drvinfo_sz = drvinfo_sz << 3;
|
||||||
|
@ -450,8 +441,6 @@ void r8712_rxcmd_event_hdl(struct _adapter *padapter, void *prxcmdbuf)
|
||||||
do {
|
do {
|
||||||
voffset = *(uint *)poffset;
|
voffset = *(uint *)poffset;
|
||||||
cmd_len = (u16)(le32_to_cpu(voffset) & 0xffff);
|
cmd_len = (u16)(le32_to_cpu(voffset) & 0xffff);
|
||||||
cmd_seq = (u8)((le32_to_cpu(voffset) >> 24) & 0x7f);
|
|
||||||
eid = (u8)((le32_to_cpu(voffset) >> 16) & 0xff);
|
|
||||||
r8712_event_handle(padapter, (uint *)poffset);
|
r8712_event_handle(padapter, (uint *)poffset);
|
||||||
poffset += (cmd_len + 8);/*8 bytes alignment*/
|
poffset += (cmd_len + 8);/*8 bytes alignment*/
|
||||||
} while (le32_to_cpu(voffset) & BIT(31));
|
} while (le32_to_cpu(voffset) & BIT(31));
|
||||||
|
|
|
@ -470,7 +470,6 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)
|
||||||
|
|
||||||
u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork)
|
u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork)
|
||||||
{
|
{
|
||||||
u8 *auth;
|
|
||||||
uint t_len = 0;
|
uint t_len = 0;
|
||||||
struct ndis_wlan_bssid_ex *psecnetwork;
|
struct ndis_wlan_bssid_ex *psecnetwork;
|
||||||
struct cmd_obj *pcmd;
|
struct cmd_obj *pcmd;
|
||||||
|
@ -517,7 +516,6 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork)
|
||||||
return _FAIL;
|
return _FAIL;
|
||||||
}
|
}
|
||||||
memcpy(psecnetwork, &pnetwork->network, t_len);
|
memcpy(psecnetwork, &pnetwork->network, t_len);
|
||||||
auth = &psecuritypriv->authenticator_ie[0];
|
|
||||||
psecuritypriv->authenticator_ie[0] = (unsigned char)
|
psecuritypriv->authenticator_ie[0] = (unsigned char)
|
||||||
psecnetwork->IELength;
|
psecnetwork->IELength;
|
||||||
if ((psecnetwork->IELength-12) < (256 - 1))
|
if ((psecnetwork->IELength-12) < (256 - 1))
|
||||||
|
|
|
@ -170,7 +170,7 @@ static inline char *translate_scan(struct _adapter *padapter,
|
||||||
s8 *p;
|
s8 *p;
|
||||||
u32 i = 0, ht_ielen = 0;
|
u32 i = 0, ht_ielen = 0;
|
||||||
u16 cap, ht_cap = false, mcs_rate;
|
u16 cap, ht_cap = false, mcs_rate;
|
||||||
u8 rssi, bw_40MHz = 0, short_GI = 0;
|
u8 rssi;
|
||||||
|
|
||||||
if ((pnetwork->network.Configuration.DSConfig < 1) ||
|
if ((pnetwork->network.Configuration.DSConfig < 1) ||
|
||||||
(pnetwork->network.Configuration.DSConfig > 14)) {
|
(pnetwork->network.Configuration.DSConfig > 14)) {
|
||||||
|
@ -197,10 +197,6 @@ static inline char *translate_scan(struct _adapter *padapter,
|
||||||
ht_cap = true;
|
ht_cap = true;
|
||||||
pht_capie = (struct ieee80211_ht_cap *)(p + 2);
|
pht_capie = (struct ieee80211_ht_cap *)(p + 2);
|
||||||
memcpy(&mcs_rate , pht_capie->supp_mcs_set, 2);
|
memcpy(&mcs_rate , pht_capie->supp_mcs_set, 2);
|
||||||
bw_40MHz = (pht_capie->cap_info&IEEE80211_HT_CAP_SUP_WIDTH)
|
|
||||||
? 1 : 0;
|
|
||||||
short_GI = (pht_capie->cap_info&(IEEE80211_HT_CAP_SGI_20 |
|
|
||||||
IEEE80211_HT_CAP_SGI_40)) ? 1 : 0;
|
|
||||||
}
|
}
|
||||||
/* Add the protocol name */
|
/* Add the protocol name */
|
||||||
iwe.cmd = SIOCGIWNAME;
|
iwe.cmd = SIOCGIWNAME;
|
||||||
|
@ -287,12 +283,10 @@ static inline char *translate_scan(struct _adapter *padapter,
|
||||||
u8 wpa_ie[255], rsn_ie[255];
|
u8 wpa_ie[255], rsn_ie[255];
|
||||||
u16 wpa_len = 0, rsn_len = 0;
|
u16 wpa_len = 0, rsn_len = 0;
|
||||||
int n;
|
int n;
|
||||||
sint out_len = 0;
|
|
||||||
|
|
||||||
out_len = r8712_get_sec_ie(pnetwork->network.IEs,
|
r8712_get_sec_ie(pnetwork->network.IEs,
|
||||||
pnetwork->network.
|
pnetwork->network.IELength, rsn_ie, &rsn_len,
|
||||||
IELength, rsn_ie, &rsn_len,
|
wpa_ie, &wpa_len);
|
||||||
wpa_ie, &wpa_len);
|
|
||||||
if (wpa_len > 0) {
|
if (wpa_len > 0) {
|
||||||
memset(buf, 0, MAX_WPA_IE_LEN);
|
memset(buf, 0, MAX_WPA_IE_LEN);
|
||||||
n = sprintf(buf, "wpa_ie=");
|
n = sprintf(buf, "wpa_ie=");
|
||||||
|
@ -512,7 +506,7 @@ exit:
|
||||||
static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie,
|
static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie,
|
||||||
unsigned short ielen)
|
unsigned short ielen)
|
||||||
{
|
{
|
||||||
u8 *buf = NULL, *pos = NULL;
|
u8 *buf = NULL;
|
||||||
int group_cipher = 0, pairwise_cipher = 0;
|
int group_cipher = 0, pairwise_cipher = 0;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
@ -522,7 +516,6 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie,
|
||||||
buf = kmemdup(pie, ielen, GFP_ATOMIC);
|
buf = kmemdup(pie, ielen, GFP_ATOMIC);
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
pos = buf;
|
|
||||||
if (ielen < RSN_HEADER_LEN) {
|
if (ielen < RSN_HEADER_LEN) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto exit;
|
goto exit;
|
||||||
|
@ -1133,13 +1126,11 @@ static int r871x_wx_set_mlme(struct net_device *dev,
|
||||||
union iwreq_data *wrqu, char *extra)
|
union iwreq_data *wrqu, char *extra)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
u16 reason;
|
|
||||||
struct _adapter *padapter = (struct _adapter *)netdev_priv(dev);
|
struct _adapter *padapter = (struct _adapter *)netdev_priv(dev);
|
||||||
struct iw_mlme *mlme = (struct iw_mlme *) extra;
|
struct iw_mlme *mlme = (struct iw_mlme *) extra;
|
||||||
|
|
||||||
if (mlme == NULL)
|
if (mlme == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
reason = cpu_to_le16(mlme->reason_code);
|
|
||||||
switch (mlme->cmd) {
|
switch (mlme->cmd) {
|
||||||
case IW_MLME_DEAUTH:
|
case IW_MLME_DEAUTH:
|
||||||
if (!r8712_set_802_11_disassociate(padapter))
|
if (!r8712_set_802_11_disassociate(padapter))
|
||||||
|
|
|
@ -343,13 +343,9 @@ u8 r8712_set_802_11_authentication_mode(struct _adapter *padapter,
|
||||||
u8 r8712_set_802_11_add_wep(struct _adapter *padapter,
|
u8 r8712_set_802_11_add_wep(struct _adapter *padapter,
|
||||||
struct NDIS_802_11_WEP *wep)
|
struct NDIS_802_11_WEP *wep)
|
||||||
{
|
{
|
||||||
u8 bdefaultkey;
|
|
||||||
u8 btransmitkey;
|
|
||||||
sint keyid;
|
sint keyid;
|
||||||
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
||||||
|
|
||||||
bdefaultkey = (wep->KeyIndex & 0x40000000) > 0 ? false : true;
|
|
||||||
btransmitkey = (wep->KeyIndex & 0x80000000) > 0 ? true : false;
|
|
||||||
keyid = wep->KeyIndex & 0x3fffffff;
|
keyid = wep->KeyIndex & 0x3fffffff;
|
||||||
if (keyid >= WEP_KEYS)
|
if (keyid >= WEP_KEYS)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1372,7 +1372,7 @@ static int SecIsInPMKIDList(struct _adapter *Adapter, u8 *bssid)
|
||||||
sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie,
|
sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie,
|
||||||
u8 *out_ie, uint in_len)
|
u8 *out_ie, uint in_len)
|
||||||
{
|
{
|
||||||
u8 authmode = 0, securitytype, match;
|
u8 authmode = 0, match;
|
||||||
u8 sec_ie[255], uncst_oui[4], bkup_ie[255];
|
u8 sec_ie[255], uncst_oui[4], bkup_ie[255];
|
||||||
u8 wpa_oui[4] = {0x0, 0x50, 0xf2, 0x01};
|
u8 wpa_oui[4] = {0x0, 0x50, 0xf2, 0x01};
|
||||||
uint ielength, cnt, remove_cnt;
|
uint ielength, cnt, remove_cnt;
|
||||||
|
@ -1399,21 +1399,17 @@ sint r8712_restruct_sec_ie(struct _adapter *adapter, u8 *in_ie,
|
||||||
switch (ndissecuritytype) {
|
switch (ndissecuritytype) {
|
||||||
case Ndis802_11Encryption1Enabled:
|
case Ndis802_11Encryption1Enabled:
|
||||||
case Ndis802_11Encryption1KeyAbsent:
|
case Ndis802_11Encryption1KeyAbsent:
|
||||||
securitytype = _WEP40_;
|
|
||||||
uncst_oui[3] = 0x1;
|
uncst_oui[3] = 0x1;
|
||||||
break;
|
break;
|
||||||
case Ndis802_11Encryption2Enabled:
|
case Ndis802_11Encryption2Enabled:
|
||||||
case Ndis802_11Encryption2KeyAbsent:
|
case Ndis802_11Encryption2KeyAbsent:
|
||||||
securitytype = _TKIP_;
|
|
||||||
uncst_oui[3] = 0x2;
|
uncst_oui[3] = 0x2;
|
||||||
break;
|
break;
|
||||||
case Ndis802_11Encryption3Enabled:
|
case Ndis802_11Encryption3Enabled:
|
||||||
case Ndis802_11Encryption3KeyAbsent:
|
case Ndis802_11Encryption3KeyAbsent:
|
||||||
securitytype = _AES_;
|
|
||||||
uncst_oui[3] = 0x4;
|
uncst_oui[3] = 0x4;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
securitytype = _NO_PRIVACY_;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*Search required WPA or WPA2 IE and copy to sec_ie[] */
|
/*Search required WPA or WPA2 IE and copy to sec_ie[] */
|
||||||
|
@ -1705,7 +1701,7 @@ unsigned int r8712_restructure_ht_ie(struct _adapter *padapter, u8 *in_ie,
|
||||||
u8 *out_ie, uint in_len, uint *pout_len)
|
u8 *out_ie, uint in_len, uint *pout_len)
|
||||||
{
|
{
|
||||||
u32 ielen, out_len;
|
u32 ielen, out_len;
|
||||||
unsigned char *p, *pframe;
|
unsigned char *p;
|
||||||
struct ieee80211_ht_cap ht_capie;
|
struct ieee80211_ht_cap ht_capie;
|
||||||
unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00};
|
unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00};
|
||||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||||
|
@ -1717,10 +1713,8 @@ unsigned int r8712_restructure_ht_ie(struct _adapter *padapter, u8 *in_ie,
|
||||||
if (p && (ielen > 0)) {
|
if (p && (ielen > 0)) {
|
||||||
if (pqospriv->qos_option == 0) {
|
if (pqospriv->qos_option == 0) {
|
||||||
out_len = *pout_len;
|
out_len = *pout_len;
|
||||||
pframe = r8712_set_ie(out_ie+out_len,
|
r8712_set_ie(out_ie+out_len, _VENDOR_SPECIFIC_IE_,
|
||||||
_VENDOR_SPECIFIC_IE_,
|
_WMM_IE_Length_, WMM_IE, pout_len);
|
||||||
_WMM_IE_Length_,
|
|
||||||
WMM_IE, pout_len);
|
|
||||||
pqospriv->qos_option = 1;
|
pqospriv->qos_option = 1;
|
||||||
}
|
}
|
||||||
out_len = *pout_len;
|
out_len = *pout_len;
|
||||||
|
@ -1733,9 +1727,9 @@ unsigned int r8712_restructure_ht_ie(struct _adapter *padapter, u8 *in_ie,
|
||||||
IEEE80211_HT_CAP_DSSSCCK40;
|
IEEE80211_HT_CAP_DSSSCCK40;
|
||||||
ht_capie.ampdu_params_info = (IEEE80211_HT_CAP_AMPDU_FACTOR &
|
ht_capie.ampdu_params_info = (IEEE80211_HT_CAP_AMPDU_FACTOR &
|
||||||
0x03) | (IEEE80211_HT_CAP_AMPDU_DENSITY & 0x00);
|
0x03) | (IEEE80211_HT_CAP_AMPDU_DENSITY & 0x00);
|
||||||
pframe = r8712_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_,
|
r8712_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_,
|
||||||
sizeof(struct ieee80211_ht_cap),
|
sizeof(struct ieee80211_ht_cap),
|
||||||
(unsigned char *)&ht_capie, pout_len);
|
(unsigned char *)&ht_capie, pout_len);
|
||||||
phtpriv->ht_option = 1;
|
phtpriv->ht_option = 1;
|
||||||
}
|
}
|
||||||
return phtpriv->ht_option;
|
return phtpriv->ht_option;
|
||||||
|
@ -1748,7 +1742,6 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len)
|
||||||
int i, len;
|
int i, len;
|
||||||
struct sta_info *bmc_sta, *psta;
|
struct sta_info *bmc_sta, *psta;
|
||||||
struct ieee80211_ht_cap *pht_capie;
|
struct ieee80211_ht_cap *pht_capie;
|
||||||
struct ieee80211_ht_addt_info *pht_addtinfo;
|
|
||||||
struct recv_reorder_ctrl *preorder_ctrl;
|
struct recv_reorder_ctrl *preorder_ctrl;
|
||||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||||
struct ht_priv *phtpriv = &pmlmepriv->htpriv;
|
struct ht_priv *phtpriv = &pmlmepriv->htpriv;
|
||||||
|
@ -1801,8 +1794,6 @@ static void update_ht_cap(struct _adapter *padapter, u8 *pie, uint ie_len)
|
||||||
p = r8712_get_ie(pie + sizeof(struct NDIS_802_11_FIXED_IEs),
|
p = r8712_get_ie(pie + sizeof(struct NDIS_802_11_FIXED_IEs),
|
||||||
_HT_ADD_INFO_IE_, &len,
|
_HT_ADD_INFO_IE_, &len,
|
||||||
ie_len-sizeof(struct NDIS_802_11_FIXED_IEs));
|
ie_len-sizeof(struct NDIS_802_11_FIXED_IEs));
|
||||||
if (p && len > 0)
|
|
||||||
pht_addtinfo = (struct ieee80211_ht_addt_info *)(p + 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void r8712_issue_addbareq_cmd(struct _adapter *padapter, int priority)
|
void r8712_issue_addbareq_cmd(struct _adapter *padapter, int priority)
|
||||||
|
|
|
@ -1431,11 +1431,8 @@ unsigned int mp_ioctl_xmit_packet_hdl(struct oid_par_priv *poid_par_priv)
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
uint oid_rt_set_power_down_hdl(struct oid_par_priv *poid_par_priv)
|
uint oid_rt_set_power_down_hdl(struct oid_par_priv *poid_par_priv)
|
||||||
{
|
{
|
||||||
u8 bpwrup;
|
|
||||||
|
|
||||||
if (poid_par_priv->type_of_oid != SET_OID)
|
if (poid_par_priv->type_of_oid != SET_OID)
|
||||||
return RNDIS_STATUS_NOT_ACCEPTED;
|
return RNDIS_STATUS_NOT_ACCEPTED;
|
||||||
bpwrup = *(u8 *)poid_par_priv->information_buf;
|
|
||||||
/*CALL the power_down function*/
|
/*CALL the power_down function*/
|
||||||
return RNDIS_STATUS_SUCCESS;
|
return RNDIS_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,11 +156,9 @@ static void rpwm_workitem_callback(struct work_struct *work)
|
||||||
struct pwrctrl_priv, rpwm_workitem);
|
struct pwrctrl_priv, rpwm_workitem);
|
||||||
struct _adapter *padapter = container_of(pwrpriv,
|
struct _adapter *padapter = container_of(pwrpriv,
|
||||||
struct _adapter, pwrctrlpriv);
|
struct _adapter, pwrctrlpriv);
|
||||||
u8 cpwm = pwrpriv->cpwm;
|
|
||||||
|
|
||||||
if (pwrpriv->cpwm != pwrpriv->rpwm) {
|
if (pwrpriv->cpwm != pwrpriv->rpwm) {
|
||||||
_enter_pwrlock(&pwrpriv->lock);
|
_enter_pwrlock(&pwrpriv->lock);
|
||||||
cpwm = r8712_read8(padapter, SDIO_HCPWM);
|
r8712_read8(padapter, SDIO_HCPWM);
|
||||||
pwrpriv->rpwm_retry = 1;
|
pwrpriv->rpwm_retry = 1;
|
||||||
r8712_set_rpwm(padapter, pwrpriv->rpwm);
|
r8712_set_rpwm(padapter, pwrpriv->rpwm);
|
||||||
up(&pwrpriv->lock);
|
up(&pwrpriv->lock);
|
||||||
|
|
|
@ -601,7 +601,7 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
||||||
{
|
{
|
||||||
/*remove the wlanhdr and add the eth_hdr*/
|
/*remove the wlanhdr and add the eth_hdr*/
|
||||||
sint rmv_len;
|
sint rmv_len;
|
||||||
u16 eth_type, len;
|
u16 len;
|
||||||
u8 bsnaphdr;
|
u8 bsnaphdr;
|
||||||
u8 *psnap_type;
|
u8 *psnap_type;
|
||||||
struct ieee80211_snap_hdr *psnap;
|
struct ieee80211_snap_hdr *psnap;
|
||||||
|
@ -635,7 +635,6 @@ sint r8712_wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
||||||
ptr += rmv_len;
|
ptr += rmv_len;
|
||||||
*ptr = 0x87;
|
*ptr = 0x87;
|
||||||
*(ptr+1) = 0x12;
|
*(ptr+1) = 0x12;
|
||||||
eth_type = 0x8712;
|
|
||||||
/* append rx status for mp test packets */
|
/* append rx status for mp test packets */
|
||||||
ptr = recvframe_pull(precvframe, (rmv_len -
|
ptr = recvframe_pull(precvframe, (rmv_len -
|
||||||
sizeof(struct ethhdr) + 2) - 24);
|
sizeof(struct ethhdr) + 2) - 24);
|
||||||
|
@ -658,27 +657,11 @@ s32 r8712_recv_entry(union recv_frame *precvframe)
|
||||||
{
|
{
|
||||||
struct _adapter *padapter;
|
struct _adapter *padapter;
|
||||||
struct recv_priv *precvpriv;
|
struct recv_priv *precvpriv;
|
||||||
struct mlme_priv *pmlmepriv;
|
|
||||||
struct recv_stat *prxstat;
|
|
||||||
struct dvobj_priv *pdev;
|
|
||||||
u8 *phead, *pdata, *ptail, *pend;
|
|
||||||
|
|
||||||
struct __queue *pfree_recv_queue, *ppending_recv_queue;
|
|
||||||
s32 ret = _SUCCESS;
|
s32 ret = _SUCCESS;
|
||||||
struct intf_hdl *pintfhdl;
|
|
||||||
|
|
||||||
padapter = precvframe->u.hdr.adapter;
|
padapter = precvframe->u.hdr.adapter;
|
||||||
pintfhdl = &padapter->pio_queue->intf;
|
|
||||||
pmlmepriv = &padapter->mlmepriv;
|
|
||||||
precvpriv = &(padapter->recvpriv);
|
precvpriv = &(padapter->recvpriv);
|
||||||
pdev = &padapter->dvobjpriv;
|
|
||||||
pfree_recv_queue = &(precvpriv->free_recv_queue);
|
|
||||||
ppending_recv_queue = &(precvpriv->recv_pending_queue);
|
|
||||||
phead = precvframe->u.hdr.rx_head;
|
|
||||||
pdata = precvframe->u.hdr.rx_data;
|
|
||||||
ptail = precvframe->u.hdr.rx_tail;
|
|
||||||
pend = precvframe->u.hdr.rx_end;
|
|
||||||
prxstat = (struct recv_stat *)phead;
|
|
||||||
|
|
||||||
padapter->ledpriv.LedControlHandler(padapter, LED_CTL_RX);
|
padapter->ledpriv.LedControlHandler(padapter, LED_CTL_RX);
|
||||||
|
|
||||||
|
|
|
@ -170,11 +170,8 @@ static inline u8 *recvframe_put(union recv_frame *precvframe, sint sz)
|
||||||
/* used for append sz bytes from ptr to rx_tail, update rx_tail and
|
/* used for append sz bytes from ptr to rx_tail, update rx_tail and
|
||||||
* return the updated rx_tail to the caller
|
* return the updated rx_tail to the caller
|
||||||
* after putting, rx_tail must be still larger than rx_end. */
|
* after putting, rx_tail must be still larger than rx_end. */
|
||||||
unsigned char *prev_rx_tail;
|
|
||||||
|
|
||||||
if (precvframe == NULL)
|
if (precvframe == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
prev_rx_tail = precvframe->u.hdr.rx_tail;
|
|
||||||
precvframe->u.hdr.rx_tail += sz;
|
precvframe->u.hdr.rx_tail += sz;
|
||||||
if (precvframe->u.hdr.rx_tail > precvframe->u.hdr.rx_end) {
|
if (precvframe->u.hdr.rx_tail > precvframe->u.hdr.rx_end) {
|
||||||
precvframe->u.hdr.rx_tail -= sz;
|
precvframe->u.hdr.rx_tail -= sz;
|
||||||
|
|
|
@ -578,7 +578,7 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe)
|
||||||
u8 ttkey[16];
|
u8 ttkey[16];
|
||||||
u8 crc[4];
|
u8 crc[4];
|
||||||
struct arc4context mycontext;
|
struct arc4context mycontext;
|
||||||
u32 curfragnum, length, prwskeylen;
|
u32 curfragnum, length;
|
||||||
|
|
||||||
u8 *pframe, *payload, *iv, *prwskey;
|
u8 *pframe, *payload, *iv, *prwskey;
|
||||||
union pn48 txpn;
|
union pn48 txpn;
|
||||||
|
@ -600,7 +600,6 @@ u32 r8712_tkip_encrypt(struct _adapter *padapter, u8 *pxmitframe)
|
||||||
&pattrib->ra[0]);
|
&pattrib->ra[0]);
|
||||||
if (stainfo != NULL) {
|
if (stainfo != NULL) {
|
||||||
prwskey = &stainfo->x_UncstKey.skey[0];
|
prwskey = &stainfo->x_UncstKey.skey[0];
|
||||||
prwskeylen = 16;
|
|
||||||
for (curfragnum = 0; curfragnum < pattrib->nr_frags;
|
for (curfragnum = 0; curfragnum < pattrib->nr_frags;
|
||||||
curfragnum++) {
|
curfragnum++) {
|
||||||
iv = pframe + pattrib->hdrlen;
|
iv = pframe + pattrib->hdrlen;
|
||||||
|
@ -655,7 +654,7 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe)
|
||||||
u8 ttkey[16];
|
u8 ttkey[16];
|
||||||
u8 crc[4];
|
u8 crc[4];
|
||||||
struct arc4context mycontext;
|
struct arc4context mycontext;
|
||||||
u32 length, prwskeylen;
|
u32 length;
|
||||||
u8 *pframe, *payload, *iv, *prwskey, idx = 0;
|
u8 *pframe, *payload, *iv, *prwskey, idx = 0;
|
||||||
union pn48 txpn;
|
union pn48 txpn;
|
||||||
struct sta_info *stainfo;
|
struct sta_info *stainfo;
|
||||||
|
@ -683,7 +682,6 @@ u32 r8712_tkip_decrypt(struct _adapter *padapter, u8 *precvframe)
|
||||||
return _FAIL;
|
return _FAIL;
|
||||||
} else
|
} else
|
||||||
prwskey = &stainfo->x_UncstKey.skey[0];
|
prwskey = &stainfo->x_UncstKey.skey[0];
|
||||||
prwskeylen = 16;
|
|
||||||
GET_TKIP_PN(iv, txpn);
|
GET_TKIP_PN(iv, txpn);
|
||||||
pnl = (u16)(txpn.val);
|
pnl = (u16)(txpn.val);
|
||||||
pnh = (u32)(txpn.val >> 16);
|
pnh = (u32)(txpn.val >> 16);
|
||||||
|
@ -1154,7 +1152,6 @@ u32 r8712_aes_encrypt(struct _adapter *padapter, u8 *pxmitframe)
|
||||||
{ /* exclude ICV */
|
{ /* exclude ICV */
|
||||||
/* Intermediate Buffers */
|
/* Intermediate Buffers */
|
||||||
sint curfragnum, length;
|
sint curfragnum, length;
|
||||||
u32 prwskeylen;
|
|
||||||
u8 *pframe, *prwskey;
|
u8 *pframe, *prwskey;
|
||||||
struct sta_info *stainfo;
|
struct sta_info *stainfo;
|
||||||
struct pkt_attrib *pattrib = &((struct xmit_frame *)
|
struct pkt_attrib *pattrib = &((struct xmit_frame *)
|
||||||
|
@ -1174,7 +1171,6 @@ u32 r8712_aes_encrypt(struct _adapter *padapter, u8 *pxmitframe)
|
||||||
&pattrib->ra[0]);
|
&pattrib->ra[0]);
|
||||||
if (stainfo != NULL) {
|
if (stainfo != NULL) {
|
||||||
prwskey = &stainfo->x_UncstKey.skey[0];
|
prwskey = &stainfo->x_UncstKey.skey[0];
|
||||||
prwskeylen = 16;
|
|
||||||
for (curfragnum = 0; curfragnum < pattrib->nr_frags;
|
for (curfragnum = 0; curfragnum < pattrib->nr_frags;
|
||||||
curfragnum++) {
|
curfragnum++) {
|
||||||
if ((curfragnum + 1) == pattrib->nr_frags) {
|
if ((curfragnum + 1) == pattrib->nr_frags) {
|
||||||
|
@ -1363,7 +1359,6 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe)
|
||||||
{ /* exclude ICV */
|
{ /* exclude ICV */
|
||||||
/* Intermediate Buffers */
|
/* Intermediate Buffers */
|
||||||
sint length;
|
sint length;
|
||||||
u32 prwskeylen;
|
|
||||||
u8 *pframe, *prwskey, *iv, idx;
|
u8 *pframe, *prwskey, *iv, idx;
|
||||||
struct sta_info *stainfo;
|
struct sta_info *stainfo;
|
||||||
struct rx_pkt_attrib *prxattrib = &((union recv_frame *)
|
struct rx_pkt_attrib *prxattrib = &((union recv_frame *)
|
||||||
|
@ -1387,7 +1382,6 @@ u32 r8712_aes_decrypt(struct _adapter *padapter, u8 *precvframe)
|
||||||
|
|
||||||
} else
|
} else
|
||||||
prwskey = &stainfo->x_UncstKey.skey[0];
|
prwskey = &stainfo->x_UncstKey.skey[0];
|
||||||
prwskeylen = 16;
|
|
||||||
length = ((union recv_frame *)precvframe)->
|
length = ((union recv_frame *)precvframe)->
|
||||||
u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
|
u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
|
||||||
aes_decipher(prwskey, prxattrib->hdrlen, pframe,
|
aes_decipher(prwskey, prxattrib->hdrlen, pframe,
|
||||||
|
|
|
@ -79,13 +79,11 @@ static void mfree_all_stainfo(struct sta_priv *pstapriv)
|
||||||
{
|
{
|
||||||
unsigned long irqL;
|
unsigned long irqL;
|
||||||
struct list_head *plist, *phead;
|
struct list_head *plist, *phead;
|
||||||
struct sta_info *psta = NULL;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&pstapriv->sta_hash_lock, irqL);
|
spin_lock_irqsave(&pstapriv->sta_hash_lock, irqL);
|
||||||
phead = &pstapriv->free_sta_queue.queue;
|
phead = &pstapriv->free_sta_queue.queue;
|
||||||
plist = phead->next;
|
plist = phead->next;
|
||||||
while ((end_of_queue_search(phead, plist)) == false) {
|
while ((end_of_queue_search(phead, plist)) == false) {
|
||||||
psta = LIST_CONTAINOR(plist, struct sta_info, list);
|
|
||||||
plist = plist->next;
|
plist = plist->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +107,6 @@ u32 _r8712_free_sta_priv(struct sta_priv *pstapriv)
|
||||||
|
|
||||||
struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
||||||
{
|
{
|
||||||
uint tmp_aid;
|
|
||||||
s32 index;
|
s32 index;
|
||||||
struct list_head *phash_list;
|
struct list_head *phash_list;
|
||||||
struct sta_info *psta;
|
struct sta_info *psta;
|
||||||
|
@ -127,7 +124,6 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
||||||
psta = LIST_CONTAINOR(pfree_sta_queue->queue.next,
|
psta = LIST_CONTAINOR(pfree_sta_queue->queue.next,
|
||||||
struct sta_info, list);
|
struct sta_info, list);
|
||||||
list_del_init(&(psta->list));
|
list_del_init(&(psta->list));
|
||||||
tmp_aid = psta->aid;
|
|
||||||
_init_stainfo(psta);
|
_init_stainfo(psta);
|
||||||
memcpy(psta->hwaddr, hwaddr, ETH_ALEN);
|
memcpy(psta->hwaddr, hwaddr, ETH_ALEN);
|
||||||
index = wifi_mac_hash(hwaddr);
|
index = wifi_mac_hash(hwaddr);
|
||||||
|
@ -267,15 +263,10 @@ struct sta_info *r8712_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
|
||||||
|
|
||||||
void r8712_init_bcmc_stainfo(struct _adapter *padapter)
|
void r8712_init_bcmc_stainfo(struct _adapter *padapter)
|
||||||
{
|
{
|
||||||
struct sta_info *psta;
|
|
||||||
struct tx_servq *ptxservq;
|
|
||||||
unsigned char bcast_addr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
unsigned char bcast_addr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
||||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||||
|
|
||||||
psta = r8712_alloc_stainfo(pstapriv, bcast_addr);
|
r8712_alloc_stainfo(pstapriv, bcast_addr);
|
||||||
if (psta == NULL)
|
|
||||||
return;
|
|
||||||
ptxservq = &(psta->sta_xmitpriv.be_q);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sta_info *r8712_get_bcmc_stainfo(struct _adapter *padapter)
|
struct sta_info *r8712_get_bcmc_stainfo(struct _adapter *padapter)
|
||||||
|
|
|
@ -184,7 +184,6 @@ void _free_xmit_priv(struct xmit_priv *pxmitpriv)
|
||||||
sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt,
|
sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt,
|
||||||
struct pkt_attrib *pattrib)
|
struct pkt_attrib *pattrib)
|
||||||
{
|
{
|
||||||
uint i;
|
|
||||||
struct pkt_file pktfile;
|
struct pkt_file pktfile;
|
||||||
struct sta_info *psta = NULL;
|
struct sta_info *psta = NULL;
|
||||||
struct ethhdr etherhdr;
|
struct ethhdr etherhdr;
|
||||||
|
@ -199,7 +198,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt,
|
||||||
|
|
||||||
_r8712_open_pktfile(pkt, &pktfile);
|
_r8712_open_pktfile(pkt, &pktfile);
|
||||||
|
|
||||||
i = _r8712_pktfile_read(&pktfile, (unsigned char *)ðerhdr, ETH_HLEN);
|
_r8712_pktfile_read(&pktfile, (unsigned char *)ðerhdr, ETH_HLEN);
|
||||||
|
|
||||||
pattrib->ether_type = ntohs(etherhdr.h_proto);
|
pattrib->ether_type = ntohs(etherhdr.h_proto);
|
||||||
|
|
||||||
|
@ -236,7 +235,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt,
|
||||||
/* for mp storing the txcmd per packet,
|
/* for mp storing the txcmd per packet,
|
||||||
* according to the info of txcmd to update pattrib */
|
* according to the info of txcmd to update pattrib */
|
||||||
/*get MP_TXDESC_SIZE bytes txcmd per packet*/
|
/*get MP_TXDESC_SIZE bytes txcmd per packet*/
|
||||||
i = _r8712_pktfile_read(&pktfile, (u8 *)&txdesc, TXDESC_SIZE);
|
_r8712_pktfile_read(&pktfile, (u8 *)&txdesc, TXDESC_SIZE);
|
||||||
memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
|
memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
|
||||||
memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
|
memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
|
||||||
pattrib->pctrl = 1;
|
pattrib->pctrl = 1;
|
||||||
|
@ -347,7 +346,7 @@ sint r8712_update_attrib(struct _adapter *padapter, _pkt *pkt,
|
||||||
static sint xmitframe_addmic(struct _adapter *padapter,
|
static sint xmitframe_addmic(struct _adapter *padapter,
|
||||||
struct xmit_frame *pxmitframe)
|
struct xmit_frame *pxmitframe)
|
||||||
{
|
{
|
||||||
u32 curfragnum, length, datalen;
|
u32 curfragnum, length;
|
||||||
u8 *pframe, *payload, mic[8];
|
u8 *pframe, *payload, mic[8];
|
||||||
struct mic_data micdata;
|
struct mic_data micdata;
|
||||||
struct sta_info *stainfo;
|
struct sta_info *stainfo;
|
||||||
|
@ -369,7 +368,6 @@ static sint xmitframe_addmic(struct _adapter *padapter,
|
||||||
u8 null_key[16] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
u8 null_key[16] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
0x0, 0x0};
|
0x0, 0x0};
|
||||||
datalen = pattrib->pktlen - pattrib->hdrlen;
|
|
||||||
pframe = pxmitframe->buf_addr + TXDESC_OFFSET;
|
pframe = pxmitframe->buf_addr + TXDESC_OFFSET;
|
||||||
if (bmcst) {
|
if (bmcst) {
|
||||||
if (!memcmp(psecuritypriv->XGrptxmickey
|
if (!memcmp(psecuritypriv->XGrptxmickey
|
||||||
|
@ -825,16 +823,13 @@ void r8712_free_xmitframe(struct xmit_priv *pxmitpriv,
|
||||||
unsigned long irqL;
|
unsigned long irqL;
|
||||||
struct __queue *pfree_xmit_queue = &pxmitpriv->free_xmit_queue;
|
struct __queue *pfree_xmit_queue = &pxmitpriv->free_xmit_queue;
|
||||||
struct _adapter *padapter = pxmitpriv->adapter;
|
struct _adapter *padapter = pxmitpriv->adapter;
|
||||||
struct sk_buff *pndis_pkt = NULL;
|
|
||||||
|
|
||||||
if (pxmitframe == NULL)
|
if (pxmitframe == NULL)
|
||||||
return;
|
return;
|
||||||
spin_lock_irqsave(&pfree_xmit_queue->lock, irqL);
|
spin_lock_irqsave(&pfree_xmit_queue->lock, irqL);
|
||||||
list_del_init(&pxmitframe->list);
|
list_del_init(&pxmitframe->list);
|
||||||
if (pxmitframe->pkt) {
|
if (pxmitframe->pkt)
|
||||||
pndis_pkt = pxmitframe->pkt;
|
|
||||||
pxmitframe->pkt = NULL;
|
pxmitframe->pkt = NULL;
|
||||||
}
|
|
||||||
list_add_tail(&pxmitframe->list, &pfree_xmit_queue->queue);
|
list_add_tail(&pxmitframe->list, &pfree_xmit_queue->queue);
|
||||||
pxmitpriv->free_xmitframe_cnt++;
|
pxmitpriv->free_xmitframe_cnt++;
|
||||||
spin_unlock_irqrestore(&pfree_xmit_queue->lock, irqL);
|
spin_unlock_irqrestore(&pfree_xmit_queue->lock, irqL);
|
||||||
|
|
|
@ -255,9 +255,6 @@ static struct drv_priv drvpriv = {
|
||||||
static uint r8712_usb_dvobj_init(struct _adapter *padapter)
|
static uint r8712_usb_dvobj_init(struct _adapter *padapter)
|
||||||
{
|
{
|
||||||
uint status = _SUCCESS;
|
uint status = _SUCCESS;
|
||||||
struct usb_device_descriptor *pdev_desc;
|
|
||||||
struct usb_host_config *phost_conf;
|
|
||||||
struct usb_config_descriptor *pconf_desc;
|
|
||||||
struct usb_host_interface *phost_iface;
|
struct usb_host_interface *phost_iface;
|
||||||
struct usb_interface_descriptor *piface_desc;
|
struct usb_interface_descriptor *piface_desc;
|
||||||
struct dvobj_priv *pdvobjpriv = &padapter->dvobjpriv;
|
struct dvobj_priv *pdvobjpriv = &padapter->dvobjpriv;
|
||||||
|
@ -265,9 +262,6 @@ static uint r8712_usb_dvobj_init(struct _adapter *padapter)
|
||||||
|
|
||||||
pdvobjpriv->padapter = padapter;
|
pdvobjpriv->padapter = padapter;
|
||||||
padapter->EepromAddressSize = 6;
|
padapter->EepromAddressSize = 6;
|
||||||
pdev_desc = &pusbd->descriptor;
|
|
||||||
phost_conf = pusbd->actconfig;
|
|
||||||
pconf_desc = &phost_conf->desc;
|
|
||||||
phost_iface = &pintf->altsetting[0];
|
phost_iface = &pintf->altsetting[0];
|
||||||
piface_desc = &phost_iface->desc;
|
piface_desc = &phost_iface->desc;
|
||||||
pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints;
|
pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints;
|
||||||
|
|
|
@ -168,7 +168,6 @@ static void usb_write_mem_complete(struct urb *purb)
|
||||||
void r8712_usb_write_mem(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem)
|
void r8712_usb_write_mem(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem)
|
||||||
{
|
{
|
||||||
unsigned int pipe;
|
unsigned int pipe;
|
||||||
int status;
|
|
||||||
struct _adapter *padapter = (struct _adapter *)pintfhdl->adapter;
|
struct _adapter *padapter = (struct _adapter *)pintfhdl->adapter;
|
||||||
struct intf_priv *pintfpriv = pintfhdl->pintfpriv;
|
struct intf_priv *pintfpriv = pintfhdl->pintfpriv;
|
||||||
struct io_queue *pio_queue = (struct io_queue *)padapter->pio_queue;
|
struct io_queue *pio_queue = (struct io_queue *)padapter->pio_queue;
|
||||||
|
@ -186,7 +185,7 @@ void r8712_usb_write_mem(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem)
|
||||||
usb_fill_bulk_urb(piorw_urb, pusbd, pipe,
|
usb_fill_bulk_urb(piorw_urb, pusbd, pipe,
|
||||||
wmem, cnt, usb_write_mem_complete,
|
wmem, cnt, usb_write_mem_complete,
|
||||||
pio_queue);
|
pio_queue);
|
||||||
status = usb_submit_urb(piorw_urb, GFP_ATOMIC);
|
usb_submit_urb(piorw_urb, GFP_ATOMIC);
|
||||||
_down_sema(&pintfpriv->io_retevt);
|
_down_sema(&pintfpriv->io_retevt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,6 @@ sint r8712_endofpktfile(struct pkt_file *pfile)
|
||||||
|
|
||||||
void r8712_set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib)
|
void r8712_set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
struct ethhdr etherhdr;
|
struct ethhdr etherhdr;
|
||||||
struct iphdr ip_hdr;
|
struct iphdr ip_hdr;
|
||||||
u16 UserPriority = 0;
|
u16 UserPriority = 0;
|
||||||
|
@ -89,8 +88,7 @@ void r8712_set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib)
|
||||||
|
|
||||||
/* get UserPriority from IP hdr*/
|
/* get UserPriority from IP hdr*/
|
||||||
if (pattrib->ether_type == 0x0800) {
|
if (pattrib->ether_type == 0x0800) {
|
||||||
i = _r8712_pktfile_read(ppktfile, (u8 *)&ip_hdr,
|
_r8712_pktfile_read(ppktfile, (u8 *)&ip_hdr, sizeof(ip_hdr));
|
||||||
sizeof(ip_hdr));
|
|
||||||
/*UserPriority = (ntohs(ip_hdr.tos) >> 5) & 0x3 ;*/
|
/*UserPriority = (ntohs(ip_hdr.tos) >> 5) & 0x3 ;*/
|
||||||
UserPriority = ip_hdr.tos >> 5;
|
UserPriority = ip_hdr.tos >> 5;
|
||||||
} else {
|
} else {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче