]> git.hungrycats.org Git - linux/commitdiff
gve: Flow steering trigger reset only for timeout error
authorZiwei Xiao <ziweixiao@google.com>
Wed, 13 Nov 2024 17:59:30 +0000 (09:59 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:54:21 +0000 (13:54 +0100)
commit 8ffade77b6337a8767fae9820d57d7a6413dd1a1 upstream.

When configuring flow steering rules, the driver is currently going
through a reset for all errors from the device. Instead, the driver
should only reset when there's a timeout error from the device.

Fixes: 57718b60df9b ("gve: Add flow steering adminq commands")
Cc: stable@vger.kernel.org
Signed-off-by: Ziwei Xiao <ziweixiao@google.com>
Signed-off-by: Jeroen de Borst <jeroendb@google.com>
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241113175930.2585680-1-jeroendb@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/google/gve/gve_adminq.c

index c5bbc1b7524ed2992ceda294b3f50a01a255a6e7..d4a8d66dbf71340c78fad37386cf549d92fbcc88 100644 (file)
@@ -1208,10 +1208,10 @@ gve_adminq_configure_flow_rule(struct gve_priv *priv,
                        sizeof(struct gve_adminq_configure_flow_rule),
                        flow_rule_cmd);
 
-       if (err) {
+       if (err == -ETIME) {
                dev_err(&priv->pdev->dev, "Timeout to configure the flow rule, trigger reset");
                gve_reset(priv, true);
-       } else {
+       } else if (!err) {
                priv->flow_rules_cache.rules_cache_synced = false;
        }