linux-yocto/drivers/net/ethernet/intel/idpf
Pavan Kumar Linga 9b58031ff9 idpf: fix idpf_vc_core_init error path
In an event where the platform running the device control plane
is rebooted, reset is detected on the driver. It releases
all the resources and waits for the reset to complete. Once the
reset is done, it tries to build the resources back. At this
time if the device control plane is not yet started, then
the driver timeouts on the virtchnl message and retries to
establish the mailbox again.

In the retry flow, mailbox is deinitialized but the mailbox
workqueue is still alive and polling for the mailbox message.
This results in accessing the released control queue leading to
null-ptr-deref. Fix it by unrolling the work queue cancellation
and mailbox deinitialization in the reverse order which they got
initialized.

Fixes: 4930fbf419 ("idpf: add core init and interrupt request")
Fixes: 34c21fa894 ("idpf: implement virtchnl transaction manager")
Cc: stable@vger.kernel.org # 6.9+
Reviewed-by: Tarun K Singh <tarun.k.singh@intel.com>
Signed-off-by: Pavan Kumar Linga <pavan.kumar.linga@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2024-11-04 13:09:34 -08:00
..
idpf_controlq_api.h idpf: implement virtchnl transaction manager 2024-03-04 09:32:41 -08:00
idpf_controlq_setup.c idpf: add controlq init and reset checks 2023-09-13 14:59:23 -07:00
idpf_controlq.c idpf: fix minor controlq issues 2024-03-04 09:48:33 -08:00
idpf_controlq.h idpf: add controlq init and reset checks 2023-09-13 14:59:23 -07:00
idpf_dev.c idpf: enable WB_ON_ITR 2024-09-09 13:15:37 -07:00
idpf_devids.h
idpf_ethtool.c idpf: avoid vport access in idpf_get_link_ksettings 2024-11-04 13:09:33 -08:00
idpf_lan_pf_regs.h idpf: initialize interrupts and enable vport 2023-09-13 14:59:24 -07:00
idpf_lan_txrx.h idpf: stop using macros for accessing queue descriptors 2024-07-10 10:31:28 -07:00
idpf_lan_vf_regs.h idpf: initialize interrupts and enable vport 2023-09-13 14:59:24 -07:00
idpf_lib.c idpf: fix idpf_vc_core_init error path 2024-11-04 13:09:34 -08:00
idpf_main.c idpf: reuse libeth's definitions of parsed ptype structures 2024-07-10 10:43:57 -07:00
idpf_mem.h idpf: add controlq init and reset checks 2023-09-13 14:59:23 -07:00
idpf_singleq_txrx.c idpf: enable WB_ON_ITR 2024-09-09 13:15:37 -07:00
idpf_txrx.c idpf: enable WB_ON_ITR 2024-09-09 13:15:37 -07:00
idpf_txrx.h idpf: enable WB_ON_ITR 2024-09-09 13:15:37 -07:00
idpf_vf_dev.c idpf: fix VF dynamic interrupt ctl register initialization 2024-09-30 14:23:32 -07:00
idpf_virtchnl.c idpf: fix idpf_vc_core_init error path 2024-11-04 13:09:34 -08:00
idpf_virtchnl.h idpf: refactor idpf_recv_mb_msg 2024-03-04 09:39:30 -08:00
idpf.h idpf: avoid vport access in idpf_get_link_ksettings 2024-11-04 13:09:33 -08:00
Kconfig idpf: use libeth Rx buffer management for payload buffer 2024-07-10 10:48:45 -07:00
Makefile idpf: compile singleq code only under default-n CONFIG_IDPF_SINGLEQ 2024-07-10 10:42:26 -07:00
virtchnl2_lan_desc.h
virtchnl2.h idpf: sprinkle __counted_by{,_le}() in the virtchnl2 header 2024-03-28 18:50:47 -07:00