Commit Graph

156 Commits

Author SHA1 Message Date
Aditya Kodukula
16020acc91 qcacmn: Include structures having qdf_bitmap member
Currently kernel-doc script doesn't support qdf_bitmap
struct member. So, all structure which has qdf_bitmap
member are excluded.

Support for qdf_bitmap has been added to kernel-doc script.
So, include all structures which have qdf_bitmap.

Change-Id: I95095d458152a0285a24fba398b46effd94525db
CRs-Fixed: 3598814
2023-08-25 15:15:15 -07:00
Vinod Kumar Pirla
af6cf93a07 qcacmn: FW Link switch request event handler and cnf resp
Once the FW sends the link switch request to host handle
the request from scheduler thread and send confirmation
back on completion of link switch process with status of
link switch (success/failure).

Add new serialization command type for link switch.

Introduce flags to get the current state of link switch
request, set the state to idle when no link switch in
progress or once the current link switch is completed.
Access to state is protected with MLO dev context lock.
Implement various helper API to:
    a) Transition link switch to next state.
    b) Get current state of link switch.
    c) To check whether any link switch is in progress.
    c) To check whether link switch is happening
       on assoc VDEV or not.

Introduce a new VDEV flag to suggest the VDEV is in
link switch process and also implement helper APIs to
set/get/clear this VDEV flag.
   a) The flag is set at start of link switch, once
      the FW request params are validated and before
      proceeding for link switch disconnect on VDEV.
   b) Clear the flag once the Link switch confirmation
      is sent to FW.

Validate the link switch request params:
     a) IEEE link ID's received.
     b) Check if new connection is part of MLO connection.
     c) Check if VDEV is MLO STA VDEV or not.
     d) Is VDEV in connected state or not, that means
        VDEV is not in transitioning state due to disconnect.
     e) Check if any link switch in progress on this MLD
     f) Current link ID of VDEV equals the FW params.

If validation is successful, serialize the link switch
command and in the serialization activation start the
actual link switch process.

Change-Id: Ie582650541054c8cf39aaa8316e86a7a40256a15
CRs-Fixed: 3556422
2023-07-31 19:38:48 -07:00
Zhaoyang Liu
054a0fc1e0 qcacmn: reactive serializate pending command after active list is empty
This is to fix serialization pending command timeout during vdev stop.
For case that two vdev is up state, i.e. vdev 1 is going to stop state.
There is an active command is running, then all commands in serialization
pending or active list for vdev 1 are canceled, so this last active vdev 1
command can't callback to dequeue itself from pdev active queue, and it
also doesn't do operation to move pending command to active queue.
So now if there are still other commands which are for vdev id 2 in pdev
pending queue, no one will schedule this pending command to active list,
until any pending command is timed out.

Add change to move pdev ser pending command to active list if all active
vdev non scan commands are canceled.

Change-Id: Ie47c9aa8153078266307a7d0b6c4585e2af9ed50
CRs-Fixed: 3474552
2023-05-12 16:39:05 -07:00
Jeff Johnson
f576a0ab92 qcacmn: Fix umac/cmn_services/serialization documentation
The kernel-doc script identified some documentation issues in the
umac/cmn_services/serialization folder, so fix most of them. However
one issue is due to kernel-doc being unable to parse the qdf_bitmap()
macro, so disable kernel-doc in that case.

Change-Id: I4b579891db315484b465322e9f9e5fe2564f8909
CRs-Fixed: 3390576
2023-01-31 11:24:28 -08:00
Chetan Kumar Sanga
176650cce4 qcacmn: Add Bitmap support for Multi-Vdev-Restart
Update MVR handlers and init to setup/use MVR bitmap
depending on bitmap MVR support by FW.

Change-Id: I3a73ddefeae85d8f6b4fc31f9c1f1164fa5346c7
CRs-Fixed: 3355001
2022-12-26 22:50:00 -08:00
abhinav kumar
19ae8a535e qcacmn: Abort connection for next candidate if SAP stop/start is pending
In the case of STA/CLI + STA/CLI, if an STA/CLI is in connecting state
and a disconnect is received on any other STA/CLI, the disconnect can
timeout waiting for the connection on the first STA/CLI to get completed.
This is because the connection is a blocking serialization command and
it can try multiple candidates and thus can take up to 30+ sec to
complete.

Same way if an SAP/GO has a start/stop command or peer disconnect in
pending queue, the delay is processing it can cause timeouts and other
issues.

So abort the next connection attempt if any of the vdev is waiting
for vdev operation to avoid timeouts.

Change-Id: I6570b8213c9008d8fea26febb49d0e40d9180d12
CRs-Fixed: 3354561
2022-12-13 05:48:27 -08:00
Abhishek Singh
d59c9453d6 qcacmn: Remove unused API wlan_serialization_non_scan_cmd_status
Remove unused API wlan_serialization_non_scan_cmd_status from
serialization.

Change-Id: I8bcd22445489ad4d7f02d9e6bb118ef626491fde
CRs-Fixed: 3313124
2022-10-30 23:51:42 -07:00
sandhu
901120c066 qcacmn: Fix incompatible function pointer assignment
Fix incompatible function pointer assignment.
Define a wrapper around mc timer callbacks to
make them compatible with standard scheduler
message callback function signatures.

Change-Id: I07829680d1758ccbd53e8b1fe10b0e30e100a2c6
CRs-Fixed: 3305719
2022-10-26 18:47:58 -07:00
Jeff Johnson
ed240b1daf qcacmn: umac: cmn_services: Fix misspellings
Fix misspellings in umac/cmn_services/...

Change-Id: I74c006b3e585e3d4f6ec8c025ef313133c9e3068
CRs-Fixed: 3304695
2022-10-11 00:47:41 -07:00
Abhishek Singh
1d0d789fe0 qcacmn: Add vdev id info in serialization logs
Enhance serialization logging by adding vdev id info in logs to
differentiate same cmd id across vdevs.

Change-Id: I6706b07044769b56832e67388924f767ad5aabfe
CRs-Fixed: 3297468
2022-09-29 04:22:38 -07:00
Himanshu Batra
eaea81b4f2 qcacmn: Add API to find if blocking cmd is present in serialization queue
Add API to find if blocking cmd is present in serialization queue

Change-Id: Ia37e47f03a69dd81ecf3ae693e1ae7610908ca32
CRs-Fixed: 3296751
2022-09-22 10:41:31 -07:00
Utkarsh Bhatnagar
bf2b82dec7 qcacmn: Match vdev as well while cancelling ser cmd
For a particular vdev, If one of such same CMD id
is needed to be cancelled, either
wlan_ser_cancel_scan_cmd() is called if cmd is scan
cmd or wlan_ser_cancel_non_scan_cmd() is called if
cmd is non-scan cmd.
For both the cases, currently cmd_id is iterated
among pdev serialization cmd queue and if cmd_id
is matched then that particular id is flushed.
Since in per vdev cmd_id, same ids can be assigned
across multiple vdevs and it may be possible that in
the pdev serialization cmd queue, different vdev can
enqueue the same cmd id.
Hence, with current condition that only checks for
cmd_id may result in incorrectly cancelling the
same cmd_id for different vdev.
To prevent this, along with checking for cmd id
and type, check for the valid vdev and remove
the cmd corresponding to that vdev only

Change-Id: I10d37588a52e8d3209c7521782716e2358e57079
CRs-Fixed: 3295516
2022-09-22 06:09:44 -07:00
Himanshu Batra
31864b63ee qcacmn: Add timestamp in serialisation history for debuggability
Add timestamp in serialisation history for debuggability

Change-Id: I6ea5019f9c4501512877a67bc01caf7c428cc893
CRs-Fixed: 3275070
2022-08-25 12:13:15 -07:00
Ashish
a48bfbce7c qcacmn: Remove get disconnect stats command from serialization
Currently in SAP mode, when host driver receives disconnect for
station, first it gets disconnect stats with serialization command
and then it sends delete peer command to fw. There is an issue with
this approach, if there are maximum number of clients are connected
to a SAP and all of these clients gets disconnected at the same
time, in that case there will be a disconnect stats command and
peer delete command in serialization, because of which serialization
queue gets full.
To address this issue, remove disconnect stats command from
serialization and send this command just before sending peer
delete command once peer delete command gets serialized.

Change-Id: Iab64e5dee8b0e2bb19b428a3c563a24b486250bc
CRs-Fixed: 3101553
2022-01-03 22:50:20 -08:00
Yu Wang
f13b79ec7f qcacmn: implement mlo manager APIs for mlo link set active cmd
Add interface for sending mlo link set active cmd and
register the response handler.

Change-Id: Icd7cf3294cddec1aa4a417e29a22fcd6fbea0dfb
CRs-Fixed: 3036846
2021-12-14 01:43:34 -08:00
Mohammed Ahmed
c775b5586a qcacmn: Fix incorrect layering in scan component
Replace ucfg api call with wlan api calls for internal components.

Change-Id: I0289bf44753d3692468a12fbe7109e348c8e8957
CRs-Fixed: 3011167
2021-08-19 02:14:11 -07:00
Abhishek Singh
2c0f545cbf qcacmn: Remove unused commands from serialization
Remove unused commands from serialization.

Change-Id: I4692cc66c7288344e7b74644d08224a1e9772541
CRs-Fixed: 2978645
2021-06-28 12:24:45 -07:00
Abhishek Singh
e49edb3186 qcacmn: Avoid ser timeout and actual command removal race
In case the serialization command timeout happens, it queues a msg
with in schedular thread to process timeout and pass the active timer
as its context, but if before the timeout process is executed the
actual command completion can remove the command from serialization
and it will update the timer data to point to the newly activated
command.

Now when the timer msg is executed the timer is pointing to the newly
activated command instead of actual command which was timed out
and thus remove the new command instead of the original command.

This leads to an issue where the new active command removal is a
failure when its process is completed and thus action remains
incomplete. This can also lead to two commands getting processed at
the same time as the new command was forcefully removed.

To fix this instead of passing the timer context pass the copied
command in msg to scheduler thread and do not delete the command
from serialization if the command is not active.

Change-Id: I14b489172d0f22a9ed3b26b9c94226a4095f1dee
CRs-Fixed: 2950525
2021-05-27 13:41:53 -07:00
Abhishek Singh
9b797fd035 qcacmn: Add logic to remove preauth and roam ser command
Add logic to remove preauth or roam command from serialization
depending on the state the roaming was in.

Change-Id: Ia381d040ce7e15a725eb2402896bf476d3236566
CRs-fixed: 2882994
2021-03-05 01:18:30 -08:00
Santosh Anbu
45a300ce7b qcacmn: Support roaming request to connection manager
Add change to support roaming request to connection manager.

Change-Id: I7f580e042522a245fc6a263d0e8f8b32b2f693f7
CRs-Fixed: 2845076
2021-01-11 01:52:47 -08:00
Bapiraju Alla
f36047161f qcacmn: Fix vdev obj manager reference release in serialization
Vdev object manager reference should be taken before enqueuing
serialization command and it should be released after dequeuing the
command from serialization queue. Currently this reference release is
done before moving the command to active queue from pending queue.
This may lead to vdev object deletion before the command is moved to
active queue and result in use after free access for vdev object.

To resolve this, release vdev object reference after moving the
serialization command to active queue.

Change-Id: Ibef0814a245abb36f526997d848cf15ef6a49a44
CRs-Fixed: 2832676
2020-12-08 13:15:51 -08:00
Himanshu Batra
f7d6997020 qcacmn: Update queue size from pending queue after command activation
As part of activaiton of serialization command from pending to
active queue, the lock is released. In the activation API, the
same API to move non scan cmds from pending to active queue can
be called if activation fails. This reentrant API may modify the
pending queue even before the control is given back to the caller
API leading to random behavior when accesing the next cmd from pending
queue via local variables.

Add fix to update queue size from pending queue after command activation

Change-Id: I8082e2a9dd3410369967ab20196853ddfa0639a7
CRs-Fixed: 2801956
2020-11-10 00:58:30 -08:00
Vivek
8ceed6b2bc qcacmn: Check for valid vdev queue for serialization
While removing command from serialization, it is possible
that with the last command removal of a vdev,
the vdev could be deleted and before attempting the
movement of command from pending vdev queue to active queue,
we need check if the serialization vdev object is valid.

Add a check to ensure that serialization vdev object is
valid before trying to move command from pending to active
for a vdev.

CRs-Fixed: 2807736
Change-Id: Iea6df72eeeb62b7868f30337e7da99039df8b23a
2020-11-08 22:53:12 -08:00
Min Liu
d88847938b qcacmn: Code cleanup in wlan_serialization_destroy_cmd_pool
Remove unnecessary assignment in wlan_serialization_destroy_cmd_pool
to avoid false alarm in some static code analysis tool.

Change-Id: I6f53b9c44534dc6297cf872dce0a265e1696d90c
CRs-Fixed: 2751743
2020-08-21 02:28:51 -07:00
Ashish Kumar Dhanotiya
737eb69429 qcacmn: Add new scan type SCAN_FOR_CONNECT for conn_manager infra
Add new scan type SCAN_FOR_CONNECT to support connection manager
infrastructure.

CRs-Fixed: 2713772
Change-Id: I631f3f0324e82ef6cd8b2befbed020649c80bc4c
2020-07-02 08:48:14 -07:00
Abhishek Singh
62fb09b241 qcacmn: Fix race between ser psoc close and vdev destroy handler
In wlan_serialization_psoc_disable the timers are freed without
holding lock and at the same time the
wlan_serialization_cleanup_vdev_timers from vdev destroy handler
is accessing the timers, this result in cleanup_vdev_timers
accessing freed timer memory resulting in assert.

Fix is to free timer memory while holding timer lock. Also as the
lock can be used by vdev delete handler after freeing in
psoc_disable, move the init and deinit of the lock to psoc create
and destroy handlers respectively.

Change-Id: Idf822a91022de6b51c7ee1895f71b6fb94fedd72
CRs-Fixed: 2721064
2020-06-30 02:34:01 -07:00
Lincoln Tran
a86b23ee68 qcacmn: Update scheduler_msg callback type
This fixes a CFI failure in callback assignment.

Currently, the callbacks in scheduler_msg are void function
pointers. Update them to have a defined type as
scheduler_msg_process_fn_t to catch type mismatch during
compilation.

Other changes to conform to this new type include:
	1. Cast callback to qdf_mc_timer_callback_t when
	   referencing, and back when assigning
	2. Cast wlan_serialization_generic_timer_cb to
	   take fit into scheduler_msg
	3. Cast target_if_vdev_mgr_rsp_timer_cb to fit
	   into scheduler_msg

Change-Id: I052bc54826d377ae92f5bcc80ca08afb6f5e01e3
CRs-fixed: 2719975
2020-06-27 06:18:28 -07:00
Santosh Anbu
5b4ee46d8e qcacmn: Check queue size of queue operation
As part of activation of pending cmds after removal of a blocking cmd,
we iterate over the pdev pending list until the queue size and move
non-scan pending cmd to active queue and go to the head of the queue
in the next iteration.

Since we start from head of queue with decreased queue size value, the
last few cmds in the pending is never iterated since queue size has
already reached zero leading to cmds left in pending queue forever.

Add change to restore pending node to previous node of the command that
is moved from pending queue.

Change-Id: If500906c853f21319c04a21c8c68690a71e51ec2
CRs-Fixed: 2713555
2020-06-19 19:45:21 -07:00
Vivek
80a5429aa1 qcacmn: Add vdev id when printing serialization pdev queue
While printing the serialization pdev queue, we are not
printing the VDEV id.

Add VDEV id while printing the serialization pdev queues

Change-Id: Ie6ecbf36da3026550fbe54137c546cf8bd7940e4
CRs-Fixed: 2703604
2020-06-16 01:52:59 -07:00
Lincoln Tran
e37321aa90 qcacmn: Revert wlan_serialization_generic_timer_cb
Revert the change for wlan_serialization_generic_timer_cb
from change I760b41b81c006187efb162d410390e1c11878b82.
The change introduced a CFI error because timer callbacks
do not expect a return status.

Change-Id: Iebb17fb82c5b3d4b1393e2b3417c766d118c0674
CRs-fixed: 2687777
2020-06-09 12:28:18 -07:00
Santosh Anbu
bfaf232db7 qcacmn: Use qdf_bitmap_empty to check bit status
Replace the implementation of checking bitmap status with a
standard API qdf_bitmap_empty

Change-Id: I22ee8c25c1d911f65ba4bfe235557444e6333ca4
CRs-Fixed: 2690914
2020-05-21 12:36:19 -07:00
Wu Gao
355b2b49bd qcacmn: Use %pK uppercase K instead of k in format specifier
Usage of %p instead of %pK can lead to info leak, so use %pK uppercase
K instead of k.

Change-Id: Ie4f51e053ed28045b9920f274baebef0233f070e
CRs-Fixed: 2677374
2020-05-06 10:48:03 -07:00
Pragaspathi Thilagaraj
0150333a89 qcacmn: Abort only host scans on roam start notification
The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.

After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.

Introduce new vdev id value based on which the scan module will
abort only host triggered scans setting the flag
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.

Change-Id: I3a162c55d4a008ff986fd957bed395b39c060bb5
CRs-Fixed: 2636410
2020-04-27 21:32:22 -07:00
Ashish Kumar Dhanotiya
674614ab3c qcacmn: Add serialization command to get disconnect stats
Currently for SAP case on the disconnection with the
client, host driver sends get stats command for the
disconnected peer to the FW and proceeds with the peer
deletion. There is a race condition where if the peer
gets deleted in the object manager before FW sends the
requested stats in that case host driver drops the
response from the FW.

To resolve above issue send the get stats request command
in serialization before peer delete command gets serialized
which will ensure that get stats response is processed
before peer delete in the object manager.

Change-Id: Iaa63e299ddfd3ca46c80bd79c3461c183fc0a62f
CRs-Fixed: 2664328
2020-04-16 16:19:56 -07:00
Abhishek Singh
f50b491842 qcacmn: Add Api to flush all scan and non scan commands for vdev
Add Api to flush all scan and non scan commands for vdev

Change-Id: I17b90b8db782639897d7d32d36f562e25ae459e3
CRs-Fixed: 2664640
2020-04-15 16:18:27 -07:00
Vivek
bb32488efe qcacmn: Define serialization active vdev bitmap using qdf_bitmap
The active vdev bitmap used in serialization is
32bits and it is per pdev.

But in cases, where there can be more than 32 vaps
configured, the bit positions of a 32bit bitmap cannot
be used to indicate the active commands for a vdev whose
id is more than 31.

So, we need to increase active cmd vdev bitmap to support
for max number of vdev ids that is possible for a pdev.

Considering the vdev id is per psoc scope and can spread
across pdevs, increasing the size of the bitmap to max
vdevs supported per psoc.

CRs-Fixed: 2656046
Change-Id: Ic7728145b208492af218320fa84f35bb1f918aab
2020-04-15 12:12:21 -07:00
Vivek
5ebf9cf853 qcacmn: Check if cmd present in serialization queue atomically
The current API to get if a command is present in the active
queue was executed without the lock acquired. Here, at times
we get the queue size as one, and when we actually get the command
from the active queue, we get nothing.

This could be that the command from the active queue was removed
in another context almost at the same time, when we trying to read
the command from the active queue.

To avoid this, we do the operation of reading the queue size and
reading from the active queue with the queue locks held, so no
other context could remove the command from the active queue while
we are reading the command from the active queue.

CRs-Fixed: 2644038
Change-Id: Icca019320b1ba2d7d751432142b9bad50519d701
2020-04-07 03:01:13 -07:00
Bapiraju Alla
acf898a145 qcacmn: Fix return type for scheduler_msg callbacks
This fixes a CFI failure in callback assignment

Change-Id: I760b41b81c006187efb162d410390e1c11878b82
CRs-Fixed: 2643320
2020-04-01 12:40:45 -07:00
Santosh Anbu
b59fbe7504 qcacmn: Reduce log level of serialization deinit
Add change to reduce log level for the serialization deinit
debug string as part of bootlog cleanup.

Change-Id: Ibf1cf8352df053df0dba6239f503b868a870a04d
CRs-Fixed: 2623638
2020-02-18 12:48:45 -08:00
gaurank kathpalia
59b431a029 qcacmn: Optimize logs in serialization
Optimize the logs in serialization.

Change-Id: I0148a4d0799102817167b19e27cca609570e3b02
CRs-Fixed: 2612823
2020-02-04 06:06:50 -08:00
Abhishek Singh
1c46a20660 qcacmn: Optimize logs in serialization
Remove redundant logs and optimize the logs in serialization.

Change-Id: I7eaf252c8266ca1c60d213b0309ef217bc95ff33
CRs-Fixed: 2612823
2020-01-31 05:37:23 -08:00
Arun Kumar Khandavalli
d3ebfc2db6 qcacmn: Selectively reduce the serialization logs
Reduce the serilization logs from info to debug.

Change-Id: If25749086cc05a97eed5b438cf3e14237428acfd
CRs-Fixed: 2606566
2020-01-26 22:16:59 -08:00
Balaganapathy Palanisamy
3020842b6d qcacmn: Serialize PDEV CSA channel switch
CSA channel switch call directly interacts with VDEV
state machine, move CSA restart to go through serialization
service.

CRs-Fixed: 2598123

Change-Id: Ic0bea64b56f54eed354e11d0873ae4423e365cca
2020-01-17 21:29:38 -08:00
Abhinav Kumar
4c3c73a375 qcacmn: Remove unused serialization API
Remove unused serialization API
wlan_serialization_get_active_list_count.

Change-Id: I80c1cd5693fb3dda91ffd7de01c1df244e648135
CRs-Fixed: 2580681
2019-12-10 00:51:51 -08:00
Gururaj Pandurangi
85d32ab984 qcacmn: Rate limit logs in serialization API
Rate limit logs in wlan_serialization_peek_head_active_cmd_using_psoc
to prevent excessive logging

Change-Id: I25bc93754cf4fe5d56fdb67c15b79b72fcda9efd
CRs-Fixed: 2574786
2019-12-03 01:15:38 -08:00
Rachit Kankane
98ec4d132b qcacmn: use spinlock before iterating
Before iterating in pending list, use spinlock to avoid possible
race condition.
Remove function wlan_serialization_get_active_list_next_node_using_psoc
as it not being used and is part of legacy flow which is suppose to be
removed eventually.

Change-Id: I9e7cbd9db8b5a1c45915bf5291cd5011c276d0e2
CRs-Fixed: 2573425
2019-12-02 12:39:42 -08:00
Vivek
f011832a65 qcacmn: Update blocking command flags atomically
When moving a blocking command from pending to active queue,
we release the lock and call the activation cb.
After the activation cb returns, we update the blocking cmd
waiting flag based on the active cmd node's "is_blocking" param.

If the activation cb is also resulting in removing the command,
then after the cb returns, the active cmd node is returned to the
free pool and our check fails, and we miss to update the blocking
cmd waiting flag, resulting in no further commands moving to the
active queue.

The update to the blocking command should be done atomically,
immediately after it moves to active queue and before releasing
the lock for the activation callback.

Change-Id: Idedccb16ce68bb2166fb3970cd231fe738ec6af2
CRs-Fixed: 2554767
2019-11-19 13:05:08 -08:00
Arun Kumar Khandavalli
5377f457a1 qcacmn: Introduce new api to disable the vdev serialization queue
MCL presently sends the vdev delete to firmware via serialization,
with a new requirement vdev delete cannot be sent via serialization.
So, disable the serialization for the vdev before sending the vdev
delete to firmware.

Change-Id: Ieffccaf815eff7627d39b0191a7be121e85965fd
CRs-Fixed: 2566113
2019-11-15 16:01:32 -08:00
Wu Gao
5988e8b7d2 qcacmn: Remove unnecessary logs in loop
There is unnecessary logs in loop which affect useful log capturing.

Change-Id: I37b2c8123a280e4ec080ac1fb75e43135936fd79
CRs-Fixed: 2552104
2019-10-27 19:27:56 -07:00
Abhishek Singh
21116dd976 qcacmn: Fix removal of the serialization command if timer start fail
In case vdev is logically deleted the serialization active timer fails
to start because it fails to get vdev ref count. Now in this case the
cmd is not removed from the active queue and is just marked
CMD_ACTIVE_MARKED_FOR_REMOVAL because CMD_MARKED_FOR_ACTIVATION is set.

Even during pdev stop as CMD_MARKED_FOR_ACTIVATION is set the command is
not removed.

Fix is to reset CMD_MARKED_FOR_ACTIVATION flag and handle it in same way
as the activate failure case.
Also reset the timer cmd after timer start failure to avoid vdev ref count
release by WLAN_SERIALIZATION_ID even when it failed to take the ref count
in first place.

Change-Id: Ic078efa8ce4ad563087381b8c95eba91894d8a48
CRs-Fixed: 2535245
2019-09-27 02:46:53 -07:00