net: ipa: restrict special reset to IPA v3.5.1
authorAlex Elder <elder@linaro.org>
Mon, 2 Nov 2020 17:34:35 +0000 (11:34 -0600)
committerJakub Kicinski <kuba@kernel.org>
Wed, 4 Nov 2020 01:56:46 +0000 (17:56 -0800)
With IPA v3.5.1, if IPA aggregation is active at the time an
underlying GSI channel reset is performed, some special handling
is required.

There is logic in ipa_endpoint_reset() that arranges for that
special handling, but it's done for all hardware versions, not
just IPA v3.5.1.

Fix the logic to properly restrict the special behavior.

Signed-off-by: Alex Elder <elder@linaro.org>
Link: https://lore.kernel.org/r/20201102173435.5987-1-elder@linaro.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipa/ipa_endpoint.c

index 7386e10615d99e680796aa166787129f1c5e4866..6f79028910e3c229125d71f19c02a9fbb20ef87b 100644 (file)
@@ -1314,7 +1314,7 @@ static void ipa_endpoint_reset(struct ipa_endpoint *endpoint)
         */
        legacy = ipa->version == IPA_VERSION_3_5_1;
        special = !endpoint->toward_ipa && endpoint->data->aggregation;
-       if (special && ipa_endpoint_aggr_active(endpoint))
+       if (legacy && special && ipa_endpoint_aggr_active(endpoint))
                ret = ipa_endpoint_reset_rx_aggr(endpoint);
        else
                gsi_channel_reset(&ipa->gsi, channel_id, legacy);