From 1083f5b0aceaf6d68bddb02bfb1e165f22a87361 Mon Sep 17 00:00:00 2001 From: Qiwei Cai Date: Mon, 2 Jul 2018 19:10:11 +0800 Subject: [PATCH] qcacld-3.0: Featurize WLAN_NS_OFFLOAD Fix compilation errors when disable WLAN_NS_OFFLOAD Change-Id: Ifba894a4880a226cedf4c88b1121d02c63aceb4b CRs-Fixed: 2271272 --- Kbuild | 11 ++++++++--- components/pmo/dispatcher/inc/wlan_pmo_tgt_api.h | 4 +++- .../pmo/dispatcher/src/wlan_pmo_ucfg_api.c | 2 ++ components/target_if/pmo/inc/target_if_pmo.h | 13 +++++++++++-- core/hdd/inc/wlan_hdd_power.h | 16 +++++++++++++++- core/hdd/src/wlan_hdd_cfg80211.c | 4 ++++ core/hdd/src/wlan_hdd_power.c | 3 ++- core/mac/inc/sir_mac_prot_def.h | 2 -- 8 files changed, 45 insertions(+), 10 deletions(-) diff --git a/Kbuild b/Kbuild index d4cf895ecf15..ffb3aa360056 100644 --- a/Kbuild +++ b/Kbuild @@ -661,7 +661,6 @@ ifeq ($(CONFIG_POWER_MANAGEMENT_OFFLOAD), y) PMO_OBJS := $(PMO_DIR)/core/src/wlan_pmo_main.o \ $(PMO_DIR)/core/src/wlan_pmo_apf.o \ $(PMO_DIR)/core/src/wlan_pmo_arp.o \ - $(PMO_DIR)/core/src/wlan_pmo_ns.o \ $(PMO_DIR)/core/src/wlan_pmo_gtk.o \ $(PMO_DIR)/core/src/wlan_pmo_mc_addr_filtering.o \ $(PMO_DIR)/core/src/wlan_pmo_static_config.o \ @@ -673,7 +672,6 @@ PMO_OBJS := $(PMO_DIR)/core/src/wlan_pmo_main.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_obj_mgmt_api.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_ucfg_api.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_arp.o \ - $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_ns.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_gtk.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_wow.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_static_config.o \ @@ -684,6 +682,11 @@ PMO_OBJS := $(PMO_DIR)/core/src/wlan_pmo_main.o \ $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_pkt_filter.o endif +ifeq ($(CONFIG_WLAN_NS_OFFLOAD), y) +PMO_OBJS += $(PMO_DIR)/core/src/wlan_pmo_ns.o \ + $(PMO_DIR)/dispatcher/src/wlan_pmo_tgt_ns.o +endif + ########## DISA (ENCRYPTION TEST) ########## DISA_DIR := components/disa @@ -736,11 +739,13 @@ CLD_TARGET_IF_OBJ := $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_arp.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_lphb.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_main.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_mc_addr_filtering.o \ - $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_ns.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_pkt_filter.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_static_config.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_suspend_resume.o \ $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_wow.o +ifeq ($(CONFIG_WLAN_NS_OFFLOAD), y) +CLD_TARGET_IF_OBJ += $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_ns.o +endif endif ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y) diff --git a/components/pmo/dispatcher/inc/wlan_pmo_tgt_api.h b/components/pmo/dispatcher/inc/wlan_pmo_tgt_api.h index c265b9b3bf92..b3225764c53b 100644 --- a/components/pmo/dispatcher/inc/wlan_pmo_tgt_api.h +++ b/components/pmo/dispatcher/inc/wlan_pmo_tgt_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -92,6 +92,7 @@ QDF_STATUS pmo_tgt_enable_arp_offload_req(struct wlan_objmgr_vdev *vdev, QDF_STATUS pmo_tgt_disable_arp_offload_req(struct wlan_objmgr_vdev *vdev, uint8_t vdev_id); +#ifdef WLAN_NS_OFFLOAD /** * pmo_tgt_enable_ns_offload_req() - Send ns offload req to targe * @vdev: objmgr vdev @@ -111,6 +112,7 @@ QDF_STATUS pmo_tgt_enable_ns_offload_req(struct wlan_objmgr_vdev *vdev, */ QDF_STATUS pmo_tgt_disable_ns_offload_req(struct wlan_objmgr_vdev *vdev, uint8_t vdev_id); +#endif /* WLAN_NS_OFFLOAD */ /** * pmo_tgt_enable_wow_wakeup_event() - Send Enable wow wakeup events req to fwr diff --git a/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c b/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c index a5e00646ab63..243c216ae01b 100644 --- a/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c +++ b/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c @@ -137,6 +137,7 @@ QDF_STATUS pmo_ucfg_disable_arp_offload_in_fwr(struct wlan_objmgr_vdev *vdev, return pmo_core_disable_arp_offload_in_fwr(vdev, trigger); } +#ifdef WLAN_NS_OFFLOAD QDF_STATUS pmo_ucfg_cache_ns_offload_req(struct pmo_ns_req *ns_req) { return pmo_core_cache_ns_offload_req(ns_req); @@ -158,6 +159,7 @@ QDF_STATUS pmo_ucfg_disable_ns_offload_in_fwr(struct wlan_objmgr_vdev *vdev, { return pmo_core_disable_ns_offload_in_fwr(vdev, trigger); } +#endif /* WLAN_NS_OFFLOAD */ QDF_STATUS pmo_ucfg_cache_mc_addr_list( struct pmo_mc_addr_list_params *mc_list_config) diff --git a/components/target_if/pmo/inc/target_if_pmo.h b/components/target_if/pmo/inc/target_if_pmo.h index d5b772c21549..690b5df86d93 100644 --- a/components/target_if/pmo/inc/target_if_pmo.h +++ b/components/target_if/pmo/inc/target_if_pmo.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -211,6 +211,7 @@ QDF_STATUS target_if_pmo_send_arp_offload_req( struct pmo_arp_offload_params *arp_offload_req, struct pmo_ns_offload_params *ns_offload_req); +#ifdef WLAN_NS_OFFLOAD /** * target_if_pmo_send_ns_offload_req() - sends ns request to fwr * @vdev: objmgr vdev @@ -225,7 +226,15 @@ QDF_STATUS target_if_pmo_send_ns_offload_req( struct wlan_objmgr_vdev *vdev, struct pmo_arp_offload_params *arp_offload_req, struct pmo_ns_offload_params *ns_offload_req); - +#else /* WLAN_NS_OFFLOAD */ +static inline QDF_STATUS +target_if_pmo_send_ns_offload_req(struct wlan_objmgr_vdev *vdev, + struct pmo_arp_offload_params *arp_offload_req, + struct pmo_ns_offload_params *ns_offload_req) +{ + return QDF_STATUS_SUCCESS; +} +#endif /* WLAN_NS_OFFLOAD */ /** * target_if_pmo_send_gtk_offload_req() - send gtk offload request in fwr * @vdev: objmgr vdev handle diff --git a/core/hdd/inc/wlan_hdd_power.h b/core/hdd/inc/wlan_hdd_power.h index 04cc40cb9c4d..32fb41f1529c 100644 --- a/core/hdd/inc/wlan_hdd_power.h +++ b/core/hdd/inc/wlan_hdd_power.h @@ -297,6 +297,7 @@ int wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy); */ void hdd_ipv4_notifier_work_queue(struct work_struct *work); +#ifdef WLAN_NS_OFFLOAD /** * hdd_enable_ns_offload() - enable NS offload * @adapter: pointer to the adapter @@ -313,7 +314,20 @@ void hdd_enable_ns_offload(struct hdd_adapter *adapter, * Return: nothing */ void hdd_disable_ns_offload(struct hdd_adapter *adapter, - enum pmo_offload_trigger trigger); + enum pmo_offload_trigger trigger); +#else /* WLAN_NS_OFFLOAD */ +static inline +void hdd_enable_ns_offload(struct hdd_adapter *adapter, + enum pmo_offload_trigger trigger) +{ +} + +static inline +void hdd_disable_ns_offload(struct hdd_adapter *adapter, + enum pmo_offload_trigger trigger) +{ +} +#endif /* WLAN_NS_OFFLOAD */ /** * hdd_ipv6_notifier_work_queue() - IP V6 change notifier work handler diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 6aef91c71d10..6106b5c8ddab 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -8467,6 +8467,7 @@ fail: kfree_skb(skb); } +#ifdef WLAN_NS_OFFLOAD static const struct nla_policy ns_offload_set_policy[QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_MAX + 1] = { [QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_FLAG] = {.type = NLA_U8}, @@ -8557,6 +8558,7 @@ static int wlan_hdd_cfg80211_set_ns_offload(struct wiphy *wiphy, return ret; } +#endif /* WLAN_NS_OFFLOAD */ static const struct nla_policy get_preferred_freq_list_policy [QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST_MAX + 1] = { @@ -14384,6 +14386,7 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = { WIPHY_VENDOR_CMD_NEED_RUNNING, .doit = wlan_hdd_cfg80211_monitor_rssi }, +#ifdef WLAN_NS_OFFLOAD { .info.vendor_id = QCA_NL80211_VENDOR_ID, .info.subcmd = QCA_NL80211_VENDOR_SUBCMD_ND_OFFLOAD, @@ -14392,6 +14395,7 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = { WIPHY_VENDOR_CMD_NEED_RUNNING, .doit = wlan_hdd_cfg80211_set_ns_offload }, +#endif /* WLAN_NS_OFFLOAD */ { .info.vendor_id = QCA_NL80211_VENDOR_ID, .info.subcmd = QCA_NL80211_VENDOR_SUBCMD_GET_LOGGER_FEATURE_SET, diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index 8b2f3d7e41e0..dbc74aee59f0 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -167,7 +167,7 @@ static void hdd_disable_gtk_offload(struct hdd_adapter *adapter) } - +#ifdef WLAN_NS_OFFLOAD /** * __wlan_hdd_ipv6_changed() - IPv6 notifier callback function * @nb: notifier block that was registered with the kernel @@ -470,6 +470,7 @@ void hdd_ipv6_notifier_work_queue(struct work_struct *work) __hdd_ipv6_notifier_work_queue(work); cds_ssr_unprotect(__func__); } +#endif /* WLAN_NS_OFFLOAD */ static void hdd_enable_hw_filter(struct hdd_adapter *adapter) { diff --git a/core/mac/inc/sir_mac_prot_def.h b/core/mac/inc/sir_mac_prot_def.h index 7122c86045b4..13436dc962c6 100644 --- a/core/mac/inc/sir_mac_prot_def.h +++ b/core/mac/inc/sir_mac_prot_def.h @@ -511,7 +511,6 @@ #define SIR_MAC_OUI_WSM_SCHEDULE_MIN 20 #define SIR_MAC_OUI_WSM_SCHEDULE_MAX 20 -#ifdef WLAN_NS_OFFLOAD #define SIR_MAC_NS_OFFLOAD_SIZE 1 /* support only one IPv6 offload */ /* Number of target IP V6 addresses for NS offload */ #define SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA 16 @@ -519,7 +518,6 @@ #define SIR_IPV6_ADDR_VALID 1 #define SIR_IPV6_ADDR_UC_TYPE 0 #define SIR_IPV6_ADDR_AC_TYPE 1 -#endif /* WLAN_NS_OFFLOAD */ /* ----------------------------------------------------------------------------- */