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:
parent
e8d91fc50a
commit
9f5c586e08
@ -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);
|
||||
|
@ -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));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user