lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 23 Mar 2022 19:19:55 +0100 From: Marcin Szycik <marcin.szycik@...ux.intel.com> To: Ivan Vecera <ivecera@...hat.com> Cc: netdev@...r.kernel.org, poros@...hat.com, mschmidt@...hat.com, Jesse Brandeburg <jesse.brandeburg@...el.com>, Tony Nguyen <anthony.l.nguyen@...el.com>, "David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Brett Creeley <brett.creeley@...el.com>, Jeff Kirsher <jeffrey.t.kirsher@...el.com>, "moderated list:INTEL ETHERNET DRIVERS\"" <intel-wired-lan@...ts.osuosl.org>, open list <linux-kernel@...r.kernel.org> Subject: Re: [PATCH net] ice: Clear default forwarding VSI during VSI release On 23-Mar-22 18:54, Ivan Vecera wrote: > On Wed, 23 Mar 2022 18:39:11 +0100 > Marcin Szycik <marcin.szycik@...ux.intel.com> wrote: > >> On 22-Mar-22 15:25, Ivan Vecera wrote: >>> VSI is set as default forwarding one when promisc mode is set for >>> PF interface, when PF is switched to switchdev mode or when VF >>> driver asks to enable allmulticast or promisc mode for the VF >>> interface (when vf-true-promisc-support priv flag is off). >>> The third case is buggy because in that case VSI associated with >>> VF remains as default one after VF removal. >>> >>> Reproducer: >>> 1. Create VF >>> echo 1 > sys/class/net/ens7f0/device/sriov_numvfs >>> 2. Enable allmulticast or promisc mode on VF >>> ip link set ens7f0v0 allmulticast on >>> ip link set ens7f0v0 promisc on >>> 3. Delete VF >>> echo 0 > sys/class/net/ens7f0/device/sriov_numvfs >>> 4. Try to enable promisc mode on PF >>> ip link set ens7f0 promisc on >>> >>> Although it looks that promisc mode on PF is enabled the opposite >>> is true because ice_vsi_sync_fltr() responsible for IFF_PROMISC >>> handling first checks if any other VSI is set as default forwarding >>> one and if so the function does not do anything. At this point >>> it is not possible to enable promisc mode on PF without re-probe >>> device. >>> >>> To resolve the issue this patch clear default forwarding VSI >>> during ice_vsi_release() when the VSI to be released is the default >>> one. >>> >>> Fixes: 01b5e89aab49 ("ice: Add VF promiscuous support") >>> Signed-off-by: Ivan Vecera <ivecera@...hat.com> >>> --- >>> drivers/net/ethernet/intel/ice/ice_lib.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c >>> index 53256aca27c7..20d755822d43 100644 >>> --- a/drivers/net/ethernet/intel/ice/ice_lib.c >>> +++ b/drivers/net/ethernet/intel/ice/ice_lib.c >>> @@ -3147,6 +3147,8 @@ int ice_vsi_release(struct ice_vsi *vsi) >>> } >>> } >>> >>> + if (ice_is_vsi_dflt_vsi(pf->first_sw, vsi)) >>> + ice_clear_dflt_vsi(pf->first_sw); >> >> It would probably be good to check `ice_clear_dflt_vsi` return code. > > Check and report potential warning when error occurs? because we are in ice_vsi_release() so > any rollback does not make sense. Right. ice_clear_dflt_vsi already reports errors so it should be good as is. LGTM, thanks! > > Ivan >
Powered by blists - more mailing lists