mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-24 07:57:11 +00:00
To avoid races between iavf_init_task(), iavf_reset_task(), iavf_watchdog_task(), iavf_adminq_task() as well as the shutdown and remove functions more locking is required. The current protection by __IAVF_IN_CRITICAL_TASK is needed in additional places. - The reset task performs state transitions, therefore needs locking. - The adminq task acts on replies from the PF in iavf_virtchnl_completion() which may alter the states. - The init task is not only run during probe but also if a VF gets stuck to reinitialize it. - The shutdown function performs a state transition. - The remove function performs a state transition and also free's resources. iavf_lock_timeout() is introduced to avoid waiting infinitely and cause a deadlock. Rather unlock and print a warning. Signed-off-by: Stefan Assmann <sassmann@kpanic.de> Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
||
|---|---|---|
| .. | ||
| iavf_adminq_cmd.h | ||
| iavf_adminq.c | ||
| iavf_adminq.h | ||
| iavf_adv_rss.c | ||
| iavf_adv_rss.h | ||
| iavf_alloc.h | ||
| iavf_client.c | ||
| iavf_client.h | ||
| iavf_common.c | ||
| iavf_devids.h | ||
| iavf_ethtool.c | ||
| iavf_fdir.c | ||
| iavf_fdir.h | ||
| iavf_main.c | ||
| iavf_osdep.h | ||
| iavf_prototype.h | ||
| iavf_register.h | ||
| iavf_status.h | ||
| iavf_trace.h | ||
| iavf_txrx.c | ||
| iavf_txrx.h | ||
| iavf_type.h | ||
| iavf_virtchnl.c | ||
| iavf.h | ||
| Makefile | ||