From: Igor Romanov <igor.roma...@oktetlabs.ru>

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 requrested.

Fixes: 17551f6dffcc ("net/sfc/base: add API to control UDP tunnel ports")
Cc: sta...@dpdk.org

Signed-off-by: Igor Romanov <igor.roma...@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
---
 drivers/net/sfc/base/efx_tunnel.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/sfc/base/efx_tunnel.c 
b/drivers/net/sfc/base/efx_tunnel.c
index 3a03441..1cc072f 100644
--- a/drivers/net/sfc/base/efx_tunnel.c
+++ b/drivers/net/sfc/base/efx_tunnel.c
@@ -421,7 +421,7 @@
 {
        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 @@
                 */
                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,
-- 
1.8.3.1

Reply via email to