When MAC0 is in 2.4G and new connection is coming in 5G, then MAC0
connection is shifted to MAC1, and new connection comes in MAC0.
But in this process, cdp_update_mac_id() is not called while
shifting from MAC0 to MAC1.
Fix is to call cdp_update_mac_id() after hw_mode change occurs
in the firmware, thus updating mac_id and corresponding vdev_id for
the interface whose mac_id or vdev_id get shifted.
Change-Id: I294c26f7d5054e42cdc116e8ae878954904056b5
CRs-Fixed: 1109511
The change in commit If578d66eada17784eef7daafa7351df95fc74f5a
is removing skb_put from switch case which missed during
propagation. Currently in function “wlan_hdd_send_svc_nlink_msg”
skb_put is calling twice in single code flow is leading to skb_tail
overflow crash.
Fix is to remove skb_put in switch case.
Change-Id: Icea19d92b5f7625d6a39f734bbb2fa01fa1ce2cf
CRs-Fixed: 1112350
Race condiiton is observed as deregistration of 32 tx/rx packetdump
feature and packetdump callback call is happening at the same time
causing NULL pointer dereference.
Use local variable to store packetdump callback to avoid this race
condition.
Change-Id: Id4246d85e3816c0a3b8d0d0c1ef21e5ff053b608
CRs-Fixed: 1112126
When TDLS module reject scan, it will queue the scan request but
does not store the source information, and pass NL_80211 as the
scan source. Thus, if the scan is started by vendor command, still
the scan done callback is given to cfg80211.
Fix is to store the scan source information and queue the scan
request along with scan source information.
Change-Id: Id438f29de0176b1ac73603a1fe0a1a6e231c5278
CRs-Fixed: 1107919
When TDLS is in progress and p2p scan is started, then
TDLS peer is not removed, but TDLS is disabled.Thus,
wlan_hdd_tdls_scan_callback() will reject the scan.
The fix is to remove TDLS peer while disabling TDLS when
p2p scan is started.
Change-Id: Ib457243258eaab4ba1af22993f689aab02c3b3d9
CRs-Fixed: 1106995
Currently ol_txrx.c generates warnings when compiled with the GCC
-Wmissing-prototypes switch because it does not include a header file
which exports a prototype for the following functions:
ol_txrx_set_curchan()
ol_txrx_get_vdev_struct_mac_addr()
ol_txrx_get_pdev_from_vdev()
ol_txrx_print_level_set()
ol_txrx_fw_stats_cfg()
ol_txrx_aggr_cfg()
What is interesting about these functions is that they currently are
unused. An "issue report" has been opened for each of these functions
so that the proper disposition can be determined by the Data Path
team. As a WAR so that the -Wmissing-prototypes switch can be enabled
until such time as the issues are correctly resolved, enclose each
function in conditional compilation which will exclude the functions
from the build.
Change-Id: I6220c5ff2c6c3cd40ad33d13bc5c504c75c52018
CRs-Fixed: 1113082
Currently wma_data.c generates a warning when compiled with the GCC
-Wmissing-prototypes switch because it does not include a header file
which exports a prototype for ol_rx_err(). The definition and
placement of this API is strange, and an "issue report" has been
opened to correctly address this issue. As a WAR until the issue is
correctly resolved, define the prototype internal to wma_data.c itself
so that the -Wmissing-prototypes switch can be enabled.
Change-Id: Ibd519b802b75c7110fe96d9ccd96ab1f9ba785d0
CRs-Fixed: 1113083
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code in ol_txrx.c which is generating warnings
because not all public APIs have prototypes defined. Define the
missing prototypes for all public functions, and make static all
functions which are only referenced internally to ol_txrx.c.
Change-Id: I0acb51d0d9b5f76ef9754ab9cdc0b9fa8fa70097
CRs-Fixed: 1113061
Currently ol_txrx.c generates warnings when compiled with the GCC
-Wmissing-prototypes switch because it does not include a header file
which exports a prototype for ol_txrx_soc_attach(). Currently the "dp
soc attach" APIs are defined in a strange manner, and there is not a
prototype which dp_main.c can include. So as a WAR define the
prototype internal to ol_txrx.c itself.
Of course the whole point of -Wmissing-prototypes is to prevent
mismatches between callers of an interface and the implementation of
an interface, and this WAR explicitly bypasses that protection. This
WAR should be superceded in the future by a proper registration
mechanism where the architecture-specific DP implementation attaches
to the Converged Data Path (CDP).
Change-Id: I5d090a6cd54be7808ffb9f542c135edcfe9d0b42
CRs-Fixed: 1110919
Currently, ref/unref peer calls are not in align with the object manager
reference count design.
1 - invoke ref peer on peer create
2 - do unref peer on find peer
3 - do unref peer on peer delete
Add ref/unref peer calls to be in sync with current peer ref count design
Change-Id: Ifc0e6cf95e0a1acb62dbf7858c57044baedf51c6
CRs-Fixed: 1113468
Send probe response template before VDEV up. Currently probe response
template is being sent after VDEV up which is resulting in probe
response offload handler to be not registered correctly.
Change-Id: I00b4043aa7ed63a15e83a3762c242c300d310ebf
CRs-Fixed: 1107174
A previous change introduced a regression that prevents the bandwidth
timer from restarting correctly. Fix said regression by inverting the
conditional at the end of the timer callback.
Change-Id: I84db7df6af55dccd447ba04a32aeada27e7a6f3b
CRs-Fixed: 1112498
The MC thread uses a timer to measure bandwidth usage in station and
soft AP modes. This timer restarts itself periodically, which can
race with the MC thread during a stop/start cycle. Fix this race
condition by introducing a spinlock that protects the timer during
start and restart.
Change-Id: I0e86687d28fb07a0a41c9475b89f5f170e72bf77
CRs-Fixed: 1112498
In function wma_tx_packet, update mgmt_param.pdata when frame's nbug is
re-allocated to accommodate MMIE or CCMP header.
Change-Id: Ib83457ee52f8c9b52eb9d8b4bc472ed48689ede3
CRs-Fixed: 1109668
Add support to handle block ack(BA) action frames. Due to change in
architecture, reception of ADDBA request and DELBA request ack action frames
are now handled in the host and transmission of ADDBA response is also done
by the host driver.
Change-Id: I9bbc26da19fbea051eda950443d2cbc459b865b9
CRs-Fixed: 1112700
qcacld-2.0 to qcacld-3.0 propagation
uOsRequestedHandoff is not reset in many scenarios after reassoc
fails/timeout. Due to this if the next connect request initiate
scan for ssid to find the AP in local cache, the scan for ssid
complete handler think that OS requested handoff is in progress
and returns without initiating the connect or connect failure.
Thus the HDD remains in connecting state and after that scans
fails.
To fix this reset uOsRequestedHandoff whenever reassoc fails
Change-Id: Ife9ee885cc1638f2bc4e02fd91b000c6e00f0689
CRs-Fixed: 1101706
qcacld-2.0 to qcacld-3.0 propagation
After disconnect request, the driver sends disconnect
indication to the kernel and it schedules a workqueue to
process this disconnect event. Now if this workqueue is
delayed and connect request is received before its
scheduled, the disconnect event workqueue reset the
ssid_len of the wdev.
Now as the ssid_len does not match with bss ssid length the
get bss returns NULL and thus roam indication is not sent
to supplicant.
To fix this use cfg80211_roamed_bss to indicate the roaming
and use the ssid and ssid len from driver to get the bss.
Change-Id: I5b88ce41951cb61582ee801be124ca0b5b6b825b
CRs-Fixed: 1098150
In case rate set of the peer in assoc req doesn't match the number
of connected peers is decremented and sta is deleted. Now as part
of send del sta again the number of connected peers is decremented.
This sets the number of peer connected to 255 when last peer departs.
And thus new peer always fails to join as the no of connected peer
is always more than the allowed limit.
In this case the sta is not yet added and thus there is no need
to call del sta.
To fix this set delete_sta false while calling lim_reject_association
and thus avoid calling del sta. Also clean up the sta_ds from
hash table.
Change-Id: Ia7d837cfbbf9ddc15230aaeeca1a72acf48ac232
CRs-Fixed: 1108820
qcacld-2.0 to qcacld-3.0 propagation
If connect request has bssid_hint the behaviour is same as
when connect request has bssid present. So driver only try
to connect to BSSID present in the bssid_hint.
With this change if bssid_hint is provided in connect request
driver will prioritize connection to the BSSID provided and if it
fails to connect to bssid_hint, driver will try to connect to
other APs with same profile.
Change-Id: Ie7fd29cdfb2013aca1d4944272da6b3c29a16ab3
CRs-Fixed: 1107816
Added CONFIG_LITHIUM checks to selectively compile Hal and DP
files only for lithium based chipsets. Also added
QCA_WIFI_QCA6290 define for conditional compilation in
ce_main.c
Change-Id: I9e9aac0070aaf4b8292e9f3a6b0ceb8738d0e696
CRs-Fixed: 1103135
Fix peer_state transition in case of IBSS network. Currently
when IBSS peer is created, it is updated to Authenticated state
even before set key is complete. This is putting hardware into
bad state.
Add check in hdd_hard_start_xmit to check if peer is in authenticated
state before transmitting any packet.
Change-Id: Id89fac911cd757e2df368bb7e15a3cf476b2d90f
CRs-Fixed: 1111977
Commit I979fd09fadb347585ae5a044277d3855d76f94ca introduced
invalid null pointer check for HIF handle because of which
WLAN shutdown is failing, hence revert this change.
Change-Id: Ibd5a3c23f18f316386b2fbd5cf38926bad4de5d7
CRs-Fixed: 1112571
Change Max Tx Power from 30 to 22 dbm and report tx power based this max
power.
Change-Id: I90aa4b9b3036534acc17343c1d99782d6177da12
CRs-Fixed: 1111079