net/sfc/base: fix tunnel configuration
authorIgor Romanov <igor.romanov@oktetlabs.ru>
Tue, 8 Sep 2020 09:20:22 +0000 (10:20 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:12 +0000 (18:55 +0200)
Tunnel configuration may fail because of insufficient access rights
on a virtual function. Ignore the failure if a tunnel configuration
with empty UDP ports is requested.

Fixes: 17551f6dffcc ("net/sfc/base: add API to control UDP tunnel ports")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/efx_tunnel.c

index 3a03441..1cc072f 100644 (file)
@@ -421,7 +421,7 @@ ef10_tunnel_reconfigure(
 {
        efx_tunnel_cfg_t *etcp = &enp->en_tunnel_cfg;
        efx_rc_t rc;
-       boolean_t resetting;
+       boolean_t resetting = B_FALSE;
        efsys_lock_state_t state;
        efx_tunnel_cfg_t etc;
 
@@ -446,8 +446,14 @@ ef10_tunnel_reconfigure(
                 */
                rc = efx_mcdi_set_tunnel_encap_udp_ports(enp, &etc, B_FALSE,
                    &resetting);
-               if (rc != 0)
-                       goto fail2;
+               if (rc != 0) {
+                       /*
+                        * Do not fail if the access is denied when no
+                        * tunnel encap UDP ports are configured.
+                        */
+                       if (rc != EACCES || etc.etc_udp_entries_num != 0)
+                               goto fail2;
+               }
 
                /*
                 * Although the caller should be able to handle MC reboot,