]> git.baikalelectronics.ru Git - kernel.git/commitdiff
gve: Correct order of processing device options
authorJeroen de Borst <jeroendb@google.com>
Mon, 20 Dec 2021 19:27:46 +0000 (11:27 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 21 Dec 2021 02:47:56 +0000 (18:47 -0800)
The legacy raw addressing device option was processed before the
new RDA queue format option.  This caused the supported features mask,
which is provided only on the RDA queue format option, not to be set.

This disabled jumbo-frame support when using raw adressing.

Fixes: d233b7da65bc ("gve: Add a jumbo-frame device option")
Signed-off-by: Jeroen de Borst <jeroendb@google.com>
Link: https://lore.kernel.org/r/20211220192746.2900594-1-jeroendb@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/google/gve/gve_adminq.c

index 83ae56c310d3b9322ec351ba1151ae461fa7876f..326b56b49216a8c4e1d3868384622bfa81860f63 100644 (file)
@@ -738,10 +738,7 @@ int gve_adminq_describe_device(struct gve_priv *priv)
         * is not set to GqiRda, choose the queue format in a priority order:
         * DqoRda, GqiRda, GqiQpl. Use GqiQpl as default.
         */
-       if (priv->queue_format == GVE_GQI_RDA_FORMAT) {
-               dev_info(&priv->pdev->dev,
-                        "Driver is running with GQI RDA queue format.\n");
-       } else if (dev_op_dqo_rda) {
+       if (dev_op_dqo_rda) {
                priv->queue_format = GVE_DQO_RDA_FORMAT;
                dev_info(&priv->pdev->dev,
                         "Driver is running with DQO RDA queue format.\n");
@@ -753,6 +750,9 @@ int gve_adminq_describe_device(struct gve_priv *priv)
                         "Driver is running with GQI RDA queue format.\n");
                supported_features_mask =
                        be32_to_cpu(dev_op_gqi_rda->supported_features_mask);
+       } else if (priv->queue_format == GVE_GQI_RDA_FORMAT) {
+               dev_info(&priv->pdev->dev,
+                        "Driver is running with GQI RDA queue format.\n");
        } else {
                priv->queue_format = GVE_GQI_QPL_FORMAT;
                if (dev_op_gqi_qpl)