Merge "msm: ipa: Fix to reset the sticky_rear flag"
This commit is contained in:
commit
e19e1d6ed8
2 changed files with 15 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 and
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -1482,17 +1482,24 @@ void ipa_install_dflt_flt_rules(u32 ipa_ep_idx)
|
||||||
|
|
||||||
void ipa_delete_dflt_flt_rules(u32 ipa_ep_idx)
|
void ipa_delete_dflt_flt_rules(u32 ipa_ep_idx)
|
||||||
{
|
{
|
||||||
|
struct ipa_flt_tbl *tbl;
|
||||||
struct ipa_ep_context *ep = &ipa_ctx->ep[ipa_ep_idx];
|
struct ipa_ep_context *ep = &ipa_ctx->ep[ipa_ep_idx];
|
||||||
|
|
||||||
mutex_lock(&ipa_ctx->lock);
|
mutex_lock(&ipa_ctx->lock);
|
||||||
if (ep->dflt_flt4_rule_hdl) {
|
if (ep->dflt_flt4_rule_hdl) {
|
||||||
|
tbl = &ipa_ctx->flt_tbl[ipa_ep_idx][IPA_IP_v4];
|
||||||
__ipa_del_flt_rule(ep->dflt_flt4_rule_hdl);
|
__ipa_del_flt_rule(ep->dflt_flt4_rule_hdl);
|
||||||
ipa_ctx->ctrl->ipa_commit_flt(IPA_IP_v4);
|
ipa_ctx->ctrl->ipa_commit_flt(IPA_IP_v4);
|
||||||
|
/* Reset the sticky flag. */
|
||||||
|
tbl->sticky_rear = false;
|
||||||
ep->dflt_flt4_rule_hdl = 0;
|
ep->dflt_flt4_rule_hdl = 0;
|
||||||
}
|
}
|
||||||
if (ep->dflt_flt6_rule_hdl) {
|
if (ep->dflt_flt6_rule_hdl) {
|
||||||
|
tbl = &ipa_ctx->flt_tbl[ipa_ep_idx][IPA_IP_v6];
|
||||||
__ipa_del_flt_rule(ep->dflt_flt6_rule_hdl);
|
__ipa_del_flt_rule(ep->dflt_flt6_rule_hdl);
|
||||||
ipa_ctx->ctrl->ipa_commit_flt(IPA_IP_v6);
|
ipa_ctx->ctrl->ipa_commit_flt(IPA_IP_v6);
|
||||||
|
/* Reset the sticky flag. */
|
||||||
|
tbl->sticky_rear = false;
|
||||||
ep->dflt_flt6_rule_hdl = 0;
|
ep->dflt_flt6_rule_hdl = 0;
|
||||||
}
|
}
|
||||||
mutex_unlock(&ipa_ctx->lock);
|
mutex_unlock(&ipa_ctx->lock);
|
||||||
|
|
|
@ -1389,16 +1389,23 @@ void ipa3_install_dflt_flt_rules(u32 ipa_ep_idx)
|
||||||
void ipa3_delete_dflt_flt_rules(u32 ipa_ep_idx)
|
void ipa3_delete_dflt_flt_rules(u32 ipa_ep_idx)
|
||||||
{
|
{
|
||||||
struct ipa3_ep_context *ep = &ipa3_ctx->ep[ipa_ep_idx];
|
struct ipa3_ep_context *ep = &ipa3_ctx->ep[ipa_ep_idx];
|
||||||
|
struct ipa3_flt_tbl *tbl;
|
||||||
|
|
||||||
mutex_lock(&ipa3_ctx->lock);
|
mutex_lock(&ipa3_ctx->lock);
|
||||||
if (ep->dflt_flt4_rule_hdl) {
|
if (ep->dflt_flt4_rule_hdl) {
|
||||||
|
tbl = &ipa3_ctx->flt_tbl[ipa_ep_idx][IPA_IP_v4];
|
||||||
__ipa_del_flt_rule(ep->dflt_flt4_rule_hdl);
|
__ipa_del_flt_rule(ep->dflt_flt4_rule_hdl);
|
||||||
ipa3_ctx->ctrl->ipa3_commit_flt(IPA_IP_v4);
|
ipa3_ctx->ctrl->ipa3_commit_flt(IPA_IP_v4);
|
||||||
|
/* Reset the sticky flag. */
|
||||||
|
tbl->sticky_rear = false;
|
||||||
ep->dflt_flt4_rule_hdl = 0;
|
ep->dflt_flt4_rule_hdl = 0;
|
||||||
}
|
}
|
||||||
if (ep->dflt_flt6_rule_hdl) {
|
if (ep->dflt_flt6_rule_hdl) {
|
||||||
|
tbl = &ipa3_ctx->flt_tbl[ipa_ep_idx][IPA_IP_v6];
|
||||||
__ipa_del_flt_rule(ep->dflt_flt6_rule_hdl);
|
__ipa_del_flt_rule(ep->dflt_flt6_rule_hdl);
|
||||||
ipa3_ctx->ctrl->ipa3_commit_flt(IPA_IP_v6);
|
ipa3_ctx->ctrl->ipa3_commit_flt(IPA_IP_v6);
|
||||||
|
/* Reset the sticky flag. */
|
||||||
|
tbl->sticky_rear = false;
|
||||||
ep->dflt_flt6_rule_hdl = 0;
|
ep->dflt_flt6_rule_hdl = 0;
|
||||||
}
|
}
|
||||||
mutex_unlock(&ipa3_ctx->lock);
|
mutex_unlock(&ipa3_ctx->lock);
|
||||||
|
|
Loading…
Add table
Reference in a new issue