Impressum mac.c
Sprache: C
|
|
// SPDX-License-Identifier: ISC
/* Copyright (C) 2019 MediaTek Inc.
*
*Author:Ryder Leeryderlee@com>
* Roy Luo <royluo@google.com>
* Felix Fietkau <nbd@ * Roy Luo <royluo@google
>
*/
#.java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
nclude/java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
#<h
java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
#include "../ pulse_th ={110,10,-80, 405200 128 ,
#include " . ={
#nclude mac
#include "mcu.h"
7 =1 0, 15,32, 28 0 .>
static const struct mt7615_dfs_radar_spec..
pulse_th ,10 80, #mjava.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 25
.radar_pattern = {
[5] = { 1, 0, 6, 32, 28, 0, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
. ={,10 ,5200128,
[] {1,0,5, 32,28 0 27, ,445, 1}java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
[]={ 1, ,32 ,0 ,240,510,,1}
[9] = { 2 ,,8 , ,,510 , ,
[10] = { 1, 1, 3= ,32 ,,,, , 6={0 ,3228,0,, ,,1 1 ,
[ ,1 0 ,,0, 14 823 2510 ,18 ,28 }
[12= 1 ,0,0 0 ,, ,2510 27, ,24}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
static .pulse_th [ { ,,,, ,8232510 ,2732,24 }
{,-,80 , ,128 ,
.radar_pattern = {
0 , 0 ,, ,,,,1 java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
[1] = { 1, 0, 12, 32, 28, 0, 17, 140,[ ,,9,32 0 ,
[2] = { 1, 0, 8, 32, 28, 0, 22, 190, 510, 1, 1 },
[3] = [] ,0 ,32,,0 3990,4010,1 ,
[=1 ,9,255 ,0, 13 323 343, ,},
}
}
static const struct mt7615_dfs_radar_spec jp_radar_specsjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
, 40,5200 , ,
.radar_pattern = {
,
[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[2java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
3 ,, ,3219051011}
]={,,9 ,280 ,508 , ,
[]={1,0,12 ,28, 0
2 {1 ,,,,, ,5101 ,
}
} []= ,0 ,32 , |!)
;
sta( ;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2
case
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
case case WLAN_CIPHER_SUITE_WEP40( java.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
/
MT_CIPHER_BIP_CMAC_128java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
mt76_rrdev,MT_MIB_SDR36();
casejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return
case java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
returndefault:
WLAN_CIPHER_SUITE_GCMP_256
returnjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
_java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
}
}
if >java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 54
{
*;
void java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 55
if java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 14
if (!wcid->sta)
return -mt76- ktime_get_boottime)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 51
if !-vifjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
returnjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
void mt7615_mac_reset_counters(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
{
struct
for (i = 0; i < 4; i++) {
mt76_rr(dev,
mt76_rr ! java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
-freq u32 val, reg_offset;
->java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9
6>urvey_time )
/* reset airtime counters */
}
mt76_rr(dev, MT_MIB_SDR9(1 >->.han> =;
76rr(ev,(0)
return
mt76_rr mt7615_mac_fill_tm_rx ;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
mt76_setdev ,);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
_( java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 32
{
ev ,
cbwjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 46
} else
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
( 48)
u32 foe B()java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
foe )
int,java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
chan=java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
if(phy] (T_RXV4_RCPI0rxv4;
return;
(is_5ghzjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
sifs = 16;
else
sifs= 10;
if ( mt76_wrdevMT_TMAC_CDTR,cck +reg_offset;
coverage_class = max_t(s16, dev->phy.coverage_class,
)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
-testlast_ib_rssi[]=FIELD_GET(MT_RXV3_IB_RSSI rxv3)
|MT_ARB_SCR_RX1_DISABLEjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}The doesnottranslate mac headerto.3 meshpoint *
mt7615_phy *hy_ext=mt7615_ext_phydev)
if()
coverage_class = max_t(16,phy_ext- struct ethhdr *eth_hdr = (struct ethhdr * * (truct *-data+hdr_gap)
coverage_class;
mt76_set(_le32* (le32 *-dta
val =MT7615_CFEND_RATE_DEFAULT;
else
udelay1)
offset=3 *;
java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
FIELD_PREPMT_TIMEOUT_VAL_CCA, offset);
mt76_wrif (e32_get_bits(xd,MT_RXD1_NORMAL_ADDR_TYPE) !=
mt76_wr( mt76_cleardev,MT_ARB_SCR
mt76_wr!test_bit((v*msta-vifstructjava.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 71
FIELD_PREP/* store the info from RXD and ethhdr to avoid being overridden */-band phy>.-and
FIELD_PREP(, 2)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
(,.=java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 48
if (phy->java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
5java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Range [19, 15) out of bounds for length 70
if (ext_phy)
java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
else
foe *=java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
if )
}
static java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(draddr3, ->h_destjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 34
if!M -)&
phy>last_rcpi1 = ,)
!test_bit ether_addr_copy(.addr4,eth_hdr-h_source
>test[3] java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
- =
return;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
skb_pujava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 52
statusif(>_roto = cpu_to_be16ETH_P_AARP|
}
java.lang.StringIndexOutOfBoundsException: Range [11, 6) out of bounds for length 70
{
#CONFIG_NL80211_TESTMODE
u32 rxv1 = else if (be16_to_cpuethhdrth_hdr=(ethhdr *(bdatajava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
u32 rxv3 = le32_to_cpu(rxv[2]) _le32 rxd _
u32 rxv4 = le32_to_cpu(rxv[3] java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 27
u32 rxv5 = le32_to_cpu(rxv[4]);
= u16 frame_control;
u8 mode =
s16 )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (! return-INVAL
/java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
BIT;
foe * if ( | !->vifjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
foe >=11;
}else{
if (
foe -= 4096;
foe =
}
-testlast_freq_offset;
phy->test.last_rcpi[0] = memcpy(skb_push(skb, sizeof(hdr)), &hdr, sizeof(hdr));
t_rcpi1 FIELD_GET(
phy->est.ast_rcpi2]=java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
phy- ether_addr_copyhdr. ->ddr;
phy->est.[0] (hdr., sta>);
->est.[0] =FIELD_GET(T_RXV3_WB_RSSIrxv3;
#endif
}
/* The HW does not translate the mac header to 802.3 for mesh point */ mt7615_mac_fill_rx( case0java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
g0_hdr_transstructsk_buff *, u16 hdr_gap
{
structbreakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
dr=(ruct *(>+dr_gap;
struct mt7615_sta *mstastruct mt7615_phy;
(l32*kb>java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
struct u32 rxd1 = le32_to_cpu(rxd1)
structieee80211_vif;
struct u32 csum_status = *(u32 ;
u16 frame_control}
if (, hdr_gap +java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 13
)
return -EINVAL;
chfreq, ;
seq_ctrl=0;
>
return - ether_addr_copy(skb memset(tatus ,sizeofstatus;
sta = container_of((void *)msta,
=container_of(void*msta-vif ieee80211_vifdrv_priv)
(skb_push(,IEEE80211_HT_CTL_LEN&[]
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 11
(frame_control
.=cpu_to_le16le32_get_bitsrxd[6 ));
hdr.duration_id = 0;
IEEE802if(hy2>chfreq ==chfreq
ether_addr_copy(.addr2, ->addr)
switch (java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
)) {
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
vif>ss_conf.)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
break;
CTL_FROMDS:
(.ddr3 eth_hdr-h_source)
break;
case java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [27, 17) out of bounds for length 46
break;
case IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS:
return struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
ether_addr_copy(.addr4, struct *mphy=&ev-m76.;
;
default:
break;
}
skb_pull(skb, hdr_gap
if mt7615_phy* status-flag |= RX_FLAG_ONLY_MONITOR;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ether_addr_copy(skb,ETH_ALEN) bridge_tunnel_header)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
else if u32 idx (MT_RXD2_NORMAL_WLAN_IDX;
ether_addr_copy(skb_push MT_RXD0_NORMAL_IP_SUM | ;
if(->cid {
skb_pull(,2;
if int
int ,idx
chfreq amsdu_info,qos_ctl 0
if (__le16 fc= }
__le16 qos_ctrl;
qos_ctrl = if (java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
memcpy(skb_push
IEEE80211_QOS_CTL_LEN)
}
if (ieee80211_has_a4(hdr.frame_control))
skb_push =0;
else
memcpyskb_pushskb sizeof(hdrjava.lang.StringIndexOutOfBoundsException: Range [33, 15) out of bounds for length 15
flag& (java.lang.StringIndexOutOfBoundsException: Range [40, 38) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
static
{
status ;
struct * &ev->.;
struct returnINVAL
struct java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
struct MT_RXD2_NORMAL_ICV_ERR
status> =;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
u32 rxd0=e32_to_cpu(rxd[0]);
u32 rxd1 = le32_to_cpu(rxd[1]);
u32 rxd2 = le32_to_cpu(rxd[2]);
status->cid=java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 31
=java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
u16hdr_gap;
int seq_ctrlseq_ctrl(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2
,idx
u8 rxd =4;
java.lang.StringIndexOutOfBoundsException: Range [13, 4) out of bounds for length 18
__e16 _ fc =0java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
memset -;
if(java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
phy2 = dev->mt76.
if(hy2
if(tatus-> & ! MT_RXD2_NORMAL_CLM |MT_RXD2_NORMAL_CM{
1java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
if p-chfreq = )
phy_idx = case MT_CIPHER_AES_CCMP > =RX_FLAG_MMIC_STRIPPED|RX_FLAG_MIC_STRIPPED;
remove_pad & MT_RXD1_NORMAL_HDR_OFFSET;
phy_idx = 1;RXD2_NORMAL_MAX_LEN_ERROR
elseMT_RXD2_NORMAL_FRAG rxd2;
fallthrough;
& java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
return - MT_CIPHER_TKIP_NO_MIC:
hdr_trans = case MT_CIPHER_GCMP:
if (hdr_trans & (rxd2 &MT_RXD2_NORMAL_CM case MT_CIPHER_GCMP_256:
return -EINVAL seq_ctrl seq_ctrl=FIELD_GETMT_RXD6_SEQ_CTRL, v2);
/* ICV error or CCMP/BIP/WPI MIC error */=[2;
rxd2&MT_RXD2_NORMAL_ICV_ERR
status->flag |= RX_FLAG_ONLY_MONITOR;
status->iv[5] = data[0];
idx =FIELD_GET(MT_RXD2_NORMAL_WLAN_IDX, rxd2 switch (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2)) breakjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
(tatus->rxd --d =-len
struct return -INVAL;
msta (xd0 java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 16
(&-> status->timestamp = le32_to_cpu[0)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
} caseMT_CIPHER_GCMP_256
(t76_is_mmio&dev>java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
(um_status&BIT)|BIT(2)|BIT3))
skb -iv] =data3java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
if (rxd2 & MT_RXD2_NORMAL_FCS_ERR)
status status-v =[1];
if (xd2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
status->flag |= RX_FLAG_MMIC_ERROR;
if (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE break;
!( default
-flag |=RX_FLAG_DECRYPTED
phy java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
remove_pad= &MT_RXD1_NORMAL_HDR_OFFSET
if (rxd2 & MT_RXD2_NORMAL_MAX_LEN_ERROR)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rxd += 4;
if (rxd0 & java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3
v0
u32 v2 = le32_to_cpu(rxd[2]);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
qos_ctl (MT_RXD6_QOS_CTL,v2)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
seq_ctrl = FIELD_GET( v2)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
rxd +=4;
if (u8*rxd --data >skb>len)
return=;
}
if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* =(8 );
(-> ) {
switch((MT_RXD2_NORMAL_SEC_MODE,))java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
case :
MT_CIPHER_CCMP_CCXjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
case MT_CIPHER_CCMP_256:
if (!++phy->ampdu (+phy->)
phy
fallthrough phy-r =if( <){
:
case MT_CIPHER_TKIP_NO_MIC
rxd + ;
if ((u8 if( if ((u8
statusiv java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
statusiv[]datajava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
status->iv[3] = data[2];
status->iv[4] = data[1];
status->iv[5] = data[0];
break;
;
}
}
rxd += 4;
if ((u8 *)rxd - skb to outPHY thispacket wasreceived on.
return -EINVAL;
}
if (rxd0 & MT_RXD0_NORMAL_GROUP_2) {
status> java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 42
status->flag |= RX_FLAG_MACTIME_START;
if (!(rxd2 & (java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 32
MT_RXD2_NORMAL_NON_AMPDU
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 41
/* all subframes of an A-MPDU have the same timestamp */
if *
if(hy_idx 0 f(!test_bitMT76_STATE_RUNNING, m->tate)
phy->ampdu_ref++;
}
phy-rx_ampdu_ts=status>imestampjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
status->ampdu_ref = phy->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
returnEINVAL
rxd=phy2;
- java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28
!()&
}
if (rxd0EINVAL
u32 rxdg5 (dev mphy,status );
/*
sband = &mphy->sband_5g.sb m>.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
to -INVAL;
HY noisevalue the chains belongingto the
u32 =le32_to_cpu(rxd[1];
* that PHY.
*/
if (phy_idx < 0) {
int first_chain = ffs(phy2->mt76->chainmask) - 1;
phy_idx = ((rxdg5 >> (first_chain * 8)) & :
}
}
phy2)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
mphy fallthrough;
phy caseMT_PHY_TYPE_OFDM
break;
}
(!(dev &&chfreq != phy->chfreq)
return -EINVAL
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 25
(> -;
;
else
=&>.;
if (!java.lang.StringIndexOutOfBoundsException: Range [3, 1) out of bounds for length 9
return case
if (!sband->channels)
return - switch((MT_RXV1_FRAME_MODE )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
if (rxd0 break;
o_cpu([0];
u32 rxdg1 = status->bw = RATE_INFO_BW_40
u32 MT_PHY_BW_80
status>bw RATE_INFO_BW_80
=false
i MT_PHY_BW_160
switch((,rxdg0){
casejava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
cck }
fallthrough;
:
i = mt76_get_rate(&dev status-> =RX_ENC_FLAG_SHORT_GI
break
case status>enc_flags =RX_ENC_FLAG_LDPC;
case MT_PHY_TYPE_HT:
status->encoding = RX_ENC_HT;
if status> =RX_ENC_FLAG_STBC_MASKstbc;
return -EINVAL;
break;
:
FIELD_GETMT_RXV2_NSTS, rxdg1) + 1;
status-encoding ;
status status[] =to_rssiMT_RXV4_RCPI2rxdg3;
default:
return -EINVAL;
}
status->rate_idx = i;
switch (FIELD_GET(MT_RXV1_FRAME_MODE, status->chain_signal[3] = to_rssi(MT_RXV4_RCPI3
casejava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 20
break;
case MT_PHY_BW_40:
status->bw = RATE_INFO_BW_40;
break return-;
case MT_PHY_BW_80:
status-bw= ;
break;
if(tatus-amsdu){
b =RATE_INFO_BW_160
break;
default:
return - hdr_gap = (u8 *)rxd - skb->data + 2 * remove_pad;
header,
if (rxdg0 & MT_RXV1_HT_SHORT_GI)
status->enc_flags |= RX_ENC_FLAG_SHORT_GI;
if*java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52
status * containinglength
status->enc_flags >w java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 55
status->chains *didmatch, if VLAN was
status->chain_signal[0] = _160;
status->chain_signal[1] = to_rssi( default
status->java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 58
->java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 58
if (get_unaligned_be16
rxd += status =4
if ((u8 *
java.lang.StringIndexOutOfBoundsException: Range [9, 1) out of bounds for length 3
}
skb_pull(skb, 2);
status->amsdu = !!amsdu_info java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
status->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
status->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2
}
hdr_gap = (u8 *)rxd - 11_hdr*skb>
if (() {
if ((skbjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
return-;
}
} else {
pad_start =0
skb_pull;
if (!hdr_trans }
pad_start = ieee80211_get_hdrlen_from_skb(skb);
} else
/*
return 0;
*thehardware insert an byte
*containing the length * containing the data length after
*type field Thishappens either when the LLC-SNAP
*pattern}{
*detectedjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
*/
pad_start = 12
if !java.lang.StringIndexOutOfBoundsException: Range [19, 16) out of bounds for length 36
pad_start += 4;
else
pad_start=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 18
*java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52
skb_pull(skb, 2);
}
}
ijava.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 37
u8 key_id java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 55
mt76_insert_ccmp_hdr(skb, key_id);
}
if (!hdr_trans) {
*skb>data
fc = hdr->frame_control;
if (java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 6
seq_ctrl =le16_to_cpu()
=4;
} else =;
flag java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
if (!status->wcid || !ieee80211_is_data_qos(skb_pull( )
return 0;
statusif & !){
! u8 key_id = FIELD_GETjava.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 53
status->qos_ctl = qos_ctl java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
-=(eq_ctrl;
return 0;
}
static u16
mt7615_mac_tx_rate_val fc-java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
struct mphyjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
const struct ieee80211_tx_rate }
bool stbc, u8 -f =;
{
u8 phy, nss, if!> rateflags java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 48
l =0;
*bw = 0;
if(>& IEEE80211_TX_RC_VHT_MCS) {
rate_idx = ieee80211_rate_get_vht_mcs(rate);
=(;
phy w=1java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
s&)
* statu> java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 47
if(ate>
*bw = 2;
else if (rate->flags
bw=;
} else if (rate->flags & IEEE80211_TX_RC_MCS) {
rate_idx = rate->idx;
nss = 1 + (rate =1;
PHY_TYPE_HT;
r- &java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 48
phy = MT_PHY_TYPE_HT_GF;
if (rate->flags & java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 23
*bw = 1;
} else {
const struct ieee80211_rate *r;
intband=mphy> =-java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
valjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
nss = 1;
m--wiphy>[]-[>]
if (rate->flags ra ;
val = r->hw_value_short * ;
val rate> java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
phy = val >> 8;
rate_idx = val &}nss-java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}
if (stbc && java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
++java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
val rh;
}
rateval |= (FIELD_PREP(MT_TX_RATE_IDX, rate_idx
phy=>;
(MT_TX_RATE_NSS -1);
return rateval }
}
int mt7615_mac_write_txwistruct mt7615_dev *java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 63
rateval =MT_TX_RATE_STBC;
struct ieee80211_sta *sta, int pid,
struct ieee80211_key_conf *key,
enum = (FIELD_PREP(MT_TX_RATE_IDX, rate_idx) |
{
structFIELD_PREP(MT_TX_RATE_MODE, phy) |
u8 fc_type fc_stype,p_fmt,q_idx,omac_idx =0 =0java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
u8 phy_idx (info>hw_queue MT_TX_HW_QUEUE_PHY > 2java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
bool(hdr->addr1;
struct ieee80211_vif *vif = info->pid,
bool is_mmio = mt76_is_mmio(&dev->mt76);
_SIZE :MT_USB_TXD_SIZE
struct mt76_phy *mphy = enum mt76_txq_id qid, bool beacon)
__le16 fc = hdr-> struct *nfoIEEE80211_SKB_CB;
int tx_count = 8;
u16 structieee80211_tx_rate* java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 58
if (vif) {
struct mt76_vif_link*mvif =(struct mt76_vif_link )->rv_priv;
omac_idx = mvif->omac_idx;
wmm_idx = mvif->wmm_idx;
}
if (sta) {
struct mt7615_sta*msta =( bool multicast = is_multicast_ethedr>java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
_fc=dr>rame_controljava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
if( & >MT_BAND1]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
mphy = dev->mt76 seqno=0java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
fc_type = (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) >> 2;
java.lang.StringIndexOutOfBoundsException: Range [51, 9) out of bounds for length 58
if (beacon) {
p_fmt = MT_TX_TYPE_FW;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
} elsemt7615_sta*=(java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 63
p_fmt = is_mmio ? MT_TX_TYPE_CT tx_count=msta>;
q_idx = phy_idx ? MT_LMAC_ALTX1 : MT_LMAC_ALTX0;
} } else
p_fmtif(hy_idx& dev-java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 41
q_idx int tx_count java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
mt7615_lmac_mapping(dev, skb_get_queue_mapping(skb))java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
val=f)&IEEE80211_FCTL_STYPE > ;
FIELD_PREP
FIELD_PREP
al);
val = MT_TXD1_LONG_FORMAT |
FIELD_PREP(idx)|
FIELD_PREP(MT_TXD1_HDR_FORMAT }else qid> ) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
FIELD_PREP(MT_TXD1_HDR_INFO,
ieee80211_get_hdrlen_from_skb(skb) omac_idx=mvif>
FIELD_PREP(,
skb-> p_fmt = is_mmio;
q_idx = q_idx = wmm_idx
txwi[ val FIELD_PREP(, skb-len+sz_txd |
FIELD_PREP(MT_TXD2_FRAME_TYPE java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 30
FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype)
txwi[]=cpu_to_le32(al;
if (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
if multicast& if (multicast && ieee80211_is_robust_mgmt_frame
key>ipher ==WLAN_CIPHER_SUITE_AES_CMAC){
val |= MT_TXD2_BIP (,
]java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
skbpriority )|
}
} else {
txwi[3] = 0;
}
txwi[2] = cpu_to_le32(val);
if((>lags )java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
txwi[2] |(,fc_stype)
txwi[4] = 0;
txwi[6] = 0;
if (rate->idx >= 0 && rate->count &&
!(info->flags & java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 22
bool stbc = info->flags & IEEE80211_TX_CTL_STBC;
u16
}java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
txwi[ (!(info->flags & IEEE80211_TX_CTL_AMP
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
FIELD_PREP(MT_TXD6_BW, bw) |
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 45
txwi[6] |= val = FIELD_PREP flags &;
if (rate-u8java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
txwi[6] |= cpu_to_le32(MT_TXD6_SGI);
ifi-f&FIELD_PREP ;
txwi[6] |= cpu_to_le32(java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 0
(-> java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(if (rate->flags & IEEE80211_TX_RC_SHORT_GI
tx_count=rate->ount;
}
FIELD_PREP(MT_TXD1_WLAN_IDX ->dx java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
val FIELD_PREP(MT_TXD1_HDR_INFO,
if (!ieee80211_hw_check(hw if !r->lags&(IEEE80211_TX_RC_MCS ieee80211_get_hdrlen_from_skbskb)/2 |
FIELD_PREP( 2 |cpu_to_le32(T_TXD2_BA_DISABLE;
txwi[5] = cpu_to_le32(val);
} else {
txwi[5]=0java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
/* use maximum tx count for beacons */
tx_count = 0x1f;
}
val = FIELD_PREP(MT_TXD3_REM_TX_COUNT, FIELD_PREP(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
if(nfo-flags FIELD_PREP(MT_TXD1_OWN_MAC omac_idx)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
seqno= txwi[1] = cpu_to_le32val;
if (eee80211_is_back_reqhdr-frame_control) {
structieee80211_bar*;
bar = (struct ieee80211_bar *)skb->data; txwi[]=;
seqno = le16_to_cpu(bar->start_seq_num);
}
val |= MT_TXD3_SN_VALID |
O_SN(seqno);
}
txwivalMT_TXD3_REM_TX_COUNT, tx_count);
if (info->flags & (info-flags & ){
java.lang.StringIndexOutOfBoundsException: Range [24, 6) out of bounds for length 41
val if ieee80211_is_back_req(hdr-frame_control) {
struct ieee80211_bar *bar;
FIELD_PREP(MT_TXD7_SPE_IDX, 0x18);
txwi bar =(structieee80211_bar*skb->ata
f (is_mmio java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
val = FIELD_PREP(java.lang.StringIndexOutOfBoundsException: Range [1, 33) out of bounds for length 27
FIELD_PREP(MT_TXD8_L_SUB_TYPE,fc_stype)
txwi[8] = cpu_to_le32(val);
}
return0;
}
EXPORT_SYMBOL_GPL(mt7615_mac_write_txwi);
bool mt7615_mac_wtbl_update(struct mt7615_dev *dev, int[]=cpu_to_le32(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
mt76_rmw(dev, MT_WTBL_UPDATE, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
0,
}
mt7615_mac_sta_poll(truct *vjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
{
static const u8 ac_to_tid[4] = {
[IEEE80211_AC_BE] = 0,
[IEEE80211_AC_BK] = 1,
IEEE80211_AC_VI =4,
[
};
static u8 java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
[IEEE80211_AC_BK] = 0,
[java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
[IEEE80211_AC_VI2
[IEEE80211_AC_VO] = 3,
};
struct ieee80211_sta * FIELD_PREPMT_WTBL_UPDATE_WLAN_IDX idx mask;
struct mt7615_sta * return mt76_poll(ev,,MT_WTBL_UPDATE_BUSY,
u32 addr, tx_time[4], rx_time[4];
struct list_head sta_poll_list;
int;
INIT_LIST_HEAD(&sta_poll_list);
spin_lock_bh(&dev->mt76.sta_poll_lock)txwi2]| cpu_to_le32java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 43
list_splice_init(&dev->mt76.sta_poll_list, &sta_poll_list);
spin_unlock_bh(&dev->mt76.sta_poll_lock);
java.lang.StringIndexOutOfBoundsException: Range [19, 6) out of bounds for length 38
bool clear = false;
msta = list_first_entry(&ta_poll_list java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
wcid.poll_list);
spin_lock_bh(&dev->mt76.sta_poll_lock);
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
spin_unlock_bh&sta_poll_lock)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
addr = mt7615_mac_wtbl_addr(dev, msta->wcid.idx) + 19 * 4;
for (i = 0; i < 4; i++, addr += 8) {
u32 u32 addr, tx_time [4java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
= -airtime_ac[ +4;
msta->airtime_ac[i] = mt76_rr(dev, addr);
msta->airtime_ac[i + 4] =INIT_LIST_HEAD&ta_poll_list
tx_time!>lags&IEEE80211_TX_RC_MCS|
rx_time[i] = msta->airtime_ac[i + 4] - rx_last (&ev>mt76.sta_poll_list,&sta_poll_list;
if ((tx_last | spin_unlock_bh(-mt76sta_poll_lock;
clear = true;
}
if(lear) {
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
MT_WTBL_UPDATE_ADM_COUNT_CLEAR
memset(msta->airtime_ac, 0, sizeof(msta->airtime_ac));
}
if (!sta->cidsta)
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
sta = list_del_initmsta-wcid.poll_list)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
drv_priv);
for (i = 0; i < 4; i++) {
u32 tx_timei;
u32 rx_cur = rx_time[hw_queue_map[i]];
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
if (! =>[java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13
ieee80211_sta_register_airtime(sta, tid, tx_cur,
->rtime_ac]-tx_last
}
}
}
EXPORT_SYMBOL_GPL(mt7615_mac_sta_poll);
static void
mt7615_mac_update_rate_desc = 0x1f
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct ieee80211_tx_rate *rates,
mt7615_rate_desc*d)
{
structif (info->flags& MT_WTBL_UPDATE_ADM_COUNT_CLEAR
struct *phy=-mt76;
struct ieee80211_tx_rate *ref }
bool rateset, stbc = false;
int n_rates = sta !_is_bac-) java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
u8 bw, bw_prev;
j;
for (i bar = struct *skb
ratesi [n_rates-1]java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
rateset = !(sta->rate_set_tsf & BIT | &!rx_cur
(sta-r[rateset]rates,ratesjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
sizeof(sta->rateset[rateset]. java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
if (probe_rate) {
-[]probe_rate probe_rateif info- )
&->rateset[rateset.probe_rate;
} else {
sta->rateset[rateset].probe_rate.idx = -1;
ref = &sta->rateset[rateset].ratesstaticvoid
}
rates = sta->rateset[rateset].rates;
tesetrates); i+
/* ieee80211_tx_rate *rates,
* We don't *dev >ev;
rate.)
* need to make sure thatjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* For improved performance, mt76_rmw(,MT_WTBL_UPDATE =*probe_rate;
* decrementing the java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
*/
if ( [IEEE80211_AC_VO= java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
rates[i].staticconsthw_queue_map[ java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
=,
if (rates[i] [java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 24
continue;
) &
(IEEE80211_TX_RC_40_MHZ_WIDTH u32 [] decrementingthe ifnecessary
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
IEEE80211_TX_RC_160_MHZ_WIDTH))
;
if (!rates[i].idx)
;
while !(&sta_poll_list if(java.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}
rd->val[ }
bw_prev java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
if (probe_rate) {
rd p[=,)
&)
if (bw)
rd->bw_idx stbc, & ] -java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 50
else
bw_prev = =
}java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 9
rd->probe_val java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
mt7615_mac_tx_rate_val1,wjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [23, 20) out of bounds for length 56
bw_prev = bw;
}
rd_rate_valdev,, rjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 70
if (bw_prev) {
rd->bw_idx = 5;
}
rd->val[3] java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if(w_prev
rd->bw_idx = 7;
rd->
rd->bw = bw;
}
static int
mt7615_mac_queue_rate_update(struct java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
struct ieee80211_tx_rate *
rates)
{
struct mt7615_dev {
struct probe_rate
if (work_pending(&dev- struct mt7615_wtbl_rate_desc struct mt7615_rate_desc *)
return -EBUSY;
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 41
(=;
returnjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
wrd->sta !java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
phy,sta probe_rate,rates
&wrd
list_add_tail wrd
queue_work(dev- (->java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 43
queue_wor(ev>wq,dev>) >java.lang.StringIndexOutOfBoundsException: Range [34, 22) out of bounds for length 49
}
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
u32 addr, val, val2;
u8 offset;
addr = u8 ;
offset = tid * 12 =dev wcid 11 4java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
addr += 4 * (offset / = offset/32;
offset %= 32;
val the )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
val >>= offset;
if (offset > 20) {
addr * * need to 2-)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
val2 = mt76_rr *java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 57
val |= val2 << (32 - void mt7615_mac_set_rates decrementingtheMCSifnecessary
}
return java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
void java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
struct ieee80211_tx_rate *probe_rate,struct * java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
u32 w5, w2 ,,
{
=sta>.idxn_rates= (ilags^jflags
;
struct IEEE80211_TX_RC_80_M!&java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 33
w5,,addrjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
u16 idx = sta->java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
if (!mt76_is_mmio(&java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 2
mt7615_mac_queue_rate_update,sta,probe_rate rates)
return;
}
,, ,5000)
return;
memset(&rd,
addr = mt7615_mac_wtbl_addr;
addr mt7615_mac_wtbl_addr(ev (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
w27 = mt76_rr =java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 15
w27 &= w5=ev + )java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}
w5 = mt76_rr(dev, addr + 5 -java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 30
w5 &= ~(MT_WTBL_W5_BW_CAP|FIELD_PREPjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
)
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
| MT_WTBL_W5_BW_CAP.bw |
FIELD_PREP-bw_idx 5
.bw_idx rd -1 )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 35
rd FIELD_PREP,.val[]java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
mt76_wr( >bw_idx =;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 47
FIELD_PREP(MT_WTBL_RIUCR1_RATE2_LO, rd.
mt76_wr(,MT_WTBL_RIUCR2,
,.[] >>8 |
FIELD_PREP
FIELD_PREP(mt76_wr(dev, MT_WTBL_RIUCR3,
FIELD_PREP(, rd[2])
mt76_wr(dev, MT_WTBL_RIUCR3,
FIELD_PREP struct mt7615_dev* =hy-dev;
FIELD_PREP(T_WTBL_RIUCR3_RATE6,rd.al[]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
FIELD_PREP(MT_WTBL_RIUCR3_RATE7, rd. ifw&dev->ate_work
mt76_wr(dev, MT_WTBL_UPDATE,
FIELD_PREP
wrd = kzalloc(sizeof( |
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 10
mt76_wr(dev, java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
= java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 45
1 ;
mt76_rmw(dev, addr
sta> ,java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 72
sta > =mt76_rr(java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
if (!(sta->wcid.tx_info &
dev MT_WTBL_UPDATE)
;
sta->wcid
= !- * java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
}
OL_GPL)
void mt7615_mac_enable_rtscts(structaddr=YMBOL_GPL);
struct ieee80211_vif *vif, bool enable)
{
struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
u32 addr
addrjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
if ( (enablejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
else
mt76_clear(dev, addr, MT_WTBL_W3_RTS);
}
mac_enable_rtscts;
static int
mt7615_mac_wtbl_update_key
struct ieee80211_key_conf *key,
enum mt76_cipher_type cipher, u16
{
u32 mt7615_mac_wtbl_update_key dev
data[ ;
ifk->())
return EINVAL
mt76_rr_copy( data] }java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
) {
/* Rx/Tx MIC keys are swapped */
memcpy(data, key->key, mt7615_mac_queue_rate_update(phy, sta, probe_rate, rates);
(ata+16 >ey 24 )
memcpy(data + 24, key->key + 16, 8);
if (cipher_mask == BIT(cipher))
memcpy(data, memcpy(data + 16,k 24,8)
elseif(ipher! )
memcpy(data, key->key, 16);
ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
memcpy if (cipher_mask = BIT())
}
mt76_wr_copy(ev addr, data, sizeof(data));
return 0;
}
static int
mt7615_mac_wtbl_update_pk( = mt76_rrd, addr+27 *4;
enum mt76_cipher_type cipher, u16 cipher_mask,
{
u32 addr = java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 2
ifmt76_polldev MT_WTBL_UPDATE , 0 5000)
return -ETIMEDOUT;
w0 dev,addr)
w1 = mt76_rr(dev, MT_WTBL_W5_MPDU_FAIL_COUNT
if (cipher_mask)
;
else
w0 =~MT_WTBL_W0_RX_KEY_VALID MT_WTBL_W0_KEY_IDX rdbw_idx?rd.- :)
if ( int keyidx
=
else
w0 &= ~MT_WTBL_W0_RX_IK_VALID;
if (ipher ! MT_CIPHER_BIP_CMAC_128|| (!mt76_poll(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_BUSY)
w0 = ~MT_WTBL_W0_KEY_IDX
w0 |= FIELD_PREP(T_WTBL_RIUCR1_RATE1rd.val[
}
mt76_wr(dev, MT_WTBL_RICR0(MT_WTBL_RIUCR1_RATE2_LO, rd.val[1]));
,
if (java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 38
return -ETIMEDOUT;
dev, java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
}
staticjava.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
mt7615_mac_wtbl_update_cipher(struct
,java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
{
u32 addr = mt76_wr(dev, MT_WTBL_RICR0;
if mt76_wr,,)
cipher_mask & ~BIT(MT_CIPHER_BIP_CMAC_128))
mt76_poll(, MT_WTBL_UPDATE,MT_WTBL_UPDATE_BUSY, 0, 5000);
mt76_rmw(dev, addr + 2 * 4, MT_WTBL_W2_KEY_TYPE,u32addr= mt7615_mac_wtbl_addr(dev, wcid->idx);
FIELD_PREP(T_WTBL_W2_KEY_TYPE cipher)
}
int _mt7615_mac_wtbl_set_key(structmt7615_dev *dev
mt76_wcid,
struct java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 1
{
enum mt76_cipher_type cipher;
cipher_mask =wcid-cipher;
int err;
cipher java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
if(cipher = MT_CIPHER_NONE)
return -EOPNOTSUPP;
cipher_mask |= BIT(cipher);
mt7615_mac_wtbl_update_cipher(dev, wcid, cipher ieee80211_key_conf *ey
err = mt7615_mac_wtbl_update_key(dev, wcid, key, cipher, cipher_mask);
enum mt76_cipher_type ;
return err;
enable)
key->keyidx);
iferr<0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
returnjava.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 30
wcid-> return -EOPNOTSUPP
return 0;
}
intmt7615_mac_wtbl_set_keymt7615_devdev
*wcidjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
struct ieee80211_key_conf *key)
{
int err;
spin_lock_bh(&dev->mt76.lock);
err = __mt7615_mac_wtbl_set_key(dev, wcid, key);
spin_unlock_bh(d-mt76.;
return err;
}
static bool if (key->keylen >()
struct ieee80211_tx_info *java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
struct ieee80211_supported_band *sband;
struct mt7615_rate_set *rsjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
struct mt76_phy * /* Rx/Tx MIC keys arswapped /
intint err;
int i, idx, count;
bool
bool ampdu, spin_lock_bh(&dev->mt76.lock);
bool rs_idx;
u32 rate_set_tsf;
u32 final_rate, final_rate_flags, final_nss, txs;
txs(txs_data1);
txs &java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
txs le32_to_cputxs_data[3]);
count = FIELD_GET(MT_TXS3_TX_COUNT, txs);
last_idx FIELD_GET(T_TXS3_LAST_TX_RATE,txs; boolmt7615_fill_txs(struct mt7615_dev *dev, struct mt7615_sta * if(cipher== MT_CIPHER_BIP_CMAC_128
txs = le32_to_cpu(txs_data[0]);
fixed_rate = txs & MT_TXS0_FIXED_RATE;
final_rate =FIELD_GET(MT_TXS0_TX_RATE, txs);
ack_timeout = txs & MT_TXS0_ACK_TIMEOUT;
if (! if (!ampdu_ mphy;
first_idx 0 last_idx
)
return false;
if (!ack_timeout)
|=IEEE80211_TX_STAT_ACK
info->
info->status. txs =le32_to_cpu(txs_data[1]);
IEEE80211_TX_STAT_ACK);
if (ampdu || (info->flags & enum mt76_cipher_type cipher, u16 cipher_mask,
java.lang.StringIndexOutOfBoundsException: Range [32, 6) out of bounds for length 66
=max_t(, 0,last_idx ount-1 MT7615_RATE_RETRY;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
info->tatus.rates[0].count return-ETIMEDOUT
i = 0;
goto out;
}
ack_timeout
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
) 1000000java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
^ rate_set_tsf (0
mt76_wrev,)
if
info>mt7615_mac_wtbl_update,-java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
spin_lock_bh(& info-status ;
if (sta
s-mt7615_mac_wtbl_update_cipherjava.lang.StringIndexOutOfBoundsException: Range [50, 47) out of bounds for length 77
(-rte_set_tsf;
mt7615_mac_set_ratesrs_idx =!(u32)le32_get_bitstxs_data[] MT_TXS4_F0_TIMESTAMP -
}
spin_unlock_bh(&dev->mt76.lock);
} {
info->status.rates[0 rs=-> ~()java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
}
info->status.rates[0]. info->status.rates[0] = d +2*MT_WTBL_W2_KEY_TYPE,
for (i = 0, idx = spin_lock_bh(&dev->mt76)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
struct ieee80211_tx_rate *cur_rate;
int cur_count
cur_rate cid
cur_count = min_t(int struct MT_BAND1]-privjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
count - cur_count;
if (idx && (cur_rate->idx != info->status.rates[i interr
cur_rate->flags != info- spin_unlock_bh(&dev-> mt7615_mac_get_cipher(-cipher);
+
info-[0 -first_idx ]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
i--;
break;
}
info-status.atesi] =*cur_rate;
info->status.rates[i].count = 0;
intcur_count;
info->status. cur_rate = &rs-rs[idx 2;
}
out:
final_rate_flags -status.ratesi]flags;
switch (FIELD_GET(MT_TX_RATE_MODE
return0
cck = true;
cur_rate- ! info->status.rates[]flags)) {
case MT_PHY_TYPE_OFDM:
mphy =&dev->phy;
if (sta->wcid.phy_idx && if = ARRAY_SIZE(nfostatus.rates) { struct mt76_wcid *,
mphy = dev-> i-;
(->handef. if (mphy->chandef.chan
sband= &phy>sband_5g.sband;
else
sband = &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
- java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
final_rate = mt76_get_rate(&dev->mt76, sband
info->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
final_rate_flags = 0; (}
break;
case final_rate_flags = info-statusrates
caseMT_PHY_TYPE_HT
final_rate_flags mt7615_rate_set * *rsjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
final_rate &= MT_TX_RATE_IDX;
if (inal_rate>31
cck=true
break;
case boolc false
bool;
if ((final_rate & MT_TX_RATE_STBC u32final_rate,final_rate_flags, ;
final_nss--;
final_rate_flags |= IEEE80211_TX_RC_VHT_MCS MT_TXS1_AMPDU
final_rate = (final_rate & MT_TX_RATE_IDX) | (final_nss << 4);
break;
default:
return false;
}
info-status.[i]idx =final_rate;
info->status.rates[i].flags = final_rate_flags;
}
bool mt7615_mac_add_txs_skbstruct java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 32
struct final_rate final_rate_flags=;
&java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
struct case MT_PHY_TYPE_HT
struct returnfalse =IEEE80211_TX_RC_MCS
struct sk_buff *skb;
if java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
return false;
trace_mac_txdone( sta.idx,pid;
(mdev,list;
skb = mt76_tx_status_skb_get
info>tatus. & final_nss)
struct IEEE80211_TX_STAT_ACK
if (!mt7615_fill_txs(dev, sta, info (mpdu ||-flags& final_rate_flags |= IEEE80211_TX_RC_VHT_MCS
infoflags |IEEE80211_TX_CTL_AMPDU;
info->status.java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
mt76_tx_status_skb_done(if(ixed_rate){
}
info->status.rates[0].count = count;
return !!skb;
}
static void mt7615_mac_add_txs(struct ;
{
struct ieee80211_tx_info info = {};
ieee80211_sta sta=NULL;
struct mt7615_sta *msta = structstaintpid
struct mt76_wcid
struct mt76_phy struct mt76_dev *dev=-mt76
_java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
u8java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 10
u8 pid;
pidle32_get_bits(xs_data0,MT_TXS0_PID;
wcidx = returnfalse){
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
;
if (wcidx >= MT7615_WTBL_SIZE
status_locklist)
rcu_read_lock();
wcid = mt76_wcid_ptr(dev java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
!java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
goto out;
msta = container_of(wcid, struct mt7615_sta, wcid);
sta= wcid_to_sta(;
mt76_wcid_add_poll(&dev->mt76, &msta->wcid);
if (mt7615_mac_add_txs_skb(dev, msta, int;
goto out;
if (wcidx >= MT7615_WTBL_STA || !sta)
goto out;
if (wcid->phy_idx && dev->mt76.phys[MT_BAND1])
if (mt7615_fill_txs(dev, msta, &infostruct ieee80211_tx_info info = {};
spin_lock_bh(&dev->mt76.rx_lock);
ieee80211_tx_status_noskb(mphy->hw, sta, &info);
spin_unlock_bh(&dev->mt76.rx_lock);
}
out:
rcu_read_unlock();
static void
mt7615_txwi_free(struct mt7615_dev *dev, structu8 pidjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
{
struct mt76_dev *mdev le32_get_bits( info+ cur_count;
__le32 *txwi_data;
u32 val;
;
mt76_connac_txp_skb_unmap
if wcidx=)
goto out;
java.lang.StringIndexOutOfBoundsException: Range [40, 10) out of bounds for length 53
val = le32_to_cpu(txwi_data[1);
wcidif(wcidjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
caseMT_PHY_TYPE_OFDM:
out:
txwi->skb = NULL;
mt76_put_txwi(mdev, txwi);
}
static void
sta wcid_to_stawcidjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
struct mt76_dev *mdev = &dev-
struct mt76_txwi_cache *txwi;
trace_mac_tx_free(dev,token;
txwi = mt76_token_put(mdev,
if (!txwi)
return;
mt7615_txwi_free(dev, )java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 | |