aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2020-05-04 18:53:43 -0500
committerDavid S. Miller <davem@davemloft.net>2020-05-06 17:41:11 -0700
commit9928fcc76f7bb5c93d512767b039e8257ab3093e (patch)
tree9b8d569b59d218c5a18b30c5807caf70228f80f9
parentnet: ipa: get rid of workaround in ipa_endpoint_stop() (diff)
downloadwireguard-linux-9928fcc76f7bb5c93d512767b039e8257ab3093e.tar.xz
wireguard-linux-9928fcc76f7bb5c93d512767b039e8257ab3093e.zip
net: ipa: don't retry in ipa_endpoint_stop()
The only reason ipa_endpoint_stop() had a retry loop was that the just-removed workaround required an IPA DMA command to occur between attempts. The gsi_channel_stop() call that implements the stop does its own retry loop, to cover a channel's transition from started to stop-in-progress to stopped state. Get rid of the unnecessary retry loop in ipa_endpoint_stop(). Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ipa/ipa_endpoint.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c
index 7176ae892e75..68ba33ec7ce9 100644
--- a/drivers/net/ipa/ipa_endpoint.c
+++ b/drivers/net/ipa/ipa_endpoint.c
@@ -32,8 +32,6 @@
/* The amount of RX buffer space consumed by standard skb overhead */
#define IPA_RX_BUFFER_OVERHEAD (PAGE_SIZE - SKB_MAX_ORDER(NET_SKB_PAD, 0))
-#define IPA_ENDPOINT_STOP_RX_RETRIES 10
-
#define IPA_ENDPOINT_RESET_AGGR_RETRY_MAX 3
#define IPA_AGGR_TIME_LIMIT_DEFAULT 1000 /* microseconds */
@@ -1282,20 +1280,9 @@ static void ipa_endpoint_reset(struct ipa_endpoint *endpoint)
*/
int ipa_endpoint_stop(struct ipa_endpoint *endpoint)
{
- u32 retries = IPA_ENDPOINT_STOP_RX_RETRIES;
- int ret;
-
- do {
- struct gsi *gsi = &endpoint->ipa->gsi;
-
- ret = gsi_channel_stop(gsi, endpoint->channel_id);
- if (ret != -EAGAIN || endpoint->toward_ipa)
- break;
-
- msleep(1);
- } while (retries--);
+ struct gsi *gsi = &endpoint->ipa->gsi;
- return retries ? ret : -EIO;
+ return gsi_channel_stop(gsi, endpoint->channel_id);
}
static void ipa_endpoint_program(struct ipa_endpoint *endpoint)