From dfc5ef604eaa6314d56bbf2181e65b99c55028c2 Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Wed, 16 Aug 2017 15:20:11 -0700 Subject: [PATCH] qcacld-3.0: Add reqid to sched_scan_stop callback Linux kernel version 4.12 added a reqid parameter to the sched_scan_stop callback signature. Add conditional compilation to use the correct callback signature based on the version of the Linux kernel being compiled against. Change-Id: I500807de15ef5301b480e7f25a3dd146073f573d CRs-Fixed: 2094028 --- core/hdd/src/wlan_hdd_scan.c | 15 +++++++++++++++ core/hdd/src/wlan_hdd_scan.h | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/core/hdd/src/wlan_hdd_scan.c b/core/hdd/src/wlan_hdd_scan.c index 861a191b2c..20864d8b98 100644 --- a/core/hdd/src/wlan_hdd_scan.c +++ b/core/hdd/src/wlan_hdd_scan.c @@ -1601,6 +1601,7 @@ static int __wlan_hdd_cfg80211_sched_scan_stop(struct net_device *dev) return err; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) int wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, struct net_device *dev) { @@ -1612,6 +1613,20 @@ int wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, return ret; } +#else +int wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, + struct net_device *dev, + uint64_t reqid) +{ + int ret; + + cds_ssr_protect(__func__); + ret = __wlan_hdd_cfg80211_sched_scan_stop(dev); + cds_ssr_unprotect(__func__); + + return ret; +} +#endif /* KERNEL_VERSION(4, 12, 0) */ #endif /*FEATURE_WLAN_SCAN_PNO */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)) || \ diff --git a/core/hdd/src/wlan_hdd_scan.h b/core/hdd/src/wlan_hdd_scan.h index 3a35617616..e807d604bf 100644 --- a/core/hdd/src/wlan_hdd_scan.h +++ b/core/hdd/src/wlan_hdd_scan.h @@ -55,6 +55,7 @@ int wlan_hdd_cfg80211_sched_scan_start(struct wiphy *wiphy, struct cfg80211_sched_scan_request *request); +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) /** * wlan_hdd_cfg80211_sched_scan_stop() - stop cfg80211 scheduled (PNO) scan * @wiphy: Pointer to wiphy @@ -69,6 +70,12 @@ int wlan_hdd_cfg80211_sched_scan_start(struct wiphy *wiphy, */ int wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, struct net_device *dev); +#else +int wlan_hdd_cfg80211_sched_scan_stop(struct wiphy *wiphy, + struct net_device *dev, + uint64_t reqid); + +#endif /* KERNEL_VERSION(4, 12, 0) */ /** * wlan_hdd_sched_scan_stop() - stop scheduled (PNO) scans