diff --git a/os_if/linux/scan/inc/wlan_cfg80211_scan.h b/os_if/linux/scan/inc/wlan_cfg80211_scan.h
index 91b5687..b8c7c61 100644
--- a/os_if/linux/scan/inc/wlan_cfg80211_scan.h
+++ b/os_if/linux/scan/inc/wlan_cfg80211_scan.h
@@ -150,6 +150,17 @@
 QDF_STATUS wlan_cfg80211_scan_priv_init(struct wlan_objmgr_pdev *pdev);
 
 /**
+ * wlan_cfg80211_scan_priv_deinit() - API to deinitialize cfg80211 scan
+ * @pdev: Pointer to net device
+ *
+ * API to deinitialize cfg80211 scan module.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS wlan_cfg80211_scan_priv_deinit(
+		struct wlan_objmgr_pdev *pdev);
+
+/**
  * wlan_cfg80211_scan() - API to process cfg80211 scan request
  * @pdev: Pointer to pdev
  * @request: Pointer to scan request
@@ -217,4 +228,15 @@
 				   uint32_t vdev_id,
 				   wlan_scan_id scan_id);
 
+/**
+ * wlan_cfg80211_cleanup_scan_queue() - remove entries in scan queue
+ * @pdev: pdev pointer
+ *
+ * Removes entries in scan queue and sends scan complete event to NL
+ *
+ * Return: None
+ */
+void wlan_cfg80211_cleanup_scan_queue(struct wlan_objmgr_pdev *pdev);
+
+
 #endif
diff --git a/os_if/linux/scan/src/wlan_cfg80211_scan.c b/os_if/linux/scan/src/wlan_cfg80211_scan.c
index e40e127..cdea702 100644
--- a/os_if/linux/scan/src/wlan_cfg80211_scan.c
+++ b/os_if/linux/scan/src/wlan_cfg80211_scan.c
@@ -721,6 +721,68 @@
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS wlan_cfg80211_scan_priv_deinit(struct wlan_objmgr_pdev *pdev)
+{
+	struct pdev_osif_priv *osif_priv;
+	struct osif_scan_pdev *scan_priv;
+	struct wlan_objmgr_psoc *psoc;
+
+	wlan_pdev_obj_lock(pdev);
+	psoc = wlan_pdev_get_psoc(pdev);
+	osif_priv = wlan_pdev_get_ospriv(pdev);
+	wlan_pdev_obj_unlock(pdev);
+
+	scan_priv = osif_priv->osif_scan;
+	osif_priv->osif_scan = NULL;
+	ucfg_scan_unregister_requester(psoc, scan_priv->req_id);
+	qdf_list_destroy(&scan_priv->scan_req_q);
+	qdf_mem_free(scan_priv);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+void wlan_cfg80211_cleanup_scan_queue(struct wlan_objmgr_pdev *pdev)
+{
+	struct scan_req *scan_req;
+	qdf_list_node_t *node = NULL;
+	struct cfg80211_scan_request *req;
+	uint8_t source;
+	bool aborted = true;
+	struct pdev_osif_priv *osif_priv;
+	struct osif_scan_pdev *scan_priv;
+
+	if (!pdev) {
+		cfg80211_err("pdev is Null");
+		return;
+	}
+
+	wlan_pdev_obj_lock(pdev);
+	osif_priv = wlan_pdev_get_ospriv(pdev);
+	wlan_pdev_obj_unlock(pdev);
+
+	scan_priv = osif_priv->osif_scan;
+
+	while (!qdf_list_empty(&scan_priv->scan_req_q)) {
+		if (QDF_STATUS_SUCCESS !=
+			qdf_list_remove_front(&scan_priv->scan_req_q,
+						&node)) {
+			cfg80211_err("Failed to remove scan request");
+			return;
+		}
+
+		scan_req = container_of(node, struct scan_req, node);
+		req = scan_req->scan_request;
+		source = scan_req->source;
+		if (NL_SCAN == source)
+			wlan_cfg80211_scan_done(req, aborted);
+		else
+			wlan_vendor_scan_callback(req, aborted);
+		qdf_mem_free(scan_req);
+	}
+
+	return;
+}
+
 /**
  * wlan_cfg80211_scan() - Process scan request
  * @pdev: pdev object pointer
