From 14affd564715e2ec5ce5fdbf6f893d4f7f4c6fee Mon Sep 17 00:00:00 2001 From: Alok Kumar Date: Wed, 11 Dec 2019 16:59:07 +0530 Subject: [PATCH] qcacld-3.0: If NUD Failure not honored, restart the NUD tracking When NUD FAILED event is sent by kernel, driver checks if this event needs to be honored or not. If there is any active traffic, driver will not honor NUD FAILED event and won't issue disconnect. Currently, when NUD FAILED event is not honored, driver NUD state is updated to NUD_NONE. This won't allow the further NUD FAILED event processing in driver if received without NUD PROBE/NUD INCOMPLETE. Reset the driver NUD state machine when NUD FAILED event is not honored and restart NUD tracking. Change-Id: I46826fdf60fc2f3543567c09ddc8574f119efd38 CRs-Fixed: 2583096 --- core/hdd/src/wlan_hdd_nud_tracking.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_nud_tracking.c b/core/hdd/src/wlan_hdd_nud_tracking.c index c37bb4a5b7e3..fbf10bfe278c 100644 --- a/core/hdd/src/wlan_hdd_nud_tracking.c +++ b/core/hdd/src/wlan_hdd_nud_tracking.c @@ -409,7 +409,9 @@ static void hdd_nud_process_failure_event(struct hdd_adapter *adapter) qdf_sched_work(0, &adapter ->nud_tracking.nud_event_work); } else { - hdd_nud_set_tracking(adapter, NUD_NONE, false); + hdd_debug("NUD_START [0x%x]", NUD_INCOMPLETE); + hdd_nud_capture_stats(adapter, NUD_INCOMPLETE); + hdd_nud_set_tracking(adapter, NUD_INCOMPLETE, true); } } else { hdd_debug("NUD FAILED -> Current State [0x%x]", curr_state);