ixgbevf: combine all of the tasks into a single service task
This change combines the reset and watchdog tasklets into a single task. The advantage of this is that we can avoid multiple schedules of the reset task when we have a reset event needed due to either the mailbox going down or transmit packets being present on a link down. CC: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:

committed by
Jeff Kirsher

parent
e66c92ad58
commit
9ac5c5ccdb
@@ -367,8 +367,6 @@ struct ixgbevf_adapter {
|
||||
/* this field must be first, see ixgbevf_process_skb_fields */
|
||||
unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)];
|
||||
|
||||
struct timer_list watchdog_timer;
|
||||
struct work_struct reset_task;
|
||||
struct ixgbevf_q_vector *q_vector[MAX_MSIX_Q_VECTORS];
|
||||
|
||||
/* Interrupt Throttle Rate */
|
||||
@@ -398,8 +396,7 @@ struct ixgbevf_adapter {
|
||||
* thus the additional *_CAPABLE flags.
|
||||
*/
|
||||
u32 flags;
|
||||
#define IXGBE_FLAG_IN_WATCHDOG_TASK (u32)(1)
|
||||
|
||||
#define IXGBEVF_FLAG_RESET_REQUESTED (u32)(1)
|
||||
#define IXGBEVF_FLAG_QUEUE_RESET_REQUESTED (u32)(1 << 2)
|
||||
|
||||
struct msix_entry *msix_entries;
|
||||
@@ -435,10 +432,11 @@ struct ixgbevf_adapter {
|
||||
u32 link_speed;
|
||||
bool link_up;
|
||||
|
||||
struct timer_list service_timer;
|
||||
struct work_struct service_task;
|
||||
|
||||
spinlock_t mbx_lock;
|
||||
unsigned long last_reset;
|
||||
|
||||
struct work_struct watchdog_task;
|
||||
};
|
||||
|
||||
enum ixbgevf_state_t {
|
||||
@@ -447,7 +445,8 @@ enum ixbgevf_state_t {
|
||||
__IXGBEVF_DOWN,
|
||||
__IXGBEVF_DISABLED,
|
||||
__IXGBEVF_REMOVING,
|
||||
__IXGBEVF_WORK_INIT,
|
||||
__IXGBEVF_SERVICE_SCHED,
|
||||
__IXGBEVF_SERVICE_INITED,
|
||||
};
|
||||
|
||||
enum ixgbevf_boards {
|
||||
|
Reference in New Issue
Block a user