qcacmn: Rewrite util_gen_new_bssid functionality
qdf_do_div is not helping for modulo operation and always returns 0 in 32 bit image resulting in same base BSSID is always returned for all the VAP's.With 64 bit image no issues are seen. Change-Id: I50e500f57713ce080447b9a5cb1e615018222adb CRs-Fixed: 2565183
Esse commit está contido em:

commit de
nshrivas

pai
74a2f413df
commit
f336902021
@@ -1541,22 +1541,16 @@ static void util_gen_new_bssid(uint8_t *bssid, uint8_t max_bssid,
|
||||
uint8_t mbssid_index,
|
||||
uint8_t *new_bssid_addr)
|
||||
{
|
||||
uint64_t bssid_tmp = 0, new_bssid = 0;
|
||||
uint64_t lsb_n;
|
||||
uint8_t lsb_n;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < QDF_MAC_ADDR_SIZE; i++)
|
||||
bssid_tmp = bssid_tmp << 8 | bssid[i];
|
||||
new_bssid_addr[i] = bssid[i];
|
||||
|
||||
lsb_n = bssid_tmp & ((1 << max_bssid) - 1);
|
||||
new_bssid = bssid_tmp;
|
||||
new_bssid &= ~((1 << max_bssid) - 1);
|
||||
new_bssid |= qdf_do_div((lsb_n + mbssid_index), (1 << max_bssid));
|
||||
lsb_n = new_bssid_addr[5] & ((1 << max_bssid) - 1);
|
||||
|
||||
for (i = QDF_MAC_ADDR_SIZE - 1; i >= 0; i--) {
|
||||
new_bssid_addr[i] = new_bssid & 0xff;
|
||||
new_bssid = new_bssid >> 8;
|
||||
}
|
||||
new_bssid_addr[5] &= ~((1 << max_bssid) - 1);
|
||||
new_bssid_addr[5] |= (lsb_n + mbssid_index) % (1 << max_bssid);
|
||||
}
|
||||
|
||||
static uint32_t util_gen_new_ie(uint8_t *ie, uint32_t ielen,
|
||||
|
Referência em uma nova issue
Block a user