igc: Add lock to safeguard global Qbv variables
authorMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Mon, 7 Aug 2023 20:51:29 +0000 (13:51 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 8 Aug 2023 23:36:23 +0000 (16:36 -0700)
commit06b412589eef780b792e73df131d35dc43cc4a49
tree0fb28ac74ffbde3be8e0a8e846f7e0d40fb50a9b
parentb9077ef4c1368b5a51852facc53c24fcd234e910
igc: Add lock to safeguard global Qbv variables

Access to shared variables through hrtimer requires locking in order
to protect the variables because actions to write into these variables
(oper_gate_closed, admin_gate_closed, and qbv_transition) might potentially
occur simultaneously. This patch provides a locking mechanisms to avoid
such scenarios.

Fixes: 175c241288c0 ("igc: Fix TX Hang issue when QBV Gate is closed")
Suggested-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://lore.kernel.org/r/20230807205129.3129346-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/igc/igc.h
drivers/net/ethernet/intel/igc/igc_main.c