qcacld-3.0: Read dp cfg values at start_adptr instead of open_adptr

Stop modules is done and datapath context is cleared as part of
CDS dp close. But, as part of add virtual interface, the following
sequence is followed:
 1) hdd_open_adapter
 2) start_ modules from hdd_psoc_idle_restart
 3) hdd_start adapter.

hdd_open_adapter accesses the dp_soc to read TCP UDP checksum ini
value which is invalid access as dp_soc is not initialized.

Move the ini access logic to hdd_start adapter from hdd_open_adapter
as dp context is initialized in start_modules called as part of
hdd_psoc_idle_restart.

Change-Id: I1fbbcc7f8faf3d461c5625ee8cfb60a01c4f94d2
CRs-Fixed: 2393342
This commit is contained in:
Rakshith Suresh Patkar 2019-02-04 16:23:02 +05:30 committed by nshrivas
parent e8d91fc50a
commit 9f5c586e08
2 changed files with 14 additions and 14 deletions

View File

@ -3194,6 +3194,13 @@ QDF_STATUS hdd_init_ap_mode(struct hdd_adapter *adapter, bool reinit)
if (0 != ret)
hdd_err("WMI_PDEV_PARAM_BURST_ENABLE set failed: %d", ret);
if (cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
cfg_dp_enable_ip_tcp_udp_checksum_offload))
adapter->dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
adapter->dev->features |= NETIF_F_RXCSUM;
hdd_set_tso_flags(hdd_ctx, adapter->dev);
if (!reinit) {
adapter->session.ap.sap_config.acs_cfg.acs_mode = false;
wlan_hdd_undo_acs(adapter);
@ -3313,11 +3320,6 @@ struct hdd_adapter *hdd_wlan_create_ap_dev(struct hdd_context *hdd_ctx,
dev->mtu = HDD_DEFAULT_MTU;
dev->tx_queue_len = HDD_NETDEV_TX_QUEUE_LEN;
if (cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
cfg_dp_enable_ip_tcp_udp_checksum_offload))
dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
dev->features |= NETIF_F_RXCSUM;
qdf_mem_copy(dev->dev_addr, (void *)macAddr,
sizeof(tSirMacAddr));
qdf_mem_copy(adapter->mac_addr.bytes,
@ -3328,7 +3330,6 @@ struct hdd_adapter *hdd_wlan_create_ap_dev(struct hdd_context *hdd_ctx,
dev->ieee80211_ptr = &adapter->wdev;
adapter->wdev.wiphy = hdd_ctx->wiphy;
adapter->wdev.netdev = dev;
hdd_set_tso_flags(hdd_ctx, dev);
qdf_status = qdf_event_create(
&adapter->qdf_session_open_event);

View File

@ -3794,9 +3794,7 @@ hdd_alloc_station_adapter(struct hdd_context *hdd_ctx, tSirMacAddr mac_addr,
struct hdd_adapter *adapter;
struct hdd_station_ctx *sta_ctx;
QDF_STATUS qdf_status;
void *soc;
soc = cds_get_context(QDF_MODULE_ID_SOC);
/* cfg80211 initialization and registration */
dev = alloc_netdev_mq(sizeof(*adapter), name,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)) || defined(WITH_BACKPORTS)
@ -3842,12 +3840,6 @@ hdd_alloc_station_adapter(struct hdd_context *hdd_ctx, tSirMacAddr mac_addr,
qdf_mem_copy(adapter->mac_addr.bytes, mac_addr, sizeof(tSirMacAddr));
dev->watchdog_timeo = HDD_TX_TIMEOUT;
if (cdp_cfg_get(soc,
cfg_dp_enable_ip_tcp_udp_checksum_offload))
dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
dev->features |= NETIF_F_RXCSUM;
hdd_set_tso_flags(hdd_ctx, dev);
hdd_set_station_ops(adapter->dev);
hdd_dev_setup_destructor(dev);
@ -4340,6 +4332,13 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
!(qdf_atomic_read(&hdd_ctx->vendor_disable_lro_flag)))
adapter->dev->features |= NETIF_F_LRO;
if (cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
cfg_dp_enable_ip_tcp_udp_checksum_offload))
adapter->dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
adapter->dev->features |= NETIF_F_RXCSUM;
hdd_set_tso_flags(hdd_ctx, adapter->dev);
/* rcpi info initialization */
qdf_mem_zero(&adapter->rcpi, sizeof(adapter->rcpi));