git: 95d3300d2211 - stable/13 - ixl(4): Fix SR-IOV panics
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 18 Oct 2022 04:55:08 UTC
The branch stable/13 has been updated by erj: URL: https://cgit.FreeBSD.org/src/commit/?id=95d3300d22118818bf1aded2672a7c122343ad20 commit 95d3300d22118818bf1aded2672a7c122343ad20 Author: Yan Ka Chiu <nyan@myuji.xyz> AuthorDate: 2022-07-13 01:16:29 +0000 Commit: Eric Joyner <erj@FreeBSD.org> CommitDate: 2022-10-18 04:19:41 +0000 ixl(4): Fix SR-IOV panics The hw and ifp of a vsi will be NULL if such ixl_vsi is allocated for a VF. When ixl_reconfigure_filters called, it is trying to access vsi->ifp and hw->mac.addr and therefore is casuing panic. This commit add checks to determine if vsi is a VF by checking if vsi->hw is NULL, before adding IXL_VLAN_ANY filter (which is already in a VF vsi's filter list) and VLAN filters. (erj's Note: The SR-IOV flows need revisiting; this will help prevent panics for now) Reviewed by: krzysztof.galazka@intel.com, erj@ Differential Revision: https://reviews.freebsd.org/D35649 (cherry picked from commit e706512a2b64fa2741144caf056c9fe923b60004) --- sys/dev/ixl/ixl_pf_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/dev/ixl/ixl_pf_main.c b/sys/dev/ixl/ixl_pf_main.c index 896da955843a..f783ae5ed31a 100644 --- a/sys/dev/ixl/ixl_pf_main.c +++ b/sys/dev/ixl/ixl_pf_main.c @@ -1114,6 +1114,14 @@ ixl_reconfigure_filters(struct ixl_vsi *vsi) ixl_add_hw_filters(vsi, &tmp, cnt); + /* + * When the vsi is allocated for the VFs, both vsi->hw and vsi->ifp + * will be NULL. Furthermore, the ftl of such vsi already contains + * IXL_VLAN_ANY filter so we can skip that as well. + */ + if (hw == NULL) + return; + /* Filter could be removed if MAC address was changed */ ixl_add_filter(vsi, hw->mac.addr, IXL_VLAN_ANY);