mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
qcacld-3.0: Disable TCP delayed ack if LRO is enabled
Coexistence of TCP delayed ack and LRO could be detrimental with a smaller window size. So disable TCP delayed ack dynamically if LRO is enabled. Change-Id: I0660e78269da548bc3a5ad0ed6b8f3865046b8b4 CRs-Fixed: 1114687
This commit is contained in:
parent
7b6cb00b26
commit
81ca3a55b2
2 changed files with 20 additions and 2 deletions
|
|
@ -1764,6 +1764,7 @@ struct hdd_context {
|
|||
int user_configured_pkt_filter_rules;
|
||||
bool is_fils_roaming_supported;
|
||||
qdf_atomic_t disable_lro_in_concurrency;
|
||||
bool en_tcp_delack_no_lro;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -109,6 +109,10 @@ int hdd_lro_init(struct hdd_context *hdd_ctx)
|
|||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (hdd_ctx->config->enable_tcp_delack) {
|
||||
hdd_ctx->en_tcp_delack_no_lro = 0;
|
||||
hdd_reset_tcp_delack(hdd_ctx);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -215,8 +219,21 @@ void hdd_disable_lro_in_concurrency(bool disable)
|
|||
{
|
||||
struct hdd_context *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
|
||||
|
||||
if (disable)
|
||||
if (disable) {
|
||||
if (hdd_ctx->en_tcp_delack_no_lro) {
|
||||
hdd_info("Enable TCP delack as LRO disabled in concurrency");
|
||||
wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index,
|
||||
WLAN_SVC_WLAN_TP_IND, &hdd_ctx->cur_rx_level,
|
||||
sizeof(hdd_ctx->cur_rx_level));
|
||||
hdd_ctx->en_tcp_delack_no_lro = 1;
|
||||
}
|
||||
qdf_atomic_set(&hdd_ctx->disable_lro_in_concurrency, 1);
|
||||
else
|
||||
} else {
|
||||
if (hdd_ctx->en_tcp_delack_no_lro) {
|
||||
hdd_info("Disable TCP delack as LRO is enabled");
|
||||
hdd_ctx->en_tcp_delack_no_lro = 0;
|
||||
hdd_reset_tcp_delack(hdd_ctx);
|
||||
}
|
||||
qdf_atomic_set(&hdd_ctx->disable_lro_in_concurrency, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue