net/sfc/base: fix tunnel configuration

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>
This commit is contained in:
Igor Romanov 2020-09-08 10:20:22 +01:00 committed by Ferruh Yigit
parent cb78cce5e1
commit 33f4e56dda

View 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,