From: Leon Romanovsky <leon@kernel.org>
To: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com, netdev@vger.kernel.org,
Ahmed Zaki <ahmed.zaki@intel.com>,
Rafal Romanowski <rafal.romanowski@intel.com>
Subject: Re: [PATCH net 3/3] iavf: send VLAN offloading caps once after VFR
Date: Wed, 26 Apr 2023 09:50:18 +0300 [thread overview]
Message-ID: <20230426065018.GG27649@unreal> (raw)
In-Reply-To: <20230425170127.2522312-4-anthony.l.nguyen@intel.com>
On Tue, Apr 25, 2023 at 10:01:27AM -0700, Tony Nguyen wrote:
> From: Ahmed Zaki <ahmed.zaki@intel.com>
>
> When the user disables rxvlan offloading and then changes the number of
> channels, all VLAN ports are unable to receive traffic.
>
> Changing the number of channels triggers a VFR reset. During re-init, when
> VIRTCHNL_OP_GET_OFFLOAD_VLAN_V2_CAPS is received, we do:
> 1 - set the IAVF_FLAG_SETUP_NETDEV_FEATURES flag
> 2 - call
> iavf_set_vlan_offload_features(adapter, 0, netdev->features);
>
> The second step sends to the PF the __default__ features, in this case
> aq_required |= IAVF_FLAG_AQ_ENABLE_CTAG_VLAN_STRIPPING
>
> While the first step forces the watchdog task to call
> netdev_update_features() -> iavf_set_features() ->
> iavf_set_vlan_offload_features(adapter, netdev->features, features).
> Since the user disabled the "rxvlan", this sets:
> aq_required |= IAVF_FLAG_AQ_DISABLE_CTAG_VLAN_STRIPPING
>
> When we start processing the AQ commands, both flags are enabled. Since we
> process DISABLE_XTAG first then ENABLE_XTAG, this results in the PF
> enabling the rxvlan offload. This breaks all communications on the VLAN
> net devices.
>
> Fix by removing the call to iavf_set_vlan_offload_features() (second
> step). Calling netdev_update_features() from watchdog task is enough for
> both init and reset paths.
>
> Fixes: 7598f4b40bd6 ("iavf: Move netdev_update_features() into watchdog task")
> Signed-off-by: Ahmed Zaki <ahmed.zaki@intel.com>
> Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
> ---
> drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 5 -----
> 1 file changed, 5 deletions(-)
>
Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
prev parent reply other threads:[~2023-04-26 6:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 17:01 [PATCH net 0/3][pull request] Intel Wired LAN Driver Updates 2023-04-25 (ice, iavf) Tony Nguyen
2023-04-25 17:01 ` [PATCH net 1/3] ice: Fix stats after PF reset Tony Nguyen
2023-04-26 6:50 ` Leon Romanovsky
2023-04-25 17:01 ` [PATCH net 2/3] ice: Fix ice VF reset during iavf initialization Tony Nguyen
2023-04-26 6:49 ` Leon Romanovsky
2023-04-26 16:22 ` Keller, Jacob E
2023-04-27 9:24 ` Paolo Abeni
2023-04-28 9:12 ` Maziarz, Kamil
2023-04-25 17:01 ` [PATCH net 3/3] iavf: send VLAN offloading caps once after VFR Tony Nguyen
2023-04-26 6:50 ` Leon Romanovsky [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230426065018.GG27649@unreal \
--to=leon@kernel.org \
--cc=ahmed.zaki@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rafal.romanowski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.